Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dcs-plan
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
INET-TWO
server
dcs-plan
Commits
5a51c052
Commit
5a51c052
authored
Oct 15, 2024
by
侯彦文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
进度计划
parent
32d4db3e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
48 additions
and
61 deletions
+48
-61
ExtPlanVO.java
...src/main/java/com/yonde/dcs/plan/common/vo/ExtPlanVO.java
+5
-0
PlanExcelVO.java
...c/main/java/com/yonde/dcs/plan/common/vo/PlanExcelVO.java
+4
-0
ExtPlanServiceImpl.java
.../yonde/dcs/plan/core/service/impl/ExtPlanServiceImpl.java
+34
-61
ExtPlan.java
...y/src/main/java/com/yonde/dcs/plan/entity/po/ExtPlan.java
+5
-0
No files found.
dcs-plan-common/src/main/java/com/yonde/dcs/plan/common/vo/ExtPlanVO.java
View file @
5a51c052
...
@@ -307,6 +307,11 @@ public class ExtPlanVO extends IdOnlyVO implements IdVO ,DxTreeContextVOHolder<E
...
@@ -307,6 +307,11 @@ public class ExtPlanVO extends IdOnlyVO implements IdVO ,DxTreeContextVOHolder<E
*/
*/
private
String
verifier
;
private
String
verifier
;
/**
* 计划执行人ID
*/
private
Long
planExecutorId
;
}
}
dcs-plan-common/src/main/java/com/yonde/dcs/plan/common/vo/PlanExcelVO.java
View file @
5a51c052
...
@@ -126,4 +126,8 @@ public class PlanExcelVO implements Serializable {
...
@@ -126,4 +126,8 @@ public class PlanExcelVO implements Serializable {
* 密级
* 密级
*/
*/
private
String
secretCode
;
private
String
secretCode
;
/**
* 计划执行人ID
*/
private
Long
planExecutorId
;
}
}
dcs-plan-core/src/main/java/com/yonde/dcs/plan/core/service/impl/ExtPlanServiceImpl.java
View file @
5a51c052
...
@@ -7,7 +7,6 @@ import cn.hutool.poi.excel.ExcelWriter;
...
@@ -7,7 +7,6 @@ import cn.hutool.poi.excel.ExcelWriter;
import
cn.hutool.poi.excel.StyleSet
;
import
cn.hutool.poi.excel.StyleSet
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dcs.document.expand.entity.DxDocumentVOExpand
;
import
com.yonde.dcs.document.expand.entity.DxDocumentVOExpand
;
import
com.yonde.dcs.document.feign.DocCenterFeignService
;
import
com.yonde.dcs.document.feign.expand.ExtDxDocumentServiceFeign
;
import
com.yonde.dcs.document.feign.expand.ExtDxDocumentServiceFeign
;
import
com.yonde.dcs.plan.common.constants.Constants
;
import
com.yonde.dcs.plan.common.constants.Constants
;
import
com.yonde.dcs.plan.common.utils.ExcelUtils
;
import
com.yonde.dcs.plan.common.utils.ExcelUtils
;
...
@@ -42,7 +41,6 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -42,7 +41,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
...
@@ -50,19 +48,14 @@ import org.springframework.util.ObjectUtils;
...
@@ -50,19 +48,14 @@ import org.springframework.util.ObjectUtils;
import
org.springframework.util.StringUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.swing.text.Document
;
import
java.io.File
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.net.URLEncoder
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Properties
;
/**
/**
* @description: ExtPlan-ServiceImpl
* @description: ExtPlan-ServiceImpl
...
@@ -209,13 +202,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -209,13 +202,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
switch
(
excelVO
.
getOperate
())
{
switch
(
excelVO
.
getOperate
())
{
case
"新增"
:
case
"新增"
:
//先校验
//先校验
stringBuffer
=
this
.
checkPlan
(
excelVO
,
i
,
stringBuffer
,
projectId
);
stringBuffer
=
this
.
checkPlan
(
excelVO
,
i
,
stringBuffer
);
/*stringBuffer = this.checkFileNumber(excelVO, i, stringBuffer);*/
addPlans
.
add
(
excelVO
);
addPlans
.
add
(
excelVO
);
break
;
break
;
case
"更改"
:
case
"更改"
:
//先校验
//先校验
stringBuffer
=
this
.
checkPlan
(
excelVO
,
i
,
stringBuffer
,
projectId
);
stringBuffer
=
this
.
checkPlan
(
excelVO
,
i
,
stringBuffer
);
//校验未开启状态允许修改所有创建属性
//校验未开启状态允许修改所有创建属性
stringBuffer
=
this
.
checkUpdatePlan
(
excelVO
,
i
,
stringBuffer
);
stringBuffer
=
this
.
checkUpdatePlan
(
excelVO
,
i
,
stringBuffer
);
updatePlans
.
add
(
excelVO
);
updatePlans
.
add
(
excelVO
);
...
@@ -257,16 +249,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -257,16 +249,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
public
void
savePlans
(
List
<
PlanExcelVO
>
addPlans
,
Long
projectId
)
{
public
void
savePlans
(
List
<
PlanExcelVO
>
addPlans
,
Long
projectId
)
{
//新增导入成功后,创建计划对象,状态置为:未开启
//新增导入成功后,创建计划对象,状态置为:未开启
addPlans
.
stream
().
forEach
(
x
->
{
addPlans
.
stream
().
forEach
(
x
->
{
//过滤掉已存在的编码计划
ExtPlanVO
extPlanVO
=
this
.
copyPlan
(
x
,
OperatorType
.
ADD
);
//查询编码是否存在
//工期=完成时间-开始时间
ExtPlanVO
extPlanVOByNumber
=
this
.
searchByNumber
(
x
.
getNumber
());
extPlanVO
.
setState
(
Constants
.
PLAN_STATE_UNOPENED
);
if
(
ObjectUtils
.
isEmpty
(
extPlanVOByNumber
))
{
extPlanVO
.
setDxContextId
(
projectId
);
ExtPlanVO
extPlanVO
=
this
.
copyPlan
(
x
,
OperatorType
.
ADD
);
this
.
saveRecursion
((
V
)
extPlanVO
);
//工期=完成时间-开始时间
extPlanVO
.
setState
(
Constants
.
PLAN_STATE_UNOPENED
);
extPlanVO
.
setDxContextId
(
projectId
);
this
.
saveRecursion
((
V
)
extPlanVO
);
}
});
});
}
}
...
@@ -306,7 +294,7 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -306,7 +294,7 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
*
*
* @param excelVO
* @param excelVO
*/
*/
private
StringBuffer
checkPlan
(
PlanExcelVO
excelVO
,
int
i
,
StringBuffer
buffer
,
long
projectId
)
{
private
StringBuffer
checkPlan
(
PlanExcelVO
excelVO
,
int
i
,
StringBuffer
buffer
)
{
//校验
//校验
if
(
StringUtils
.
isEmpty
(
excelVO
.
getNumber
()))
{
if
(
StringUtils
.
isEmpty
(
excelVO
.
getNumber
()))
{
buffer
.
append
(
String
.
format
(
"第%s行的计划编号为空"
,
i
+
1
)
+
"</br>"
);
buffer
.
append
(
String
.
format
(
"第%s行的计划编号为空"
,
i
+
1
)
+
"</br>"
);
...
@@ -317,6 +305,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -317,6 +305,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
if
(
StringUtils
.
isEmpty
(
excelVO
.
getStartTime
()))
{
if
(
StringUtils
.
isEmpty
(
excelVO
.
getStartTime
()))
{
buffer
.
append
(
String
.
format
(
"第%s行,请填写正确的计划开始时间的日期格式"
,
i
+
1
)
+
"</br>"
);
buffer
.
append
(
String
.
format
(
"第%s行,请填写正确的计划开始时间的日期格式"
,
i
+
1
)
+
"</br>"
);
}
}
if
(
StringUtils
.
isEmpty
(
excelVO
.
getFeedbackType
()))
{
buffer
.
append
(
String
.
format
(
"第%s行的反馈类型为空"
,
i
+
1
)
+
"</br>"
);
}
if
(
StringUtils
.
isEmpty
(
excelVO
.
getPlanExecutor
()))
{
buffer
.
append
(
String
.
format
(
"第%s行的计划执行人为空"
,
i
+
1
)
+
"</br>"
);
}
if
(
StringUtils
.
isEmpty
(
excelVO
.
getCompleteTime
()))
{
if
(
StringUtils
.
isEmpty
(
excelVO
.
getCompleteTime
()))
{
buffer
.
append
(
String
.
format
(
"第%s行,请填写正确的计划完成时间的日期格式"
,
i
+
1
)
+
"</br>"
);
buffer
.
append
(
String
.
format
(
"第%s行,请填写正确的计划完成时间的日期格式"
,
i
+
1
)
+
"</br>"
);
}
}
...
@@ -326,13 +320,26 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -326,13 +320,26 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
if
(
StringUtils
.
isEmpty
(
secretCodeKey
))
{
if
(
StringUtils
.
isEmpty
(
secretCodeKey
))
{
buffer
.
append
(
String
.
format
(
"第%s行密级格式不正确!"
,
i
+
1
)
+
"</br>"
);
buffer
.
append
(
String
.
format
(
"第%s行密级格式不正确!"
,
i
+
1
)
+
"</br>"
);
}
}
if
(
Objects
.
nonNull
(
excelVO
.
getSuperPlanCode
())){
if
(
Objects
.
nonNull
(
excelVO
.
getSuperPlanCode
()))
{
//校验父级编号
//校验父级编号
ExtPlanVO
extPlanVO
=
this
.
searchByNumber
(
excelVO
.
getSuperPlanCode
());
ExtPlanVO
extPlanVO
=
this
.
searchByNumber
(
excelVO
.
getSuperPlanCode
());
if
(
!
ObjectUtils
.
isEmpty
(
extPlanVO
))
{
if
(
ObjectUtils
.
isEmpty
(
extPlanVO
))
{
buffer
.
append
(
String
.
format
(
"第%s行,父级编号不存在"
,
i
+
1
)
+
"</br>"
);
buffer
.
append
(
String
.
format
(
"第%s行,父级编号不存在"
,
i
+
1
)
+
"</br>"
);
}
}
}
}
//校验编号是否已存在
ExtPlanVO
extPlanVOByNumber
=
this
.
searchByNumber
(
excelVO
.
getNumber
());
if
(
Objects
.
nonNull
(
extPlanVOByNumber
))
{
buffer
.
append
(
String
.
format
(
"第%s行,计划编号编号已存在"
,
i
+
1
)
+
"</br>"
);
}
DxUserInfoVO
userByName
=
dxUserInfoFeign
.
getUserByName
(
excelVO
.
getPlanExecutor
());
if
(
ObjectUtils
.
isEmpty
(
userByName
)){
buffer
.
append
(
String
.
format
(
"第%s行,计划执行人不存在"
,
i
+
1
)
+
"</br>"
);
}
else
{
excelVO
.
setPlanExecutorId
(
userByName
.
getId
());
}
return
buffer
;
return
buffer
;
}
}
...
@@ -390,7 +397,8 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -390,7 +397,8 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
private
ExtPlanVO
searchByNumber
(
String
number
)
{
private
ExtPlanVO
searchByNumber
(
String
number
)
{
//通过number查询id
//通过number查询id
SearchQueryCondition
query
=
SearchQueryCondition
.
builder
()
SearchQueryCondition
query
=
SearchQueryCondition
.
builder
()
.
openProp
(
SearchQueryCondition
.
builder
().
name
(
"sourcePlanDocLink"
).
openProp
(
SearchQueryCondition
.
builder
().
name
(
"target"
).
build
()).
build
())
.
openProp
(
SearchQueryCondition
.
builder
().
name
(
"sourcePlanDocLink"
)
.
openProp
(
SearchQueryCondition
.
builder
().
name
(
"target"
).
build
()).
build
())
.
searchItems
(
SearchItems
.
builder
().
item
(
.
searchItems
(
SearchItems
.
builder
().
item
(
new
SearchItem
(
"number"
,
SearchItem
.
Operator
.
EQ
,
number
,
null
))
new
SearchItem
(
"number"
,
SearchItem
.
Operator
.
EQ
,
number
,
null
))
.
item
(
new
SearchItem
(
"latest"
,
SearchItem
.
Operator
.
EQ
,
true
,
null
))
.
item
(
new
SearchItem
(
"latest"
,
SearchItem
.
Operator
.
EQ
,
true
,
null
))
...
@@ -414,42 +422,6 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -414,42 +422,6 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
return
planVO
;
return
planVO
;
}
}
/**
* 校验交付文件类的编号是否重复
*
* @param excelVO
* @param i
* @param stringBuffer
* @return
*/
/* private StringBuffer checkFileNumber(PlanExcelVO excelVO, int i, StringBuffer stringBuffer) {
//fileNumber可能会已存在,校验编号重复问题
DxDocumentVO searchDocByNumber = this.searchDocByNumber(excelVO.getFileNumber());
if (!ObjectUtils.isEmpty(searchDocByNumber)) {
stringBuffer.append(String.format("文档的文件编号%s已存在,请检查计划文件编号!", excelVO.getFileNumber()));
}
return stringBuffer;
}*/
/**
* 通过number查询文档
*
* @param number
*/
private
DxDocumentVO
searchDocByNumber
(
String
number
)
{
//通过number查询id
SearchQueryCondition
query
=
SearchQueryCondition
.
builder
()
.
searchItems
(
SearchItems
.
builder
().
item
(
new
SearchItem
(
"number"
,
SearchItem
.
Operator
.
EQ
,
number
,
null
))
.
operator
(
SearchItems
.
BooleanOperator
.
AND
).
build
()).
build
();
DxPageImpl
<
DxDocumentVO
>
recursion
=
extDxDocumentServiceFeign
.
findRecursion
(
query
);
if
(
CollectionUtils
.
isEmpty
(
recursion
.
getContent
()))
{
return
null
;
}
return
DxPageUtils
.
getFirst
(
recursion
);
}
/**
/**
* 校验未开启状态允许修改所有创建属性
* 校验未开启状态允许修改所有创建属性
*
*
...
@@ -582,6 +554,7 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
...
@@ -582,6 +554,7 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
}
}
extPlanVO
.
setName
(
planExcelVO
.
getName
());
extPlanVO
.
setName
(
planExcelVO
.
getName
());
extPlanVO
.
setNumber
(
planExcelVO
.
getNumber
());
extPlanVO
.
setNumber
(
planExcelVO
.
getNumber
());
extPlanVO
.
setPlanExecutorId
(
planExcelVO
.
getPlanExecutorId
());
extPlanVO
.
setOperator
(
operatorType
);
extPlanVO
.
setOperator
(
operatorType
);
// 密级
// 密级
String
secretCodeKey
=
this
.
searchDictDataByDictCode
(
Constants
.
SECRET_CODE
,
planExcelVO
.
getSecretCode
());
String
secretCodeKey
=
this
.
searchDictDataByDictCode
(
Constants
.
SECRET_CODE
,
planExcelVO
.
getSecretCode
());
...
...
dcs-plan-entity/src/main/java/com/yonde/dcs/plan/entity/po/ExtPlan.java
View file @
5a51c052
...
@@ -210,6 +210,11 @@ public class ExtPlan extends IdOnlyEntity implements DxContextHolder ,DxObjFileL
...
@@ -210,6 +210,11 @@ public class ExtPlan extends IdOnlyEntity implements DxContextHolder ,DxObjFileL
* 审定者
* 审定者
*/
*/
private
String
verifier
;
private
String
verifier
;
/**
* 计划执行人ID
*/
private
Long
planExecutorId
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment