From e298326f016f2750037afd06e6f150b029857ff6 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 25 Jan 2024 17:15:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=8D=E5=AE=A1=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=87=AA=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/common/aspect/TranslationAspect.java | 49 +++++++++------ .../common/service/ActFlowCommonService.java | 61 +++++++++++++++---- .../impl/ProcessEsRecheckServiceImpl.java | 28 ++++++--- .../impl/ProcessHandleServiceImpl.java | 1 - 4 files changed, 99 insertions(+), 40 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/aspect/TranslationAspect.java b/laws-base/laws-base-core/src/main/java/com/jero/common/aspect/TranslationAspect.java index 8649de71..69cb57a3 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/aspect/TranslationAspect.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/aspect/TranslationAspect.java @@ -61,16 +61,17 @@ public class TranslationAspect { /** * 在切入点return内容之后切入内容(可以用来对处理返回值做一些加工处理) + * * @param joinPoint */ - @AfterReturning(returning="rvt",pointcut = "annotationPointcut()") + @AfterReturning(returning = "rvt", pointcut = "annotationPointcut()") public void doAfterReturning(JoinPoint joinPoint, Object rvt) { } private void parseDictText(Object result) { List listDict = commonAPI.getDictItemAll(); - if(CollectionUtils.isEmpty(listDict)){ + if (CollectionUtils.isEmpty(listDict)) { return; } if (result instanceof Result) { @@ -78,25 +79,36 @@ public class TranslationAspect { List items = new ArrayList<>(); for (Object record : ((IPage) ((Result) result).getResult()).getRecords()) { - Object item = translateObject(record,listDict); + Object item = translateObject(record, listDict); items.add(item); } ((IPage) ((Result) result).getResult()).setRecords(items); - }else if (((Result) result).getResult() instanceof List) { + } else if (((Result) result).getResult() instanceof List) { List items = new ArrayList<>(); for (Object record : ((List) ((Result) result).getResult())) { - Object item = translateObject(record,listDict); + Object item = translateObject(record, listDict); items.add(item); } ((Result) result).setResult(items); - }else{ + } else { Object record = (Object) ((Result) result).getResult(); - Object item = translateObject(record,listDict); + Object item = translateObject(record, listDict); ((Result) result).setResult(item); } } } + public String manualParseDictText(Object data, Object user) { + List listDict = commonAPI.getDictItemAll(); + if (CollectionUtils.isEmpty(listDict)) { + return ""; + } + JSONObject dataJsonObject = (JSONObject) translateObject(data, listDict); + dataJsonObject.put("personnelObj", user); + return dataJsonObject.toJSONString(); + } + + private Object translateObject(Object record, List listDict) { ObjectMapper mapper = new ObjectMapper(); String json; @@ -172,15 +184,16 @@ public class TranslationAspect { } /** - * 翻译字典文本 - * @param code 编码 - * @param text 值 - * @param table 表名 - * @param key 键 + * 翻译字典文本 + * + * @param code 编码 + * @param text 值 + * @param table 表名 + * @param key 键 * @param listDict 字典集合 */ private String translateDictValue(String code, String text, String table, String key, List listDict) { - if(oConvertUtils.isEmpty(key)) { + if (oConvertUtils.isEmpty(key)) { return null; } StringBuilder textValue = new StringBuilder(); @@ -190,11 +203,11 @@ public class TranslationAspect { if (k.trim().length() == 0) { continue; //跳过循环 } - if (!StringUtils.isEmpty(table)){ - tmpValue = commonAPI.queryTableDictTextByKey(table,text,code,k.trim()); - }else { - List listNew = listDict.stream().filter(o-> Objects.equals(o.getDictCode(),code) && Objects.equals(o.getItemValue(),k.trim())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listNew)){ + if (!StringUtils.isEmpty(table)) { + tmpValue = commonAPI.queryTableDictTextByKey(table, text, code, k.trim()); + } else { + List listNew = listDict.stream().filter(o -> Objects.equals(o.getDictCode(), code) && Objects.equals(o.getItemValue(), k.trim())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listNew)) { tmpValue = listNew.get(0).getItemText(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 7f9bdb93..11143e00 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -352,16 +352,10 @@ public class ActFlowCommonService { } public void getExistDraftAndRemove(CommonVO common, ProcessTypeEnum processTypeEnum) { - String taskId = common.getTaskId(); - String userId = UserUtils.getUserId(); - String processInstanceId = common.getProcessInstanceId(); - LambdaQueryWrapper draftWrapper = new LambdaQueryWrapper<>(); - draftWrapper.eq(ProcessDraft::getPrcType, processTypeEnum.getValue()); - draftWrapper.eq(ProcessDraft::getUserId, userId); - draftWrapper.eq(StrUtil.isNotBlank(processInstanceId), ProcessDraft::getProcessInstanceId, processInstanceId); - draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId); // 删除草稿表数据 - processDraftService.remove(draftWrapper); + if (StrUtil.isNotBlank(common.getDraftId())) { + processDraftService.removeById(common.getDraftId()); + } } public CommonVO getHandleCommon(String taskId) { @@ -388,7 +382,7 @@ public class ActFlowCommonService { String processInstanceId = commonVO.getProcessInstanceId(); LambdaQueryWrapper draftWrapper = new LambdaQueryWrapper<>(); draftWrapper.eq(ProcessDraft::getUserId, userId); - draftWrapper.eq(ProcessDraft::getTaskId, taskId); + draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId); draftWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE); draftWrapper.eq(StrUtil.isNotBlank(processInstanceId), ProcessDraft::getProcessInstanceId, processInstanceId); processDraftService.remove(draftWrapper); @@ -450,15 +444,20 @@ public class ActFlowCommonService { * * @param common * @param processTypeEnum - * @param data + * @param jsonData */ public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) { ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, data); processHandleService.saveToDraft(processInfoVo); } - public void saveFirstNodeDraftCustomUserId(CommonVO common, ProcessTypeEnum processTypeEnum, Object data, String userId) { - ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, data); + public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData) { + ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, jsonData); + processHandleService.saveToDraft(processInfoVo); + } + + public void saveFirstNodeDraftCustomUserId(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData, String userId) { + ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, jsonData); processHandleService.saveToDraftCustomUserId(processInfoVo, userId); } @@ -482,6 +481,24 @@ public class ActFlowCommonService { return processInfoVO; } + private ProcessInfoVO getProcessInfoVo(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData) { + ProcessInfoVO processInfoVO = new ProcessInfoVO<>(); + processInfoVO.setSaveSource(DraftCommon.INITIAL_SOURCE); + BasicTaskInfoDTO basicTaskInfoDTO = new BasicTaskInfoDTO(); + basicTaskInfoDTO.setHandleFile(common.getCommitFile()); + basicTaskInfoDTO.setHandleText(common.getCommitText()); + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessName(common.getPrcName()); + basicProcessInfoDTO.setProcessDescription(common.getPrcMes()); + basicProcessInfoDTO.setProcessType(processTypeEnum.getValue()); + basicProcessInfoDTO.setProcessDueDate(common.getDueTime()); + basicProcessInfoDTO.setProcessInstanceId(common.getProcessInstanceId()); + processInfoVO.setInfoJsonStr(jsonData); + processInfoVO.setBasicTaskInfoDTO(basicTaskInfoDTO); + processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); + return processInfoVO; + } + public void checkStandardState(String standardId) { LawsEnterpriseStandard es = esService.getById(standardId); if (es != null) { @@ -493,4 +510,22 @@ public class ActFlowCommonService { } } } + + public String getFirstTaskId(String processInstanceId, String userId, String processDefinitionId) { + // 自动完成第一个任务 + List> taskList = this.myTaskList(userId); + if (!CollectionUtils.isEmpty(taskList)) { + for (Map map : taskList) { + if (map.get("assignee").toString().equals(userId) && + map.get("processDefinitionId").toString().equals(processDefinitionId) && + map.get("processInstanceId").toString().equals(processInstanceId)) { // 添加这一行来进行更精确的匹配 + + log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString()); + log.info("匹配到的任务ID:{}", map.get("taskId").toString()); + return map.get("taskId").toString(); + } + } + } + return null; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java index fcb80fd1..d9b791cb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.ResultCommon; +import com.jero.common.aspect.TranslationAspect; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.enums.ProcessTypeEnum; @@ -60,6 +61,9 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl setVariables(Map flowUser) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index 10791d35..f28655e4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -418,7 +418,6 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { if (StringUtils.isNotBlank(draftId)) { processDraftService.removeById(draftId); } - deleteMyDraftCustomUserId(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType(), userId); // 根据是否有taskId区分保存来源(待办、草稿) ProcessDraft processDraft = new ProcessDraft(); processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id