Commit 37e88e7a by “zcwang”

add: 变更提交申请附件及变更行动项替换

parent 597fc9d4
...@@ -197,6 +197,24 @@ public class ChangeFlowBiz { ...@@ -197,6 +197,24 @@ public class ChangeFlowBiz {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
private List<ChangeExecRecord> buildChangeExecUpdateRecord(Long changeRecordId, List<ChangeExecProject> changeExecProject) {
return changeExecProject.stream().map(c -> {
ChangeExecRecord changeExecRecord = new ChangeExecRecord();
changeExecRecord.setChangeRecordId(changeRecordId);
changeExecRecord.setChangeExecDepartment(c.getChangeExecDepartment());
changeExecRecord.setChangeExecUserType(c.getChangeExecUserType());
changeExecRecord.setChangeExecUser(c.getChangeExecUser());
changeExecRecord.setChangeRiskDesc(c.getChangeRiskDesc());
changeExecRecord.setChangeExecProject(c.getChangeExecProject());
changeExecRecord.setChangeChecking(c.getChangeChecking());
changeExecRecord.setChangeExecFinishTime(c.getChangeExecFinishTime());
changeExecRecord.setChangeExecFinishDesc(c.getChangeExecFinishDesc());
changeExecRecord.setCreateTime(DateUtils.getCurrentTime());
changeExecRecord.setUpdateTime(DateUtils.getCurrentTime());
return changeExecRecord;
}).collect(Collectors.toList());
}
private void checkSubject(ChangeFlowCreateReq changeFlowCreateReq) { private void checkSubject(ChangeFlowCreateReq changeFlowCreateReq) {
ChangeSubjectEnum type = ChangeSubjectEnum.getByType(changeFlowCreateReq.getChangeSubject()); ChangeSubjectEnum type = ChangeSubjectEnum.getByType(changeFlowCreateReq.getChangeSubject());
Assert.notNull(type, "变更主体不存在"); Assert.notNull(type, "变更主体不存在");
...@@ -360,9 +378,19 @@ public class ChangeFlowBiz { ...@@ -360,9 +378,19 @@ public class ChangeFlowBiz {
switch (node) { switch (node) {
// 变更申请提交节点,可以修改数据,以新的数据为准 // 变更申请提交节点,可以修改数据,以新的数据为准
case CHANGE_FLOW_SUBMIT: case CHANGE_FLOW_SUBMIT:
// 检验是否需要资料
ChangeConfig changeConfig = changeConfigService.getSonChange(changeFlowSubmitReq.getSonChangeClassId());
Assert.notNull(changeConfig, "二级变更类型不存在");
Integer needFile = changeConfig.getNeedFile();
if (NeedFileEnum.NEED.getStatus().equals(needFile)) {
Assert.notEmpty(changeFlowSubmitReq.getFiles(), "必须上传资料");
}
// 变更行动项不可为空,最多20项
List<ChangeExecProject> changeExecProjectList = changeFlowSubmitReq.getChangeExecProjectList();
Assert.isTrue(changeExecProjectList.size() <= appConfig.getChangeExecLimit(),
"变更行动方案配置数超限");
changeRecord.setParentChangeClassId(changeFlowSubmitReq.getParentChangeClassId()); changeRecord.setParentChangeClassId(changeFlowSubmitReq.getParentChangeClassId());
changeRecord.setSonChangeClassId(changeFlowSubmitReq.getSonChangeClassId()); changeRecord.setSonChangeClassId(changeFlowSubmitReq.getSonChangeClassId());
List<ChangeExecProject> changeExecProjectList = changeFlowSubmitReq.getChangeExecProjectList();
List<String> execDepartmentList = changeExecProjectList.stream().map(ChangeExecProject::getChangeExecDepartment) List<String> execDepartmentList = changeExecProjectList.stream().map(ChangeExecProject::getChangeExecDepartment)
.collect(Collectors.toList()); .collect(Collectors.toList());
changeRecord.setParticipateChangeExecDepartment(JSON.toJSONString(execDepartmentList)); changeRecord.setParticipateChangeExecDepartment(JSON.toJSONString(execDepartmentList));
...@@ -376,12 +404,26 @@ public class ChangeFlowBiz { ...@@ -376,12 +404,26 @@ public class ChangeFlowBiz {
changeRecord.setChangeProfitDesc(changeFlowSubmitReq.getChangeProfitDesc()); changeRecord.setChangeProfitDesc(changeFlowSubmitReq.getChangeProfitDesc());
changeRecord.setChangeConfirmResultTime(changeFlowSubmitReq.getChangeConfirmResultTime()); changeRecord.setChangeConfirmResultTime(changeFlowSubmitReq.getChangeConfirmResultTime());
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
// 提交工单
String submitNode = this.submitFlow(flowId.toString(), flowDataDTO, uid, String submitNode = this.submitFlow(flowId.toString(), flowDataDTO, uid,
ChangeFlowEnum.CHANGE_FLOW_SUBMIT.getTopoId(), JSON.toJSONString(content)); ChangeFlowEnum.CHANGE_FLOW_SUBMIT.getTopoId(), JSON.toJSONString(content));
// 更新工单数据
changeRecord.setFlowNode(submitNode); changeRecord.setFlowNode(submitNode);
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
// 更新行动执行方案,覆盖操作,先删除,后插入
Integer changeExecCount = changeFlowExecService.deleteByChangeRecordId(changeRecord.getId());
log.info("[CHANGE_FLOW_SUBMIT] delete changeExecCount:{}", changeExecCount);
// 保存变更行动方案记录
List<ChangeExecRecord> changeExecRecords = buildChangeExecUpdateRecord(changeRecord.getId(), changeFlowSubmitReq.getChangeExecProjectList());
changeFlowExecService.batchSaveRecord(changeExecRecords);
// 更新附件,覆盖操作,先删除,后插入
List<ChangeFlowFile> files = changeFlowSubmitReq.getFiles();
if (CollectionUtils.isNotEmpty(files)) {
changeFileService.deleteByChangeRecordId(changeRecord.getId());
List<ChangeFile> changeFiles = buildChangeFileRecord(changeRecord.getId(), files);
changeFileService.batchSaveRecord(changeFiles);
}
// todo: 发送邮件 // todo: 发送邮件
return submitNode; return submitNode;
...@@ -397,7 +439,7 @@ public class ChangeFlowBiz { ...@@ -397,7 +439,7 @@ public class ChangeFlowBiz {
case FINISH_ALL: case FINISH_ALL:
case FINISH_PART: case FINISH_PART:
List<ChangeExecProject> execProjectList = changeFlowSubmitReq.getChangeExecProjectList(); List<ChangeExecProject> execProjectList = changeFlowSubmitReq.getChangeExecProjectList();
List<ChangeExecRecord> changeExecRecords = execProjectList.stream().map(exec -> { List<ChangeExecRecord> changeExecRecordList = execProjectList.stream().map(exec -> {
Long changeExecFinishTime = exec.getChangeExecFinishTime(); Long changeExecFinishTime = exec.getChangeExecFinishTime();
Assert.notNull(changeExecFinishTime, "行动完成时间不可为空" + exec.getChangeTemplateId()); Assert.notNull(changeExecFinishTime, "行动完成时间不可为空" + exec.getChangeTemplateId());
String changeExecFinishDesc = exec.getChangeExecFinishDesc(); String changeExecFinishDesc = exec.getChangeExecFinishDesc();
...@@ -415,7 +457,7 @@ public class ChangeFlowBiz { ...@@ -415,7 +457,7 @@ public class ChangeFlowBiz {
changeRecord.setFlowNode(confirmNode); changeRecord.setFlowNode(confirmNode);
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
changeExecRecords.forEach(exec->changeFlowExecService.update(exec)); changeExecRecordList.forEach(exec->changeFlowExecService.update(exec));
//todo: 发送邮件 //todo: 发送邮件
return confirmNode; return confirmNode;
case CANCEL: case CANCEL:
......
...@@ -25,4 +25,6 @@ public interface ChangeFileService { ...@@ -25,4 +25,6 @@ public interface ChangeFileService {
List<ChangeFlowFile> getChangeFileList(Long changeRecordId); List<ChangeFlowFile> getChangeFileList(Long changeRecordId);
void batchSaveRecord(List<ChangeFile> changeFiles); void batchSaveRecord(List<ChangeFile> changeFiles);
Integer deleteByChangeRecordId(Long changeRecordId);
} }
\ No newline at end of file
...@@ -32,4 +32,6 @@ public interface ChangeFlowExecService { ...@@ -32,4 +32,6 @@ public interface ChangeFlowExecService {
void batchSaveRecord(List<ChangeExecRecord> changeExecRecordList); void batchSaveRecord(List<ChangeExecRecord> changeExecRecordList);
Boolean update(ChangeExecRecord exec); Boolean update(ChangeExecRecord exec);
Integer deleteByChangeRecordId(Long id);
} }
\ No newline at end of file
...@@ -43,4 +43,9 @@ public class ChangeFileServiceImpl implements ChangeFileService { ...@@ -43,4 +43,9 @@ public class ChangeFileServiceImpl implements ChangeFileService {
public void batchSaveRecord(List<ChangeFile> changeFiles) { public void batchSaveRecord(List<ChangeFile> changeFiles) {
changeFileMapper.insertList(changeFiles); changeFileMapper.insertList(changeFiles);
} }
@Override
public Integer deleteByChangeRecordId(Long changeRecordId) {
return changeFileMapper.deleteByBaseId(changeRecordId);
}
} }
\ No newline at end of file
...@@ -53,4 +53,9 @@ public class ChangeFlowExecServiceImpl implements ChangeFlowExecService { ...@@ -53,4 +53,9 @@ public class ChangeFlowExecServiceImpl implements ChangeFlowExecService {
public Boolean update(ChangeExecRecord changeExecRecord) { public Boolean update(ChangeExecRecord changeExecRecord) {
return changeExecRecordMapper.updateByPrimaryKeySelective(changeExecRecord) > 0; return changeExecRecordMapper.updateByPrimaryKeySelective(changeExecRecord) > 0;
} }
@Override
public Integer deleteByChangeRecordId(Long changeRecordId) {
return changeExecRecordMapper.deleteByBaseId(changeRecordId);
}
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ package com.netease.mail.yanxuan.change.dal.mapper; ...@@ -8,6 +8,7 @@ package com.netease.mail.yanxuan.change.dal.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -32,4 +33,7 @@ public interface ChangeExecRecordMapper extends tk.mybatis.mapper.common.Mapper< ...@@ -32,4 +33,7 @@ public interface ChangeExecRecordMapper extends tk.mybatis.mapper.common.Mapper<
"(#{item.changeRecordId}, #{item.changeExecDepartment}, #{item.changeExecUserType}, #{item.changeExecUser}, #{item.changeRiskDesc}, #{item.changeExecProject}, #{item.changeChecking}, #{item.changeExecFinishTime}, #{item.changeExecFinishDesc}, #{item.createTime}, #{item.updateTime})", "(#{item.changeRecordId}, #{item.changeExecDepartment}, #{item.changeExecUserType}, #{item.changeExecUser}, #{item.changeRiskDesc}, #{item.changeExecProject}, #{item.changeChecking}, #{item.changeExecFinishTime}, #{item.changeExecFinishDesc}, #{item.createTime}, #{item.updateTime})",
"</foreach>", "</script>" }) "</foreach>", "</script>" })
void insertList(@Param("list") List<ChangeExecRecord> changeExecRecordList); void insertList(@Param("list") List<ChangeExecRecord> changeExecRecordList);
@Delete("delete from TB_YX_QC_CHANGE_EXEC_RECORD where change_record_id = #{changeRecordId}}")
Integer deleteByBaseId(@Param("changeRecordId") Long changeRecordId);
} }
...@@ -8,6 +8,7 @@ package com.netease.mail.yanxuan.change.dal.mapper; ...@@ -8,6 +8,7 @@ package com.netease.mail.yanxuan.change.dal.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -31,4 +32,7 @@ public interface ChangeFileMapper extends tk.mybatis.mapper.common.Mapper<Change ...@@ -31,4 +32,7 @@ public interface ChangeFileMapper extends tk.mybatis.mapper.common.Mapper<Change
"(#{item.changeRecordId}, #{item.fileType}, #{item.fileName}, #{item.fileUrl}, #{item.createTime}, #{item.updateTime})", "(#{item.changeRecordId}, #{item.fileType}, #{item.fileName}, #{item.fileUrl}, #{item.createTime}, #{item.updateTime})",
"</foreach>", "</script>" }) "</foreach>", "</script>" })
void insertList(List<ChangeFile> changeFiles); void insertList(List<ChangeFile> changeFiles);
@Delete("delete from TB_YX_QC_CHANGE_FILE where change_record_id = #{changeRecordId}}")
Integer deleteByBaseId(Long changeRecordId);
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment