diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java index 9668a5a92..f9b86374a 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java @@ -5,13 +5,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.constant.enums.CutEnum; +import com.jero.modules.system.enums.SysPermissionEnum; +import com.jero.modules.system.mapper.TodoCenterMapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.apache.shiro.authz.annotation.RequiresRoles; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; -import com.jero.common.system.util.JwtUtil; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.MD5Util; import com.jero.common.util.oConvertUtils; @@ -54,6 +55,9 @@ public class SysPermissionController { @Autowired private ISysDepartPermissionService sysDepartPermissionService; + @Autowired + private TodoCenterMapper todoCenterMapper; + /** * 加载数据节点 * @@ -641,6 +645,47 @@ public class SysPermissionController { if (isWWWHttpUrl(permission.getUrl())) { meta.put("url", permission.getUrl()); } + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + Map params = new HashMap<>(); + params.put("currentUserId",currentUser.getId()); + + List flowTypeList = new ArrayList<>(); + //项目法规任务 + if(StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_REGULATION_TASKS.getId())){ + flowTypeList.add("1"); + flowTypeList.add("2"); + flowTypeList.add("3"); + flowTypeList.add("4"); + flowTypeList.add("10"); + params.put("flowTypeList",flowTypeList); + //存在待办任务标识,true为有 + boolean existTaskFlag = false; + int result = todoCenterMapper.todoCenterTaskCount(params); + if(result > 0){ + existTaskFlag = true; + } + //查询当前登录用户是否有项目法规任务 + meta.put("existTask",existTaskFlag); + } + //法规评估任务 + if(StringUtils.equals(permission.getId(), SysPermissionEnum.REGULATORY_ASSESSMENT_TASKS.getId())){ + flowTypeList.add("5"); + flowTypeList.add("6"); + params.put("flowTypeList",flowTypeList); + int result = todoCenterMapper.todoCenterTaskCount(params); + boolean existTaskFlag = false; + if(result > 0){ + existTaskFlag = true; + } + meta.put("existTask",existTaskFlag); + } + //项目参数任务 + if(StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_PARAMETER_TASKS.getId())){ + boolean existTaskFlag = false; + meta.put("existTask",existTaskFlag); + } json.put("meta", meta); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/SysPermissionEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/SysPermissionEnum.java new file mode 100644 index 000000000..951afcc20 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/SysPermissionEnum.java @@ -0,0 +1,35 @@ +package com.jero.modules.system.enums; + +/** + * 菜单权限枚举类 + * @Author: wzj + * @Date: 2022/10/26 16:14 + **/ +public enum SysPermissionEnum { + + PROJECT_REGULATION_TASKS("项目法规任务","1580735287309119489",""), + REGULATORY_ASSESSMENT_TASKS("法规评估任务","1580735611793059842",""), + PROJECT_PARAMETER_TASKS("项目参数任务","1580735965892980738",""); + + private String name; + private String id; + private String value; + + private SysPermissionEnum(String name,String id, String value) { + this.name = name; + this.id = id; + this.value = value; + } + + public String getName() { + return name; + } + + public String getValue() { + return value; + } + + public String getId() { + return id; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/TodoCenterMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/TodoCenterMapper.java new file mode 100644 index 000000000..b6e0e59ca --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/TodoCenterMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.system.mapper; + +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * 待办中心mapper层 + * @Author: wzj + * @Date: 2022/10/26 16:41 + **/ +public interface TodoCenterMapper { + int todoCenterTaskCount(@Param("params") Map params); +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/TodoCenterMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/TodoCenterMapper.xml new file mode 100644 index 000000000..29d53a4d9 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/TodoCenterMapper.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java index 376cc56a3..a190cd358 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java @@ -2,6 +2,7 @@ package com.jero.modules.lawsOpinionGather.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.MessageTypeEnum; @@ -28,6 +29,10 @@ import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; +import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -68,6 +73,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl processInfoUpdateWrap = new LambdaUpdateWrapper<>(); + processInfoUpdateWrap.set(ProcessInfoEO::getStatus, TodoCenterStatusEnum.COMPLETED.getValue()); + processInfoUpdateWrap.in(ProcessInfoEO::getId,actiProcInstIdList); + processInfoUpdateWrap.eq(ProcessInfoEO::getFlowType, FlowTypeEnum.FGYJSJLC.getValue()); + this.processInfoEOService.update(processInfoUpdateWrap); } } return new Result<>().success("手动结束成功!"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java index 567660c55..b1e7617bd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -2,6 +2,7 @@ package com.jero.modules.lawsTechnologyEvaluation.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; @@ -32,6 +33,10 @@ import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; +import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; @@ -95,6 +100,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper); if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){ - String prcIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); + List actiProcInstIdList = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.toList()); + String prcIds = actiProcInstIdList.stream().collect(Collectors.joining(",")); Result result = this.workFlowFeignClient.deleteProcessInstanceByPrcIds(prcIds); if(result.getCode().equals(CommonConstant.SC_OK_200)){ removeByIds(ids); @@ -168,6 +176,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper); if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){ - String actiProcInstIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); + List actiProcInstIdList = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.toList()); + String actiProcInstIds = actiProcInstIdList.stream().collect(Collectors.joining(",")); Result result = this.workFlowFeignClient.completeLawsTechnologyEvaluationTaskByPids(actiProcInstIds); if(result.getCode().equals(CommonConstant.SC_OK_200)){ lawsTechnologyEvaluationEOList.forEach(lawsTechnologyEvaluationEO -> { lawsTechnologyEvaluationEO.setFlowStatus(GatherResultEnum.COMPLETED.getValue()); }); this.updateBatchById(lawsTechnologyEvaluationEOList); + + LambdaUpdateWrapper processInfoUpdateWrap = new LambdaUpdateWrapper<>(); + processInfoUpdateWrap.set(ProcessInfoEO::getStatus, TodoCenterStatusEnum.COMPLETED.getValue()); + processInfoUpdateWrap.in(ProcessInfoEO::getId,actiProcInstIdList); + processInfoUpdateWrap.eq(ProcessInfoEO::getFlowType, FlowTypeEnum.FGJSPG.getValue()); + this.processInfoEOService.update(processInfoUpdateWrap); } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index fde39e439..7554c278d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -9,10 +9,13 @@ import com.jero.common.system.vo.LoginUser; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.system.entity.SysRole; +import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; import java.util.Map; @@ -149,4 +152,8 @@ public interface IProjectLawsInventoryEOService extends IService expediting(JSONObject json); List getRoleByUserId(String projectLibraryId,String cut); + + void addProcessInfo(ProcessInfoEO processInfoEO, String projectLibraryId, Date endTime); + + void addProcessInfoDetail(String processInfoId, List processInfoDetailEOList, Date endTime); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 483262b5e..c2b2098d7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -576,9 +576,20 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl processInfoQueryWrap = new QueryWrapper<>(); @@ -8664,13 +8701,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl processInfoDetailEOList,Date endTime){ - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - + @Override + public void addProcessInfoDetail(String processInfoId, List processInfoDetailEOList, Date endTime){ processInfoDetailEOList.forEach(detail -> { - detail.setCreateTime(new Date()); - detail.setCreateBy(currentUser.getId()); - detail.setStatus(TaskStatusEnum.NOT_DONE.getValue()); detail.setProcessInfoId(processInfoId); detail.setFlowType(FlowTypeEnum.QDQR.getValue()); @@ -8680,25 +8713,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl deleteStudioDetailWrap = new QueryWrapper<>(); + /*QueryWrapper deleteStudioDetailWrap = new QueryWrapper<>(); deleteStudioDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,InventoryAffirmNodeEnum.INITIATED_BY_STUDIO_ENGINEERS.getKey()); deleteStudioDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoId); - this.processInfoDetailEOService.remove(deleteStudioDetailWrap); + this.processInfoDetailEOService.remove(deleteStudioDetailWrap);*/ this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java index 882059144..144f559e2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java @@ -222,10 +222,12 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl processInfoDetailUpdateWrap= new LambdaUpdateWrapper(); - processInfoDetailUpdateWrap.eq(ProcessInfoDetailEO::getTaskId,taskInventoryDetailById.getTaskId()); - processInfoDetailUpdateWrap.set(ProcessInfoDetailEO::getStatus,projectTaskInventoryDetailEO.getStatus()); - this.processInfoDetailEOService.update(processInfoDetailUpdateWrap); + if(taskInventoryDetailById != null){ + LambdaUpdateWrapper processInfoDetailUpdateWrap= new LambdaUpdateWrapper(); + processInfoDetailUpdateWrap.eq(ProcessInfoDetailEO::getTaskId,taskInventoryDetailById.getTaskId()); + processInfoDetailUpdateWrap.set(ProcessInfoDetailEO::getStatus,projectTaskInventoryDetailEO.getStatus()); + this.processInfoDetailEOService.update(processInfoDetailUpdateWrap); + } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/LawsAssessTodoCenterController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/LawsAssessTodoCenterController.java new file mode 100644 index 000000000..5461059e6 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/LawsAssessTodoCenterController.java @@ -0,0 +1,50 @@ +package com.jero.modules.todoCenter.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Api(tags="待办中心-法规评估") +@RestController +@RequestMapping("/todoCenter/lawsAssess") +@Slf4j +public class LawsAssessTodoCenterController { + + @Autowired + private IProcessInfoEOService processInfoEOService; + + @AutoLog(value = "分页查询-待办任务列表") + @ApiOperation(value="分页查询-待办任务列表", notes="分页查询-待办任务列表") + @GetMapping(value = "/todoTaskList") + public Result todoTaskList(@RequestParam Map params) { + IPage page = this.processInfoEOService.lawsAssessTodoTaskList(params); + return Result.OK(page); + } + + @AutoLog(value = "分页查询-已办任务列表") + @ApiOperation(value="分页查询-已办任务列表", notes="分页查询-已办任务列表") + @GetMapping(value = "/doneProcess") + public Result doneProcess(@RequestParam Map params) { + IPage page = this.processInfoEOService.lawsAssessDoneProcess(params); + return Result.OK(page); + } + + @AutoLog(value = "分页查询-已发任务列表") + @ApiOperation(value="分页查询-已发任务列表", notes="分页查询-已发任务列表") + @GetMapping(value = "/issuedProcess") + public Result issuedProcess(@RequestParam Map params) { + IPage page = this.processInfoEOService.lawsAssessIssuedProcess(params); + return Result.OK(page); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java index 4cce49b14..06a5f5d59 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java @@ -28,7 +28,7 @@ public class ProjectProcessTodoCenterController { @ApiOperation(value="分页查询-待办任务列表", notes="分页查询-待办任务列表") @GetMapping(value = "/todoTaskList") public Result todoTaskList(@RequestParam Map params) { - IPage page = this.processInfoEOService.todoTaskList(params); + IPage page = this.processInfoEOService.projectProcessTodoTaskList(params); return Result.OK(page); } @@ -36,7 +36,7 @@ public class ProjectProcessTodoCenterController { @ApiOperation(value="分页查询-已办任务列表", notes="分页查询-已办任务列表") @GetMapping(value = "/doneProcess") public Result doneProcess(@RequestParam Map params) { - IPage page = this.processInfoEOService.doneProcess(params); + IPage page = this.processInfoEOService.projectProcessDoneProcess(params); return Result.OK(page); } @@ -44,7 +44,14 @@ public class ProjectProcessTodoCenterController { @ApiOperation(value="分页查询-已发任务列表", notes="分页查询-已发任务列表") @GetMapping(value = "/issuedProcess") public Result issuedProcess(@RequestParam Map params) { - IPage page = this.processInfoEOService.issuedProcess(params); + IPage page = this.processInfoEOService.projectProcessIssuedProcess(params); return Result.OK(page); } + + @AutoLog(value = "待办中心-法规评估-初始化历史数据") + @ApiOperation(value="待办中心-法规评估-初始化历史数据", notes="待办中心-法规评估-初始化历史数据") + @GetMapping(value = "/initHistoryData") + public Result initHistoryData(@RequestParam Map params) { + return this.processInfoEOService.initHistoryData(params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java index 5c746561b..86b9a32f8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java @@ -14,8 +14,27 @@ import com.jero.modules.todoCenter.vo.ProcessInfoVO; * @Version: V1.0 */ public interface ProcessInfoEOMapper extends BaseMapper { + /** + * 查询项目流程分页列表(已办、已发使用) + * @param page + * @param params + * @return + */ + IPage queryProjectProcessPageList(IPage page, Map params); - IPage queryPageList(IPage page, Map params); - + /**+ + * 查询项目流程-待办列表 + * @param page + * @param params + * @return + */ IPage queryProjectProcessTodoTaskListList(IPage page,Map params); + + /** + * 查询法规评估流程分页列表 + * @param page + * @param params + * @return + */ + IPage queryLawsAssessPageList(IPage page, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml index 8c9e1df41..94edf9561 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml @@ -19,80 +19,102 @@ - ( - pi.id IN ( - SELECT - pid.process_info_id - FROM - process_info_detail pid - - pid.user_id = #{params.currentUserId} - - and pid.status = #{params.taskStatus} - - - ) - ) and ( - pni.project_name like CONCAT(CONCAT('%',#{params.projectName}),'%') - or pyni.year_name like CONCAT(CONCAT('%',#{params.projectName}),'%') + temp.project_name like CONCAT(CONCAT('%',#{params.projectName}),'%') + or temp.year_name like CONCAT(CONCAT('%',#{params.projectName}),'%') ) - - and ( - pli.serial_number like CONCAT(CONCAT('%',#{params.serialNumber}),'%') - ) + + and temp.standard_info like CONCAT(CONCAT('%',#{params.standardInfo}),'%') - and pi.flow_type = #{params.flowType} + and temp.flow_type = #{params.flowType} - and pi.status = #{params.status} - - - and pi.flow_type in - - #{item} - - - - and pi.create_by = #{params.createBy} + and temp.status = #{params.status} - + select temp.* from ( + SELECT + pi.id, + pi.project_library_id, + pi.project_laws_inventory_id, + pi.buss_document_library_id, + pi.acti_proc_inst_id, + pni.project_name, + pyni.year_name, + pli.serial_number, + pli.title, + bdl.title_en, + + concat(pli.serial_number,'、',pli.title) as standard_info, + + + concat(pli.serial_number,'、',bdl.title_en) as standard_info, + + pi.flow_type, + createBy.username as "create_by", + pi.end_time, + ( + select + detail.task_id + from + process_info_detail detail + where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} order by submit_time desc limit 1 + ) as task_id, + ( + select + detail.task_definition_key + from + process_info_detail detail + where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} order by submit_time desc limit 1 + ) as task_definition_key, + pi.status, + pi.prc_num, + pi.prc_name, + plb.project_name_id, + plb.target_market, + plb.studio_engineer + FROM + process_info pi + left join project_library_base plb on plb.id = pi.project_library_id + left join project_name_info pni on pni.id = plb.project_name_id + left join project_year_name_info pyni on pyni.id = plb.year_name_id + left join project_laws_inventory pli on pi.project_laws_inventory_id = pli.id + LEFT JOIN sys_user createBy on createBy.id = pi.create_by + LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id + + and pi.id IN ( + SELECT + pid.process_info_id + FROM + process_info_detail pid + + pid.user_id = #{params.currentUserId} + + and pid.status = #{params.taskStatus} + + + ) + + and pi.flow_type in + + #{item} + + + + + and pi.create_by = #{params.createBy} + + + + ) temp - order by pi.create_time desc + order by temp.end_time desc + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java index f72da7cba..72124c3b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java @@ -2,6 +2,7 @@ package com.jero.modules.todoCenter.service; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -73,4 +74,12 @@ public interface IProcessInfoDetailEOService extends IService processInfoDetailEOList); + + /** + * 更新待办中心流程信息明细表,处理人 + * @param projectLawsInventoryEO + * @param pId + * @param flowType + */ + void updateProcessInfoDetailUserId(ProjectLawsInventoryEO projectLawsInventoryEO, String pId, String flowType); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java index 457869dce..65fa57838 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java @@ -71,23 +71,52 @@ public interface IProcessInfoEOService extends IService { Result processCall(JSONObject jsonObject); /** - * 待办任务列表 + * 项目流程-待办任务列表 * @param params * @return */ - IPage todoTaskList(Map params); + IPage projectProcessTodoTaskList(Map params); /** - * 已办任务列表 + * 项目流程-已办任务列表 * @param params * @return */ - IPage doneProcess(Map params); + IPage projectProcessDoneProcess(Map params); /** - * 已发任务列表 + * 项目流程-已发任务列表 * @param params * @return */ - IPage issuedProcess(Map params); + IPage projectProcessIssuedProcess(Map params); + + /** + * 法规清单变更,清除对应待办中心数据。 + * @param params + */ + void change(Map params); + + /** + * 法规评估-待办任务列表 + * @param params + * @return + */ + IPage lawsAssessTodoTaskList(Map params); + + /** + * 法规评估-已办任务列表 + * @param params + * @return + */ + IPage lawsAssessDoneProcess(Map params); + + /** + * 法规评估-已发任务列表 + * @param params + * @return + */ + IPage lawsAssessIssuedProcess(Map params); + + Result initHistoryData(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java index cd0617cd6..feb2a195e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java @@ -6,11 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.mapper.ProcessInfoDetailEOMapper; import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -175,4 +179,48 @@ public class ProcessInfoDetailEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProcessInfoDetailEO::getActiProcInstId,pId); + queryWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType,flowType); + List processInfoDetailEOList = this.list(queryWrapper); + if(CollectionUtils.isNotEmpty(processInfoDetailEOList)){ + for (ProcessInfoDetailEO processInfoDetailEO : processInfoDetailEOList) { + if(StringUtils.equals(flowType, FlowTypeEnum.SJFHXSHLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getDesignDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getDesignInitiatorId()); + } + } + if(StringUtils.equals(flowType, FlowTypeEnum.PREHOMOQRLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getPrehomoDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getPrehomoInitiatorId()); + } + } + + if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getVerifyDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getVerifyInitiatorId()); + } + } + this.baseMapper.updateById(processInfoDetailEO); + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java index 3663525d1..e6c4d9d0c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java @@ -7,11 +7,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; +import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO; +import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; +import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO; -import com.jero.modules.project.enums.OperatorTypeEnum; -import com.jero.modules.project.enums.RequestSourceEnum; -import com.jero.modules.project.enums.TaskStatusEnum; +import com.jero.modules.project.entity.ProjectTaskInventoryEO; +import com.jero.modules.project.enums.*; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService; +import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; @@ -22,12 +32,15 @@ import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; import com.jero.modules.todoCenter.service.IProcessInfoEOService; import com.jero.modules.todoCenter.vo.ProcessInfoVO; 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.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -51,6 +64,20 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl ids) { removeByIds(ids); + + QueryWrapper detailRemoveWrap = new QueryWrapper<>(); + detailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId,ids); + this.processInfoDetailEOService.remove(detailRemoveWrap); } /** @@ -150,7 +181,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl params) { + public IPage projectProcessTodoTaskList(Map params) { Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); String cut = (String) params.get("cut"); @@ -174,7 +205,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl params) { + public IPage projectProcessDoneProcess(Map params) { Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); String cut = (String) params.get("cut"); @@ -188,13 +219,13 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl result = this.baseMapper.queryPageList(page,params); + IPage result = this.baseMapper.queryProjectProcessPageList(page,params); this.disposeData(result.getRecords(),cut); return result; } @Override - public IPage issuedProcess(Map params) { + public IPage projectProcessIssuedProcess(Map params) { Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); String cut = (String) params.get("cut"); @@ -206,23 +237,175 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl result = this.baseMapper.queryPageList(page,params); + IPage result = this.baseMapper.queryProjectProcessPageList(page,params); + this.disposeData(result.getRecords(),cut); + return result; + } + + @Override + public void change(Map params) { + //需要清除数据的法规清单ids + String ids = (String)params.get("ids"); + List projectLawsInventoryIdList = Arrays.asList(ids.split(",")); + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + //清除清单确认相关数据 + QueryWrapper qdqrDetailRemoveWrap = new QueryWrapper<>(); + qdqrDetailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId,projectLawsInventoryIdList); + qdqrDetailRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.QDQR.getValue()); + this.processInfoDetailEOService.remove(qdqrDetailRemoveWrap); + + //查询出所有的清单确认流程 + QueryWrapper qdqrProcessInfoWrap = new QueryWrapper<>(); + qdqrProcessInfoWrap.lambda().eq(ProcessInfoEO::getFlowType,FlowTypeEnum.QDQR.getValue()); + List qdqrProcessInfoList = this.list(qdqrProcessInfoWrap); + if(CollectionUtils.isNotEmpty(qdqrProcessInfoList)){ + List qdqrProcessInfoIdList = qdqrProcessInfoList.stream().map(ProcessInfoEO::getId).distinct().collect(Collectors.toList()); + + QueryWrapper qdqrDetailQueryWrap = new QueryWrapper<>(); + qdqrDetailQueryWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId,qdqrProcessInfoIdList); + List qdqrDetailList = this.processInfoDetailEOService.list(qdqrDetailQueryWrap); + if(CollectionUtils.isNotEmpty(qdqrDetailList)){ + qdqrProcessInfoIdList = qdqrProcessInfoIdList.stream().filter(qdqrProcessInfoId -> { + boolean flag = true; + for (ProcessInfoDetailEO processInfoDetailEO : qdqrDetailList) { + if (StringUtils.equals(qdqrProcessInfoId, processInfoDetailEO.getProcessInfoId())) { + flag = false; + break; + } + } + return flag; + }).distinct().collect(Collectors.toList()); + }else { + qdqrProcessInfoIdList.addAll(qdqrProcessInfoIdList); + } + + if(CollectionUtils.isNotEmpty(qdqrProcessInfoIdList)){ + this.baseMapper.deleteBatchIds(qdqrProcessInfoIdList); + } + } + + /** + * 1.清除任务确认相关数据 + * 2.清除设计符合性流程相关数据 + * 3.清除Pre-Homo确认流程相关数据 + * 4.清除验证符合性流程相关数据 + */ + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.RWQRLC.getValue()); + flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue()); + flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue()); + flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue()); + + //根据法规清单id,查询待办中心数据 + QueryWrapper processInfoQueryWrap = new QueryWrapper<>(); + processInfoQueryWrap.lambda().in(ProcessInfoEO::getProjectLawsInventoryId,projectLawsInventoryIdList); + processInfoQueryWrap.lambda().in(ProcessInfoEO::getFlowType,flowTypeList); + List processInfoEOList = this.list(processInfoQueryWrap); + if(CollectionUtils.isNotEmpty(processInfoEOList)){ + List processInfoIdList = processInfoEOList.stream().map(ProcessInfoEO::getId).distinct().collect(Collectors.toList()); + /*QueryWrapper detailRemoveWrap = new QueryWrapper<>(); + detailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId,processInfoIdList); + this.processInfoDetailEOService.remove(detailRemoveWrap);*/ + this.deleteByIds(processInfoIdList); + } + } + } + + @Override + public IPage lawsAssessTodoTaskList(Map params) { + Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + String cut = (String) params.get("cut"); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + params.put("createBy",currentUser.getId()); + params.put("queryType","todoProcess"); + + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue()); + flowTypeList.add(FlowTypeEnum.FGJSPG.getValue()); + params.put("flowTypeList",flowTypeList); + params.put("currentUserId",currentUser.getId()); + params.put("taskStatus", TaskStatusEnum.NOT_DONE.getValue()); + + IPage page = new Page(pageNo, pageSize); + IPage result = this.baseMapper.queryLawsAssessPageList(page,params); + this.disposeData(result.getRecords(),cut); + return result; + } + + @Override + public IPage lawsAssessDoneProcess(Map params) { + Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + String cut = (String) params.get("cut"); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + params.put("createBy",currentUser.getId()); + params.put("queryType","doneProcess"); + + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue()); + flowTypeList.add(FlowTypeEnum.FGJSPG.getValue()); + params.put("flowTypeList",flowTypeList); + params.put("currentUserId",currentUser.getId()); + params.put("taskStatus", TaskStatusEnum.HAVE_DONE.getValue()); + + IPage page = new Page(pageNo, pageSize); + IPage result = this.baseMapper.queryLawsAssessPageList(page,params); + this.disposeData(result.getRecords(),cut); + return result; + } + + @Override + public IPage lawsAssessIssuedProcess(Map params) { + Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + String cut = (String) params.get("cut"); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + params.put("createBy",currentUser.getId()); + params.put("queryType","issuedProcess"); + + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue()); + flowTypeList.add(FlowTypeEnum.FGJSPG.getValue()); + params.put("flowTypeList",flowTypeList); + params.put("currentUserId",currentUser.getId()); + params.put("taskStatus", TaskStatusEnum.HAVE_DONE.getValue()); + + IPage page = new Page(pageNo, pageSize); + IPage result = this.baseMapper.queryLawsAssessPageList(page,params); this.disposeData(result.getRecords(),cut); return result; } public void setFlowTypeList(List flowTypeList){ - flowTypeList.add(FlowTypeEnum.QDQR.getValue()); + //flowTypeList.add(FlowTypeEnum.QDQR.getValue()); flowTypeList.add(FlowTypeEnum.RWQRLC.getValue()); flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue()); flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue()); flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue()); } + /** + * 处理项目流程数据 + * @param datas + * @param cut + */ public void disposeData(List datas, String cut){ if(CollectionUtils.isNotEmpty(datas)){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date currentDate = new Date(); + try { + currentDate = sdf.parse(sdf.format(currentDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + List processInfoIdList = datas.stream().map(ProcessInfoVO::getId).distinct().collect(Collectors.toList()); QueryWrapper processInfoDetailQueryWrap = new QueryWrapper<>(); @@ -244,9 +427,10 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); - datas.forEach(data -> { //设置上一个操作人。 for (Map.Entry> detailMap : lastAssigneeDetailMap.entrySet()) { @@ -289,6 +473,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl sysUserList = this.sysUserService.querySysUserListByIdList(userIdList); + Date finalCurrentDate = currentDate; datas.forEach(data -> { if(StringUtils.isNotEmpty(data.getFlowType())){ data.setFlowTypeShow(FlowTypeEnum.getTextByValue(data.getFlowType(),cut)); @@ -338,7 +523,543 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl datas){ + //符合性流程实例id + List complianceProcessPrcIdList = datas.stream().filter(data -> { + boolean designFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue()); + boolean preHomoFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue()); + boolean verifyFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue()); + boolean flag = false; + if(designFlowFlag || preHomoFlowFlag || verifyFlowFlag){ + flag = true; + } + return flag; + }).map(ProcessInfoVO::getActiProcInstId).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(complianceProcessPrcIdList)){ + QueryWrapper taskInventoryQueryWrap = new QueryWrapper<>(); + taskInventoryQueryWrap.and(queryWrap -> { + queryWrap.lambda().in(ProjectTaskInventoryEO::getDesignPId,complianceProcessPrcIdList) + .or().in(ProjectTaskInventoryEO::getPrehomoPId,complianceProcessPrcIdList) + .or().in(ProjectTaskInventoryEO::getVerifyPId,complianceProcessPrcIdList); + }); + //查询出符合性流程相关的任务清单信息。 + List taskInventoryList = this.projectTaskInventoryEOService.list(taskInventoryQueryWrap); + + datas.forEach(data -> { + boolean designFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue()); + boolean preHomoFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue()); + boolean verifyFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue()); + String personChargeFeedback = taskInventoryList.stream().filter(taskInventory -> { + boolean flag = false; + if(designFlowFlag){ + if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getDesignPId())){ + flag = true; + } + }else if(preHomoFlowFlag){ + if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getPrehomoPId())){ + flag = true; + } + }else if(verifyFlowFlag){ + if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getVerifyPId())){ + flag = true; + } + } + return flag; + }).map(ProjectTaskInventoryEO::getDesignPersonChargeFeedback).collect(Collectors.joining(",")); + + data.setPersonChargeFeedback(personChargeFeedback); + }); + } + } + + + @Override + public Result initHistoryData(Map params) { + /** + * disposeType:处理类型 + * value: + * 10:清单确认 + * 1:任务确认 + * 2:设计符合性 + * 3:prehomo确认 + * 4:验证符合性 + * 5:法规意见收集 + * 6:法规技术评估 + * 多个之间使用英文逗号分隔. + */ + String disposeType = (String) params.get("disposeType"); + //查询出所有的法规清单数据 + List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(); + //查询出所有项目库信息 + List projectLibraryBaseList = this.projectLibraryBaseService.list(); + + //1、清单确认 + if(StringUtils.contains(disposeType,FlowTypeEnum.QDQR.getValue())){ + this.initQdqr(projectLawsInventoryEOList,projectLibraryBaseList); + } + + //2.任务确认 + if(StringUtils.contains(disposeType,FlowTypeEnum.RWQRLC.getValue())){ + this.initRwqr(projectLawsInventoryEOList); + } + + List taskInventoryEOList = this.projectTaskInventoryEOService.list(); + + QueryWrapper taskInventoryDetailQueryWrap = new QueryWrapper<>(); + taskInventoryDetailQueryWrap.lambda().eq(ProjectTaskInventoryDetailEO::getStatus,TaskStatusEnum.NOT_DONE.getValue()); + List taskInventoryDetailEOList = this.projectTaskInventoryDetailEOService.list(taskInventoryDetailQueryWrap); + + //3.设计符合性流程 + if(StringUtils.contains(disposeType,FlowTypeEnum.SJFHXSHLC.getValue())){ + this.initConformance(FlowTypeEnum.SJFHXSHLC.getValue(),projectLawsInventoryEOList,taskInventoryEOList,taskInventoryDetailEOList); + } + //4.prehomo流程 + if(StringUtils.contains(disposeType,FlowTypeEnum.PREHOMOQRLC.getValue())){ + this.initConformance(FlowTypeEnum.PREHOMOQRLC.getValue(),projectLawsInventoryEOList,taskInventoryEOList,taskInventoryDetailEOList); + } + //5.验证符合性流程 + if(StringUtils.contains(disposeType,FlowTypeEnum.YZFHXSCLC.getValue())){ + this.initConformance(FlowTypeEnum.YZFHXSCLC.getValue(),projectLawsInventoryEOList,taskInventoryEOList,taskInventoryDetailEOList); + } + //6.法规技术评估 + if(StringUtils.contains(disposeType,FlowTypeEnum.FGJSPG.getValue())){ + this.initFgjspg(); + } + //7.法规意见收集 + if(StringUtils.contains(disposeType,FlowTypeEnum.FGYJSJLC.getValue())){ + this.initFgyjsj(); + } + + //8.处理之前流程数据在发起的时候,在bus_process_new中没有任务数据 + if(StringUtils.contains(disposeType,"disposeBusProcessNew")){ + this.workFlowFeignClient.dispostHistoryBusProcessNewData(); + } + return Result.OK("初始化数据成功",disposeType); + } + + /** + * 初始化清单确认 + * @param projectLawsInventoryEOList + * @param projectLibraryBaseList + */ + public void initQdqr(List projectLawsInventoryEOList,List projectLibraryBaseList){ + Map> qdqrMap = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag = false; + if (StringUtils.equals(lawsInventory.getInventoryAffirmStatus(), InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getValue())) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(ProjectLawsInventoryEO::getProjectLibraryId)); + + if(!Objects.isNull(qdqrMap)){ + for (Map.Entry> map : qdqrMap.entrySet()) { + String projectLibraryId = map.getKey(); + ProjectLibraryBase projectLibraryBaseEO = projectLibraryBaseList.stream().filter(projectLibraryBase -> { + boolean flag = false; + if(StringUtils.equals(projectLibraryId,projectLibraryBase.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()).get(0); + + List processInfoDetailEOList = new ArrayList<>(); + + List qdqrLawsInventoryList = map.getValue(); + if(CollectionUtils.isNotEmpty(qdqrLawsInventoryList)){ + qdqrLawsInventoryList.forEach(projectLawsInventoryEO-> { + boolean homologationEngineerFlag = ( + StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerSubmitStatus()) + || StringUtils.equals(projectLawsInventoryEO.getHomologationEngineerSubmitStatus(),"1") + ); + boolean regulationOwnerFlag = ( + StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerSubmitStatus()) + || StringUtils.equals(projectLawsInventoryEO.getRegulationOwnerSubmitStatus(),"1") + ); + + if(homologationEngineerFlag){ + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId()); + processInfoDetailEO.setUserId(projectLawsInventoryEO.getHomologationEngineerId()); + processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.HOMOLOGATION_ENGINEER_AUDIT.getKey()); + processInfoDetailEO.setEndTime(projectLawsInventoryEO.getInventoryAffirmDueDate()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(projectLibraryBaseEO.getStudioEngineer()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + + processInfoDetailEOList.add(processInfoDetailEO); + } + if(regulationOwnerFlag){ + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId()); + processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId()); + processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.REGULATION_OWNER_AUDIT.getKey()); + processInfoDetailEO.setEndTime(projectLawsInventoryEO.getInventoryAffirmDueDate()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(projectLibraryBaseEO.getStudioEngineer()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + + processInfoDetailEOList.add(processInfoDetailEO); + } + }); + + //往待办中心添加数据。 + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + this.projectLawsInventoryEOService.addProcessInfo(processInfoEO,projectLibraryId,null); + this.projectLawsInventoryEOService.addProcessInfoDetail(processInfoEO.getId(),processInfoDetailEOList,null); + } + } + } + } + + /** + * 初始化任务确认 + * @param projectLawsInventoryEOList + */ + public void initRwqr(List projectLawsInventoryEOList){ + String flowType = FlowTypeEnum.RWQRLC.getValue(); + List> rwqrResult = this.workFlowFeignClient.queryProcessInfoByPrcType(flowType); + if(CollectionUtils.isNotEmpty(rwqrResult)){ + for (Map rwqrMap : rwqrResult) { + List lawsInventoryList = projectLawsInventoryEOList.stream().filter(projectLawsInventory -> { + boolean flag = false; + if (StringUtils.equals((String) rwqrMap.get("projectLawsInventoryId"), projectLawsInventory.getId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(lawsInventoryList)){ + ProjectLawsInventoryEO projectLawsInventoryEO = lawsInventoryList.get(0); + + rwqrMap.put("projectLibraryId",projectLawsInventoryEO.getProjectLibraryId()); + rwqrMap.put("projectLawsInventoryId",projectLawsInventoryEO.getId()); + rwqrMap.put("standId",projectLawsInventoryEO.getStandId()); + rwqrMap.put("flowType",flowType); + + List> taskMapList = (List>)rwqrMap.get("taskMapList"); + if(CollectionUtils.isNotEmpty(taskMapList)){ + String status = TodoCenterStatusEnum.COMPLETED.getValue(); + for (Map taskMap : taskMapList) { + String deleteReason = (String) taskMap.get("deleteReason"); + if(StringUtils.isEmpty(deleteReason)){ + //如果是dre确认节点,将状态设置为询问,否则就是待确认。 + if(StringUtils.equals((String)taskMap.get("taskDefinitionKey"),"dreqr")){ + status = TodoCenterStatusEnum.INQUIRY.getValue(); + }else { + status = TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue(); + } + break; + } + } + + rwqrMap.put("status",status); + this.addProcessInfo(rwqrMap); + } + } + } + } + } + + /** + * 初始化符合性流程 + * @param flowType + */ + public void initConformance(String flowType,List projectLawsInventoryEOList,List taskInventoryEOList,List taskInventoryDetailEOList){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List> conformanceResult = this.workFlowFeignClient.queryProcessInfoByPrcType(flowType); + if(CollectionUtils.isNotEmpty(conformanceResult)){ + for (Map conformanceMap : conformanceResult) { + String actiProcInstId = (String) conformanceMap.get("actiProcInstId"); + List taskInventoryListTemp = taskInventoryEOList.stream().filter(taskInventoryEO -> { + boolean flag = false; + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + if (StringUtils.equals(taskInventoryEO.getDesignPId(), actiProcInstId)) { + flag = true; + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){ + if (StringUtils.equals(taskInventoryEO.getPrehomoPId(), actiProcInstId)) { + flag = true; + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if (StringUtils.equals(taskInventoryEO.getVerifyPId(), actiProcInstId)) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(taskInventoryListTemp)){ + List> taskMapList = (List>)conformanceMap.get("taskMapList"); + if(CollectionUtils.isNotEmpty(taskMapList)){ + for (Map taskMap : taskMapList) { + String taskId = (String) taskMap.get("taskId"); + String userId = ""; + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : taskInventoryDetailEOList) { + if(StringUtils.equals(taskId,projectTaskInventoryDetailEO.getTaskId())){ + userId = projectTaskInventoryDetailEO.getUserId(); + } + } + taskMap.put("userId",userId); + } + String endTimeStr = ""; + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue()) && taskInventoryListTemp.get(0).getDesignDueDate() != null){ + endTimeStr = sdf.format(taskInventoryListTemp.get(0).getDesignDueDate()); + }else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue()) && taskInventoryListTemp.get(0).getPrehomoDueDate() != null){ + endTimeStr = sdf.format(taskInventoryListTemp.get(0).getPrehomoDueDate()); + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue()) && taskInventoryListTemp.get(0).getVerifyDueDate() != null){ + endTimeStr = sdf.format(taskInventoryListTemp.get(0).getVerifyDueDate()); + } + + String projectLawsInventoryId = taskInventoryListTemp.get(0).getProjectLawsInventoryId(); + String projectLibraryId = ""; + String bussDocumentLibraryId = ""; + List projectLawsInventoryListTemp = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag = false; + if (StringUtils.equals(lawsInventory.getId(), projectLawsInventoryId)) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryListTemp)){ + projectLibraryId = projectLawsInventoryListTemp.get(0).getProjectLibraryId(); + bussDocumentLibraryId = projectLawsInventoryListTemp.get(0).getStandId(); + } + conformanceMap.put("flowType",flowType); + conformanceMap.put("endTime",endTimeStr); + conformanceMap.put("projectLibraryId",projectLibraryId); + conformanceMap.put("projectLawsInventoryId",projectLawsInventoryId); + conformanceMap.put("bussDocumentLibraryId",bussDocumentLibraryId); + + String status = TodoCenterStatusEnum.COMPLETED.getValue(); + for (Map taskMap : taskMapList) { + String deleteReason = (String) taskMap.get("deleteReason"); + if(StringUtils.isEmpty(deleteReason)){ + //如果是发起人审查节点,状态应该为 待审核,否则就是待提交 + if(StringUtils.equals((String)taskMap.get("taskDefinitionKey"),"fqrsh")){ + status = TodoCenterStatusEnum.TO_AUDIT.getValue(); + }else { + status = TodoCenterStatusEnum.TO_SUBMIT.getValue(); + } + break; + } + } + conformanceMap.put("status",status); + + this.addProcessInfo(conformanceMap); + } + } + } + } + } + + /** + * 初始化法规技术评估 + */ + public void initFgjspg(){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String flowType = FlowTypeEnum.FGJSPG.getValue(); + List> fgjspgResult = this.workFlowFeignClient.queryProcessInfoByPrcType(flowType); + if(CollectionUtils.isNotEmpty(fgjspgResult)){ + List lawsTechnologyEvaluationEOList = this.lawsTechnologyEvaluationEOService.list(); + List flowDetailEOList = this.lawsTechnologyEvaluationFlowDetailEOService.list(); + + for (Map fgjspgMap : fgjspgResult) { + List> taskMapList = (List>)fgjspgMap.get("taskMapList"); + if(CollectionUtils.isNotEmpty(taskMapList)){ + String standId = ""; + String endTimeStr = ""; + String actiProcInstId = (String) fgjspgMap.get("actiProcInstId"); + + List flowDetailEOListTemp = flowDetailEOList.stream().filter(flowDetailEO -> { + boolean flag = false; + if (StringUtils.equals(actiProcInstId, flowDetailEO.getActiProcInstId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(flowDetailEOListTemp)){ + String lawsTechnologyEvaluationId = flowDetailEOListTemp.get(0).getLawsTechnologyEvaluationId(); + List technologyEvaluationEOListTemp = lawsTechnologyEvaluationEOList.stream().filter(lawsTechnologyEvaluation -> { + boolean flag = false; + if (StringUtils.equals(lawsTechnologyEvaluationId, lawsTechnologyEvaluation.getId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(technologyEvaluationEOListTemp)){ + standId = technologyEvaluationEOListTemp.get(0).getStandId(); + endTimeStr = sdf.format(technologyEvaluationEOListTemp.get(0).getEndTime()); + } + } + + fgjspgMap.put("standId",standId); + fgjspgMap.put("endTime",endTimeStr); + fgjspgMap.put("flowType",flowType); + + String status = TodoCenterStatusEnum.COMPLETED.getValue(); + for (Map taskMap : taskMapList) { + String deleteReason = (String) taskMap.get("deleteReason"); + if(StringUtils.isEmpty(deleteReason)){ + //如果是发起人审查节点,状态应该为 待审核,否则就是待提交 + if(StringUtils.equals((String)taskMap.get("taskDefinitionKey"),"fqrsc")){ + status = TodoCenterStatusEnum.TO_AUDIT.getValue(); + }else { + status = TodoCenterStatusEnum.TO_SUBMIT.getValue(); + } + break; + } + } + fgjspgMap.put("status",status); + this.addProcessInfo(fgjspgMap); + } + } + } + } + + /** + * 初始化法规意见收集 + */ + public void initFgyjsj(){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String flowType = FlowTypeEnum.FGYJSJLC.getValue(); + List> fgyjsjResult = this.workFlowFeignClient.queryProcessInfoByPrcType(flowType); + + if(CollectionUtils.isNotEmpty(fgyjsjResult)){ + List lawsOpinionGatherEOList = this.lawsOpinionGatherEOService.list(); + for (Map fgyjsjMap : fgyjsjResult) { + List> taskMapList = (List>)fgyjsjMap.get("taskMapList"); + if(CollectionUtils.isNotEmpty(taskMapList)){ + String standId = ""; + String endTimeStr = ""; + String actiProcInstId = (String) fgyjsjMap.get("actiProcInstId"); + List lawsOpinionGatherTempList = lawsOpinionGatherEOList.stream().filter(lawsOpinionGatherEO -> { + boolean flag = false; + if (StringUtils.equals(lawsOpinionGatherEO.getActiProcInstId(), actiProcInstId)) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(lawsOpinionGatherTempList)){ + standId = lawsOpinionGatherTempList.get(0).getStandId(); + endTimeStr = sdf.format(lawsOpinionGatherTempList.get(0).getEndTime()); + } + fgyjsjMap.put("standId",standId); + fgyjsjMap.put("endTime",endTimeStr); + fgyjsjMap.put("flowType",flowType); + + String status = TodoCenterStatusEnum.COMPLETED.getValue(); + for (Map taskMap : taskMapList) { + String deleteReason = (String) taskMap.get("deleteReason"); + if(StringUtils.isEmpty(deleteReason)){ + //如果还有没提交的任务 + status = TodoCenterStatusEnum.TO_SUBMIT.getValue(); + break; + } + } + fgyjsjMap.put("status",status); + this.addProcessInfo(fgyjsjMap); + } + } + } + } + + public void addProcessInfo(Map params){ + String prcNum = (String) params.get("prcNum"); + String prcName = (String) params.get("prcName"); + String actiProcInstId = (String) params.get("actiProcInstId"); + String flowType = (String) params.get("flowType"); + String endTimeStr = ""; + String projectLibraryId = ""; + String projectLawsInventoryId = ""; + String standId = ""; + String status = (String) params.get("status"); + String createBy = (String) params.get("createBy"); + if(StringUtils.equals(flowType,FlowTypeEnum.RWQRLC.getValue())){ + projectLibraryId = (String) params.get("projectLibraryId"); + projectLawsInventoryId = (String) params.get("projectLawsInventoryId"); + standId = (String) params.get("standId"); + endTimeStr = (String) params.get("endTime"); + }else if(StringUtils.equals(flowType,FlowTypeEnum.FGYJSJLC.getValue()) || StringUtils.equals(flowType,FlowTypeEnum.FGJSPG.getValue())){ + standId = (String) params.get("standId"); + endTimeStr = (String) params.get("endTime"); + }else if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue()) || StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())|| StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + projectLibraryId = (String) params.get("projectLibraryId"); + projectLawsInventoryId = (String) params.get("projectLawsInventoryId"); + standId = (String) params.get("bussDocumentLibraryId"); + endTimeStr = (String) params.get("endTime"); + } + + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + processInfoEO.setId(actiProcInstId); + processInfoEO.setProjectLibraryId(projectLibraryId); + processInfoEO.setProjectLawsInventoryId(projectLawsInventoryId); + processInfoEO.setActiProcInstId(actiProcInstId); + processInfoEO.setFlowType(flowType); + processInfoEO.setPrcNum(prcNum); + processInfoEO.setPrcName(prcName); + processInfoEO.setBussDocumentLibraryId(standId); + + //截止日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date endTime = new Date(); + try { + endTime = sdf.parse(endTimeStr); + } catch (ParseException e) { + e.printStackTrace(); + } + processInfoEO.setEndTime(endTime); + processInfoEO.setStatus(status); + processInfoEO.setCreateBy(createBy); + this.baseMapper.insert(processInfoEO); + + List> taskMapList = (List>)params.get("taskMapList"); + List processInfoDetailEOList = new ArrayList<>(); + for (Map taskMap : taskMapList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setActiProcInstId((String) taskMap.get("actiProcInstId")); + processInfoDetailEO.setTaskId((String) taskMap.get("taskId")); + processInfoDetailEO.setTaskDefinitionKey((String) taskMap.get("taskDefinitionKey")); + processInfoDetailEO.setUserId((String) taskMap.get("userId")); + String taskStatus = (String) taskMap.get("status"); + if(StringUtils.equals(taskStatus,TaskStatusEnum.HAVE_DONE.getValue())){ + try { + processInfoDetailEO.setSubmitTime(sdf.parse((String) taskMap.get("submitTime"))); + } catch (ParseException e) { + e.printStackTrace(); + } + } + processInfoDetailEO.setStatus(taskStatus); + processInfoDetailEO.setProcessInfoId(processInfoEO.getId()); + processInfoDetailEO.setFlowType(flowType); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryId); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(createBy); + + processInfoDetailEOList.add(processInfoDetailEO); + } + + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/vo/ProcessInfoVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/vo/ProcessInfoVO.java index 89626d3c6..94a903a45 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/vo/ProcessInfoVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/vo/ProcessInfoVO.java @@ -80,8 +80,10 @@ public class ProcessInfoVO implements Serializable { /**标准编号*/ private String serialNumber; - /**标准标题*/ + /**标准标题-中文*/ private String title; + /**标准标题-英文*/ + private String titleEn; /**项目名称*/ private String projectName; /**年份*/ @@ -98,4 +100,11 @@ public class ProcessInfoVO implements Serializable { private String studioEngineer; /**任务清单明细表id,任务清单明细数据与待办中心明细表 是taskId一对一的关系**/ private String primaryKeyId; + /**符合性流程:责任人填写反馈意见*/ + private String personChargeFeedback; + /**截止日期 过期标识:true为已经过期 false为没有过期**/ + private boolean endTimePastDueFlag = false; + + /**标准信息**/ + private String standardInfo; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index 51070cea7..77a9bbdb0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -181,4 +181,18 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/deleteProcessInstanceByPrcIds",method = RequestMethod.GET) Result deleteProcessInstanceByPrcIds(@RequestParam("prcIds") String prcIds); + + /** + * 根据流程类型,查询未完成的流程信息 + * @param prcType + * @return + */ + @RequestMapping(value = "/bat-wkflow/datas/bus-process-name/queryProcessInfoByPrcType",method = RequestMethod.GET) + List> queryProcessInfoByPrcType(@RequestParam("prcType") String prcType); + + /** + * 处理历史数据-之前的数据发起的时候在busProcessNew中没有待办信息 + */ + @RequestMapping(value = "/bat-wkflow/datas/bus-process-new/dispostHistoryBusProcessNewData",method = RequestMethod.GET) + Result dispostHistoryBusProcessNewData(); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java index e8db6f85e..e0ab1dc66 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java @@ -196,4 +196,20 @@ public class WorkFlowFeignClientImpl{ public Result deleteProcessInstanceByTaskId(@RequestParam("taskId")String taskId){ return workFlowFeignClient.deleteProcessInstance(taskId); } + + /** + * 根据流程类型,查询未完成的流程信息 + * @param prcType + * @return + */ + public List> queryProcessInfoByPrcType(String prcType) { + return workFlowFeignClient.queryProcessInfoByPrcType(prcType); + } + + /** + * 处理历史数据-之前的数据发起的时候在busProcessNew中没有待办信息 + */ + public Result dispostHistoryBusProcessNewData() { + return workFlowFeignClient.dispostHistoryBusProcessNewData(); + } } diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index be0b822e1..7d8bf49aa 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -509,8 +509,8 @@ module.exports = { AddProcess: '添加流程', RelatedItems: '相关项目', Sponsor: '发起人', - CurrentProcessor: '当前处理人', - LastProcessor: '上一处理人', + CurrentProcessor: '当前操作人', + LastProcessor: '上一操作人', ProcessingTime: '办理时间', cutoffTime: '截止时间', ProcessStatus: '流程状态', @@ -1425,9 +1425,9 @@ module.exports = { filledBy:'待分配填写人', parameterToBeInitiated:'参数待发起', listTaskConfirmation:'清单任务确认', - completednum: '待填写数量', - filledBynum:'待分配填写人数量', - parameterToBeInitiatednum:'参数待发起数量', + completednum: '待填写', + filledBynum:'待分配填写人', + parameterToBeInitiatednum:'参数待发起', listToConfirm:'待确认', toSubmit:'待提交', toAudit:'待审核', diff --git a/jero-web/src/components/menu/index.js b/jero-web/src/components/menu/index.js index 6255cfdd4..f4cf57561 100644 --- a/jero-web/src/components/menu/index.js +++ b/jero-web/src/components/menu/index.js @@ -109,8 +109,10 @@ export default { props = { to: { path: menu.path } } } - const attrs = { href: menu.path, target: menu.meta.target , title:menu.meta.title } - + const attrs = { href: menu.path, target: menu.meta.target, title: menu.meta.title } + if (menu.meta && menu.meta.existTask) { + attrs.style = 'color:red' + } if (menu.children && menu.alwaysShow) { // 把有子菜单的 并且 父菜单是要隐藏子菜单的 // 都给子菜单增加一个 hidden 属性 @@ -162,7 +164,8 @@ export default { span slot = 'title' > { this.renderIcon(menu.meta.icon) } - < span title={menu.meta.title}> { menu.meta.title } < /span> + < span + title = { menu.meta.title } > { menu.meta.title } < /span> < /span> { itemArr diff --git a/jero-web/src/views/dashboard/components/myList.vue b/jero-web/src/views/dashboard/components/myList.vue index 0779fe942..b3e9180d5 100644 --- a/jero-web/src/views/dashboard/components/myList.vue +++ b/jero-web/src/views/dashboard/components/myList.vue @@ -10,11 +10,17 @@
- {{item.prcName}} - + + {{item.flowTypeShow+'-'+item.projectName}} + + + {{item.flowTypeShow+'-'+item.serialNumber}} + +
- {{item.creatTime}} + {{item.endTime}}
{{$t('Pending')}} @@ -43,9 +49,13 @@ dataSource: [], loading: false, prcTypeName: { - 1: this.$t('taskConfirmationProcess'), - 5:this.$t('collectionOfRegulatoryOpinionsProcess'), - 6:this.$t('regulatoryTechnologyAssessmentProcess') + 1: this.$t('listTaskConfirmation'), + 2: this.$t('designComplianceReview'), + 3: this.$t('preHomeConfirmation'), + 4: this.$t('verificationComplianceReview'), + 10: this.$t('confirmationOfRegulationsList'), + 5: this.$t('collectionOfRegulatoryOpinionsProcess'), + 6: this.$t('regulatoryTechnologyAssessmentProcess') } } }, @@ -74,11 +84,11 @@ queryProcess() { this.loading = true let parmes = {} - parmes.current = this.pageNo - parmes.size = this.pageSize - parmes.userId = this.userInfo().userId - postAction('task/todoTaskList', parmes).then((res) => { - this.dataSource = res.list || [] + parmes.pageNo = this.pageNo + parmes.pageSize = this.pageSize + // parmes.userId = this.userInfo().userId + getAction('/todoCenter/projectProcess/todoTaskList', parmes).then((res) => { + this.dataSource = res.result.records || [] this.loading = false }) }, @@ -88,29 +98,138 @@ }) }, prcClick(row) { - // let index = row.taskIds.lastIndexOf(',') - // row.taskIds = row.taskIds.slice(0, index) + let query = {} row.router = this.$route.path - if (row.prcType == '1') { + if (row.flowType == '1') { + query = { + taskDefinitionKey: row.taskDefinitionKey, + taskIds: row.taskId, + prcType: row.flowType, + prcNum: row.prcNum, + isTrue: true + } let newUrl = this.$router.resolve({ path: '/handshakeProcess', - query: row + query: query }) window.open(newUrl.href, '_blank') - } else if (row.prcType == '5') { + } else if (row.flowType == '10') { let newUrl = this.$router.resolve({ - path: '/regulatoryProcessReview', - query: row + path: '/ProjectDetails', + query: { + id: row.projectLibraryId, + projectName: row.projectName, + projectNameId: row.projectNameId, + targetMarket: row.targetMarket, + studioEngineer: row.studioEngineer, + type: '102' + } }) window.open(newUrl.href, '_blank') - } else if (row.prcType == '6') { + } else if (row.flowType == '2') { + row.taskId = row.taskId + '' + if (row.taskId.length > 30) { + row.taskId = '' + } + query = { + router: row.router, + taskIds: row.taskId, + actiProcInstId: row.actiProcInstId, + projectTaskInventoryId: row.projectLawsInventoryId, + projectLibraryId: row.projectLibraryId, + id: row.projectLibraryId, + studioEngineer: row.studioEngineer, + serialNumber: row.serialNumber, + TaskKey: row.taskDefinitionKey, + isDisplay: true, + flowType: 2, + Sponsor: 'designInitiatorName', + personLiable: 'designDutyName', + typeOfDeliverables: 'designDeliverableTypeName', + deliverableTemplate: 'designDeliverableTemplate', + DueDate: 'designDueDate', + remarks: 'designRemark', + projectName: row.projectName, + targetMarket: row.targetMarket, + projectNameId: row.projectNameId, + primaryKeyId: row.primaryKeyId, + PersonChargeFeedback: row.personChargeFeedback + } let newUrl = this.$router.resolve({ - path: '/evaluationProcess', - query: row + path: '/taskListProcess', + query: query + }) + window.open(newUrl.href, '_blank') + } else if (row.flowType == '3') { + row.taskId = row.taskId + '' + if (row.taskId.length > 30) { + row.taskId = '' + } + query = { + router: row.router, + taskIds: row.taskId, + actiProcInstId: row.actiProcInstId, + projectTaskInventoryId: row.projectLawsInventoryId, + studioEngineer: row.studioEngineer, + projectLibraryId: row.projectLibraryId, + serialNumber: row.serialNumber, + TaskKey: row.taskDefinitionKey, + flowType: 3, + isDisplay: true, + id: row.projectLibraryId, + Sponsor: 'prehomoInitiatorName', + personLiable: 'prehomoDutyName', + typeOfDeliverables: 'prehomoDeliverableTypeName', + deliverableTemplate: 'prehomoDeliverableTemplate', + DueDate: 'prehomoDueDate', + remarks: 'prehomoRemark', + projectName: row.projectName, + targetMarket: row.targetMarket, + projectNameId: row.projectNameId, + primaryKeyId: row.primaryKeyId, + PersonChargeFeedback: row.personChargeFeedback + } + let newUrl = this.$router.resolve({ + path: '/taskListProcess', + query: query + }) + window.open(newUrl.href, '_blank') + } else if (row.flowType == '4') { + row.taskId = row.taskId + '' + if (row.taskId.length > 30) { + row.taskId = '' + } + query = { + router: row.router, + taskIds: row.taskId, + actiProcInstId: row.actiProcInstId, + id: row.projectLibraryId, + projectLibraryId: row.projectLibraryId, + studioEngineer: row.studioEngineer, + serialNumber: row.serialNumber, + projectTaskInventoryId: row.projectLawsInventoryId, + TaskKey: row.taskDefinitionKey, + flowType: 4, + isDisplay: true, + Sponsor: 'verifyInitiatorName', + personLiable: 'verifyDutyName', + typeOfDeliverables: 'verifyDeliverableTypeName', + deliverableTemplate: 'verifyDeliverableTemplate', + DueDate: 'verifyDueDate', + remarks: 'verifyRemark', + projectName: row.projectName, + targetMarket: row.targetMarket, + projectNameId: row.projectNameId, + primaryKeyId: row.primaryKeyId, + PersonChargeFeedback: row.personChargeFeedback + } + let newUrl = this.$router.resolve({ + path: '/taskListProcess', + query: query }) window.open(newUrl.href, '_blank') } - } + }, } } @@ -167,6 +286,7 @@ text-overflow: ellipsis; white-space: nowrap; } + /*.top-admin {*/ /* font-size: 16px;*/ /* font-family: Blue Sky Noto;*/ diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedback.vue b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue index 901df1907..85420a896 100644 --- a/jero-web/src/views/processCenter/components/evaluatorFeedback.vue +++ b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue @@ -15,7 +15,15 @@ {{$t('complianceResults')}}
- {{formInline.complianceResult == 'Compliance'?$t('accord'):$t('nonConformity')}} + + {{$t('accord')}} + + + {{$t('nonConformity')}} + + + -- +
{{$t('relevantSections')}}
- {{item.relatedSection}} + {{item.relatedSection ?item.relatedSection : '--'}}
{{$t('problemDescription')}}
- {{item.issueOrSuggest}} + {{item.issueOrSuggest ? item.issueOrSuggest :'--'}}
{{$t('relevantSections')}}
- {{item.relatedSection}} + {{item.relatedSection?item.relatedSection : '--'}}
@@ -132,7 +140,7 @@ :title="$t('problemDescription')">{{$t('problemDescription')}}
- {{item.issueOrSuggest}} + {{item.issueOrSuggest ? item.issueOrSuggest:'--'}}
@@ -156,7 +164,8 @@ -
+
{{$t('sponsorReview')}}
@@ -175,18 +184,18 @@
- - -
-
- {{$t('reviewComments')}} -
-
- {{formInline.approvalOpinion}} -
-
-
-
+ + + + + + + + + + + +
@@ -272,7 +281,7 @@ disabled: false, uploadIndex: '', dataList: [], - isTrue:false, + isTrue: false } }, mounted() { @@ -462,4 +471,5 @@ white-space: normal; word-break: break-all; } + \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue index ec8a35034..f611b6cbc 100644 --- a/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue +++ b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue @@ -74,7 +74,9 @@ -- - {{text == 'Compliance' ? $t('accord'):$t('nonConformity')}} + {{$t('accord')}} + {{$t('nonConformity')}} + -- { res.sponsorFeedback = '' }) diff --git a/jero-web/src/views/processCenter/components/feedbackInformation.vue b/jero-web/src/views/processCenter/components/feedbackInformation.vue index b41d9eb10..b90f15da4 100644 --- a/jero-web/src/views/processCenter/components/feedbackInformation.vue +++ b/jero-web/src/views/processCenter/components/feedbackInformation.vue @@ -23,7 +23,7 @@
- * + * {{$t('relevantSections')}}
@@ -58,7 +59,7 @@
- * + * {{$t('questionsSuggestions')}}
@@ -68,6 +69,7 @@ }]">
@@ -75,7 +77,7 @@
- * + * {{$t('reason')}}
@@ -104,11 +107,13 @@ }]">
+
@@ -300,4 +305,7 @@ margin-left: 8px; cursor: pointer; } + ::v-deep .ant-input-disabled{ + color: #000F16; + } \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue b/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue index fc760921f..4a32cd3bb 100644 --- a/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue +++ b/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue @@ -72,7 +72,7 @@
- +
* @@ -88,16 +88,29 @@
+ +
+
+ {{$t('feedbackFromTheEngineer')}} +
+ + + {{formInline.engineerFeedbackContent}} + + +
+
- + {{$t('Deliverables')}}
- + diff --git a/jero-web/src/views/processCenter/components/taskCirculationHistory.vue b/jero-web/src/views/processCenter/components/taskCirculationHistory.vue index 8c64c8228..145539870 100644 --- a/jero-web/src/views/processCenter/components/taskCirculationHistory.vue +++ b/jero-web/src/views/processCenter/components/taskCirculationHistory.vue @@ -80,7 +80,7 @@ methods: { getList() { let query = { - actiProcInstId: this.$route.query.actiProcInstId + actiProcInstId: this.$route.query.actiProcInstId || this.$route.query.prcId } this.loading = true getAction('/wkflow/processHistoryEO/list', query).then((res) => { diff --git a/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue b/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue index a9d2d721e..387cf0d84 100644 --- a/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue @@ -186,10 +186,10 @@ this.loading = true getAction(this.url.queryTaskDetailByTaskIds, { taskIds: this.$route.query.taskIds }).then((res) => { if (res instanceof String) { - this.queryBy = JSON.parse(res) + this.queryBy = JSON.parse(res) || {} callback() } else { - this.queryBy = res + this.queryBy = res || {} callback() } }) diff --git a/jero-web/src/views/processCenter/processForm/processDetails/index.vue b/jero-web/src/views/processCenter/processForm/processDetails/index.vue index 875ca81b0..f3ab23d05 100644 --- a/jero-web/src/views/processCenter/processForm/processDetails/index.vue +++ b/jero-web/src/views/processCenter/processForm/processDetails/index.vue @@ -15,6 +15,7 @@
+
@@ -22,6 +23,7 @@