feat: 复审流程保存自翻译
This commit is contained in:
+48
-13
@@ -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<ProcessDraft> 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<ProcessDraft> 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<ESArchiveDataVO> 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<Map<String, Object>> taskList = this.myTaskList(userId);
|
||||
if (!CollectionUtils.isEmpty(taskList)) {
|
||||
for (Map<String, Object> 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;
|
||||
}
|
||||
}
|
||||
|
||||
+20
-8
@@ -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<ProcessEsRecheckMap
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
@Resource
|
||||
private TranslationAspect translationAspect;
|
||||
|
||||
@Override
|
||||
public void startProcess(ESRecheckDataVO recheckData) {
|
||||
// 执行流程发起前的操作
|
||||
@@ -87,23 +91,27 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
||||
String processInstanceId = processInstance.getId();
|
||||
// 手动设置所有流程变量
|
||||
actFlowCommonService.setProcessVariables(processInstanceId, actVariables);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, common);
|
||||
// 设置流程实例Id
|
||||
esRecheck.setProcessInstanceId(processInstanceId);
|
||||
// 保存到业务流程表
|
||||
saveOrUpdate(esRecheck);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
// 获取第一个任务的taskId
|
||||
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
|
||||
// 手动翻译
|
||||
String jsonData = translationAspect.manualParseDictText(this.getHandleData(taskId), this.getUserMap(variables));
|
||||
// 强制撤回
|
||||
common.setProcessInstanceId(processInstanceId);
|
||||
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_RECHECK, jsonData);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 根据流程实例id更新流程总表
|
||||
String prcName = common.getPrcName();
|
||||
String prcMes = common.getPrcMes();
|
||||
Date dueTime = common.getDueTime();
|
||||
Integer prcType = ProcessTypeEnum.ES_RECHECK.getValue();
|
||||
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
|
||||
// 强制撤回
|
||||
common.setProcessInstanceId(processInstanceId);
|
||||
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_RECHECK, recheckData);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -137,15 +145,19 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
||||
saveOrUpdate(esRecheck);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
// 获取第一个任务的taskId
|
||||
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
|
||||
// 手动翻译
|
||||
String jsonData = translationAspect.manualParseDictText(this.getHandleData(taskId), this.getUserMap(variables));
|
||||
// 强制撤回
|
||||
common.setProcessInstanceId(processInstanceId);
|
||||
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_RECHECK, jsonData);
|
||||
// 根据流程实例id更新流程总表
|
||||
String prcName = common.getPrcName();
|
||||
String prcMes = common.getPrcMes();
|
||||
Date dueTime = common.getDueTime();
|
||||
Integer prcType = ProcessTypeEnum.ES_RECHECK.getValue();
|
||||
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
|
||||
// 强制撤回
|
||||
common.setProcessInstanceId(processInstanceId);
|
||||
actFlowCommonService.saveFirstNodeDraftCustomUserId(common, ProcessTypeEnum.ES_RECHECK, recheckData, userId);
|
||||
}
|
||||
|
||||
public Map<String, Object> setVariables(Map<String, Object> flowUser) {
|
||||
|
||||
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user