待办中心-项目法规任务-集成认证流程(Pre-Homo流程)。
认证流程相关接口开发。
This commit is contained in:
+1
-1
@@ -102,7 +102,7 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
|
||||
|
||||
void addProcessInfoEO(ProcessInfoEO processInfoEO, String projectLibraryId);
|
||||
|
||||
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, ProcessInfoEO processInfoEO);
|
||||
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, String processInfoId, String taskDefinitionKey);
|
||||
|
||||
Result<List<SysRole>> getRoleByUserId(Map<String, Object> params);
|
||||
|
||||
|
||||
+111
-10
@@ -342,12 +342,20 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
|
||||
processInfoDetailEO.setProcessInfoId(projectLibraryId);
|
||||
processInfoDetailEO.setActiProcInstId(projectLibraryId);
|
||||
processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
|
||||
processInfoDetailEOList.add(processInfoDetailEO);
|
||||
}
|
||||
|
||||
ProcessInfoEO processInfoEO = new ProcessInfoEO();
|
||||
this.addProcessInfoEO(processInfoEO,projectLibraryId);
|
||||
this.addProcessInfoDetailEO(processInfoDetailEOList,processInfoEO);
|
||||
|
||||
// 删除该项目数据的待办任务,key为 认证工程师接受任务的数据
|
||||
QueryWrapper<ProcessInfoDetailEO> deleteDetailWrap = new QueryWrapper<>();
|
||||
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoEO.getId());
|
||||
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
|
||||
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue());
|
||||
this.processInfoDetailEOService.remove(deleteDetailWrap);
|
||||
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
|
||||
this.updateBatchById(projectCertificationInventoryEOList);
|
||||
return Result.OK("发布成功!");
|
||||
}
|
||||
@@ -366,6 +374,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
processInfoEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
|
||||
processInfoEO.setStatus(TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue());
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
processInfoEO.setCreateBy(currentUser.getId());
|
||||
|
||||
QueryWrapper<ProcessInfoEO> deleteWrap = new QueryWrapper<>();
|
||||
deleteWrap.lambda().eq(ProcessInfoEO::getId,projectLibraryId);
|
||||
this.processInfoEOService.remove(deleteWrap);
|
||||
@@ -375,19 +386,28 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
/**
|
||||
* 添加流程信息,用户的待办信息。
|
||||
* @param processInfoDetailEOList
|
||||
* @param processInfoEO
|
||||
* @param processInfoId
|
||||
*/
|
||||
@Override
|
||||
public void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList,ProcessInfoEO processInfoEO){
|
||||
public void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList,String processInfoId,String taskDefinitionKey){
|
||||
processInfoDetailEOList.forEach(detail -> {
|
||||
detail.setActiProcInstId(processInfoId);
|
||||
detail.setProcessInfoId(processInfoId);
|
||||
detail.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
|
||||
detail.setTaskDefinitionKey(taskDefinitionKey);
|
||||
detail.setStatus(TaskStatusEnum.NOT_DONE.getValue());
|
||||
// detail.setEndTime(DateUtils.str2Date(endTime,DateUtils.date_sdf.get()));
|
||||
detail.setCreateTime(new Date());
|
||||
detail.setStatus(TaskStatusEnum.NOT_DONE.getValue());
|
||||
});
|
||||
|
||||
// 删除该项目数据的待办任务,key为 认证工程师接受任务的数据
|
||||
QueryWrapper<ProcessInfoDetailEO> deleteDetailWrap = new QueryWrapper<>();
|
||||
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoEO.getId());
|
||||
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
|
||||
this.processInfoDetailEOService.remove(deleteDetailWrap);
|
||||
List<String> userIdList = processInfoDetailEOList.stream().map(ProcessInfoDetailEO::getUserId).distinct().collect(Collectors.toList());
|
||||
QueryWrapper<ProcessInfoDetailEO> removeWrap = new QueryWrapper<>();
|
||||
removeWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoId);
|
||||
removeWrap.lambda().in(ProcessInfoDetailEO::getUserId,userIdList);
|
||||
// 删除用户在这个认证清单流程中其它的待办任务
|
||||
this.processInfoDetailEOService.remove(removeWrap);
|
||||
|
||||
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
|
||||
}
|
||||
|
||||
@@ -650,14 +670,14 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
if(ObjectUtils.isEmpty(projectLibraryBase)){
|
||||
throw new JeroBootException("无法获取项目库信息,项目库id为:" + projectLibraryId + " 请联系管理员!");
|
||||
}
|
||||
json.put("projectLibraryBase",projectLibraryBase);
|
||||
|
||||
|
||||
switch (flowNodeEnum){
|
||||
case RZGCSJSRW:
|
||||
return this.certificationInitiatingTask(json);
|
||||
case RZGCSTHRW:
|
||||
|
||||
break;
|
||||
return this.certificationReturnedStudioTask(json);
|
||||
case ZRRJSRW:
|
||||
|
||||
break;
|
||||
@@ -674,6 +694,52 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
return Result.OK("提交任务成功!");
|
||||
}
|
||||
|
||||
private Result<?> certificationReturnedStudioTask(JSONObject json) {
|
||||
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.LIST_TO_BE_CHECKED.getValue());
|
||||
flowStatusList.add(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.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("至少选择一条数据流程状态为'清单待校核 或 责任人拒绝的数据'!");
|
||||
}
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
|
||||
if (StringUtils.isEmpty(projectLibraryBase.getStudioEngineer())) {
|
||||
throw new JeroBootException("该项目的studio为空,请维护studio后再进行退回操作!");
|
||||
}
|
||||
|
||||
// 给studio分配待办中心任务
|
||||
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
|
||||
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
|
||||
processInfoDetailEO.setUserId(projectLibraryBase.getStudioEngineer());
|
||||
processInfoDetailEOList.add(processInfoDetailEO);
|
||||
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey());
|
||||
|
||||
try {
|
||||
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
|
||||
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue());
|
||||
}
|
||||
// 认证工程师发起任务,将数据的状态更新为 任务待确认。
|
||||
this.updateBatchById(projectCertificationInventoryEOList);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage());
|
||||
throw new JeroBootException("退回任务失败!");
|
||||
}
|
||||
|
||||
return Result.OK("退回任务成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 认证工程师发起任务
|
||||
* @param json
|
||||
@@ -700,10 +766,45 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
throw new JeroBootException("至少选择一条数据流程状态为'清单待校核 或 责任人拒绝的数据'!");
|
||||
}
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
|
||||
if (ObjectUtils.isEmpty(projectLibraryBase)) {
|
||||
throw new JeroBootException("无法获取项目库信息");
|
||||
}
|
||||
|
||||
try {
|
||||
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
|
||||
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
|
||||
}
|
||||
|
||||
// 给责任人分配待办中心的任务
|
||||
List<String> dutyPersonList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList());
|
||||
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
|
||||
for (String dutyPerson : dutyPersonList) {
|
||||
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
|
||||
processInfoDetailEO.setUserId(dutyPerson);
|
||||
processInfoDetailEOList.add(processInfoDetailEO);
|
||||
}
|
||||
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRJSRW.getKey());
|
||||
|
||||
// 更新该项目认证流程中,认证工程师的任务状态。
|
||||
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.updateBatchById(projectCertificationInventoryEOList);
|
||||
}catch (Exception ex){
|
||||
|
||||
+4
-1
@@ -203,7 +203,10 @@
|
||||
where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
|
||||
)
|
||||
)
|
||||
AND pi.flow_type = #{params.qdqrFlowTypeValue}
|
||||
AND pi.flow_type IN
|
||||
<foreach collection="params.qdqrFlowTypeValue" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
)temp
|
||||
<include refid="BaseQuerySql"/>
|
||||
order by temp.end_time asc
|
||||
|
||||
+19
-11
@@ -39,6 +39,7 @@ import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum;
|
||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||
import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -199,11 +200,16 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
|
||||
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
// 2023-03-08 去掉原来的Pre-Homo
|
||||
// flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
params.put("flowTypeList",flowTypeList);
|
||||
params.put("taskStatus", TaskStatusEnum.NOT_DONE.getValue());
|
||||
params.put("currentUserId",currentUser.getId());
|
||||
params.put("qdqrFlowTypeValue",FlowTypeEnum.QDQR.getValue());
|
||||
|
||||
List<String> qdqrFlowTypeValue = new ArrayList<>();
|
||||
qdqrFlowTypeValue.add(FlowTypeEnum.QDQR.getValue());
|
||||
qdqrFlowTypeValue.add(FlowTypeEnum.CERTIFICATION_LC.getValue());
|
||||
params.put("qdqrFlowTypeValue",qdqrFlowTypeValue);
|
||||
|
||||
IPage page = new Page(pageNo, pageSize);
|
||||
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
|
||||
@@ -304,7 +310,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
|
||||
List<String> flowTypeList = new ArrayList<>();
|
||||
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
// flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue());
|
||||
|
||||
//根据法规清单id,查询待办中心数据
|
||||
@@ -396,7 +402,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
|
||||
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue());
|
||||
flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
// flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -567,13 +573,15 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
|
||||
|
||||
//判断当前任务是否过期
|
||||
Date endTime = data.getEndTime();
|
||||
try {
|
||||
endTime = sdf.parse(sdf.format(endTime));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(finalCurrentDate.after(endTime) || finalCurrentDate.equals(endTime)){
|
||||
data.setEndTimePastDueFlag(true);
|
||||
if(ObjectUtils.isNotEmpty(endTime)){
|
||||
try {
|
||||
endTime = sdf.parse(sdf.format(endTime));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(finalCurrentDate.after(endTime) || finalCurrentDate.equals(endTime)){
|
||||
data.setEndTimePastDueFlag(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user