认证清单-认证工程师审查退回、认证工程师审查通过。

This commit is contained in:
wangzhijiang
2023-03-09 11:39:09 +08:00
parent 91c0b95310
commit 8dd827605b
3 changed files with 136 additions and 34 deletions
@@ -17,7 +17,7 @@ public enum CertificationInventoryFlowStatusEnum {
* 任务待确认 认证工程师发起责任人待确认
* 责任人拒绝 责任人拒绝
* 结果待提交 责任人接受后 未提交交付物
* 工程师退回 责任人分发后被第二位责任人退回
* 工程师退回 责任人分发后被第二位责任人退回 (没有该状态。)
* 结果待审查 责任人提交后认证工程师未审查
* 审查通过 责任人提交后认证工程师审查通过
* 审查退回 责任人提交后认证工程师审查退回
@@ -131,7 +131,7 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
/**
* 批量保存
* @param projectCertificationInventoryEOList
* @param json
* @return
*/
Result<?> saveBatch(JSONObject json);
@@ -697,6 +697,10 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
case RZGCSSC:
break;
case RZGCSSC_TG:
return this.certificationReviewThrough(json);
case RZGCSSC_TH:
return this.certificationReviewReturned(json);
default:
throw new JeroBootException(nodeKey + " 的操作节点传递有误,请联系管理员!");
}
@@ -704,6 +708,134 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
return Result.OK("提交任务成功!");
}
/**
* 认证工程师审查退回
* @param json
* @return
*/
private Result<?> certificationReviewReturned(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!");
}
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue());
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
try {
// 更新数据状态为 审查退回
this.updateBatchById(projectCertificationInventoryEOList);
List<String> flowStatus = new ArrayList<>();
flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-审批退回失败:" + ex.getMessage());
throw new JeroBootException("审批退回失败!");
}
return Result.OK("审批退回成功!");
}
/**
* 认证工程师审查通过
* @param json
* @return
*/
private Result<?> certificationReviewThrough(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!");
}
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue());
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
try {
// 更新数据状态为 审查通过
this.updateBatchById(projectCertificationInventoryEOList);
List<String> flowStatus = new ArrayList<>();
flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-审批通过失败:" + ex.getMessage());
throw new JeroBootException("审批通过失败!");
}
return Result.OK("审批通过成功!");
}
/**
* 更新任务状态为已办
* @param projectLibraryBase
*/
private void updateProcessInfoDetailStatus(ProjectLibraryBase projectLibraryBase,String taskDefinitionKey,List<String> flowStatusList) {
QueryWrapper<ProjectCertificationInventoryEO> queryCountWrap = new QueryWrapper<>();
queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryBase.getId());
queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
int notDoneCount = this.count(queryCountWrap);
if(notDoneCount == 0){
QueryWrapper<ProcessInfoDetailEO> detailQueryWrapper = new QueryWrapper<>();
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId());
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,taskDefinitionKey);
List<ProcessInfoDetailEO> detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper);
for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) {
processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue());
}
this.processInfoDetailEOService.updateBatchById(detailEOList);
}
}
/**
* 责任人提交任务
@@ -971,23 +1103,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
this.updateBatchById(projectCertificationInventoryEOList);
// 更新该项目认证流程中,认证工程师的任务状态。
QueryWrapper<ProjectCertificationInventoryEO> queryCountWrap = new QueryWrapper<>();
queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryBase.getId());
queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
int notDoneCount = this.count(queryCountWrap);
// 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办
if(notDoneCount == 0){
QueryWrapper<ProcessInfoDetailEO> detailQueryWrapper = new QueryWrapper<>();
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
List<ProcessInfoDetailEO> detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper);
for (ProcessInfoDetailEO detailEO : detailEOList) {
detailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue());
}
this.processInfoDetailEOService.updateBatchById(detailEOList);
}
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage());
@@ -1047,23 +1164,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
this.updateBatchById(projectCertificationInventoryEOList);
// 更新该项目认证流程中,认证工程师的任务状态。
QueryWrapper<ProjectCertificationInventoryEO> queryCountWrap = new QueryWrapper<>();
queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryBase.getId());
queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
int notDoneCount = this.count(queryCountWrap);
// 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办
if(notDoneCount == 0){
QueryWrapper<ProcessInfoDetailEO> detailQueryWrapper = new QueryWrapper<>();
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
List<ProcessInfoDetailEO> detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper);
for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) {
processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue());
}
this.processInfoDetailEOService.updateBatchById(detailEOList);
}
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-发起认证清单任务失败:" + ex.getMessage());