feat: UAT 企标更改单问题

This commit is contained in:
2024-07-10 14:22:58 +08:00
parent 41f7bcd6af
commit e311c563d2
6 changed files with 35 additions and 146 deletions
@@ -2,15 +2,12 @@ package com.jero.modules.activiti.process.common.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
@@ -25,7 +22,6 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
@@ -41,7 +37,6 @@ import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -70,9 +65,6 @@ public class ActFlowCommonService {
@Resource
private ProcessApprovalRecordService processApprovalRecordService;
@Resource
private ProcessApprovalRecordService approvalRecordService;
@Resource
private EnterpriseStandardPlanService espService;
@@ -264,25 +256,6 @@ public class ActFlowCommonService {
return taskService.createTaskQuery().taskId(taskId).singleResult() != null;
}
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId, CommonVO commonVO) {
// 自动完成第一个任务
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());
String taskId = map.get("taskId").toString();
this.completeTask(taskId, userId);
break;
}
}
}
}
public String getProcessInstanceIdByTaskId(String taskId) {
if (StrUtil.isBlank(taskId)) {
return null;
@@ -430,21 +403,6 @@ public class ActFlowCommonService {
}
}
/**
* 会签节点驳回后,将其余节点recode设置为 未处理 状态
*
* @param prcId
* @param nodeName
*/
public void updateOtherCountersignRecodeStatus(String prcId, String nodeName) {
// LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
// updateWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, prcId);
// updateWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
// updateWrapper.eq(ProcessApprovalRecord::getTaskName, nodeName);
// updateWrapper.set(ProcessApprovalRecord::getCommitText, CommitFlagEnum.UNDISPOSED.getName());
// processApprovalRecordService.update(updateWrapper);
}
/**
* 根据指定的执行Id递归获取所有子执行Id
*
@@ -480,18 +438,6 @@ public class ActFlowCommonService {
return approvalRecord.getOriginUserId();
}
/**
* 强制撤回流程-保存草稿
*
* @param common
* @param processTypeEnum
* @param jsonData
*/
public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) {
ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, data);
processHandleService.saveToDraft(processInfoVo);
}
public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData) {
ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, jsonData);
processHandleService.saveToDraft(processInfoVo);
@@ -502,26 +448,6 @@ public class ActFlowCommonService {
processHandleService.saveToDraftCustomUserId(processInfoVo, userId);
}
private ProcessInfoVO getProcessInfoVo(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) {
// 将archiveData转为Json
String dataJson = JSON.toJSONString(data);
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(dataJson);
processInfoVO.setBasicTaskInfoDTO(basicTaskInfoDTO);
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
return processInfoVO;
}
private ProcessInfoVO getProcessInfoVo(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData) {
ProcessInfoVO<ESArchiveDataVO> processInfoVO = new ProcessInfoVO<>();
processInfoVO.setSaveSource(DraftCommon.INITIAL_SOURCE);
@@ -546,7 +472,7 @@ public class ActFlowCommonService {
String standardState = es.getStandardState();
if (StandardStateEnum.ABOLISH.getStateValue().equals(standardState) ||
StandardStateEnum.ARCHIVE.getStateValue().equals(standardState)) {
log.error("企标编号为{}的企标已经废止或者封存,无法进行复审流程", es.getStandardNumber());
log.error("企标编号为{}的企标已经废止或者封存,无法进行复审或更改流程", es.getStandardNumber());
throw new JeroBootException(ResultCommon.CAN_NOT_EDIT_ABOLISH_OR_ARCHIVE_ES);
}
}
@@ -4,16 +4,16 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 企业标准
* @TableName process_es_change
@@ -302,6 +302,13 @@ public class ProcessEsChange implements Serializable {
@ApiModelProperty(value = "需要替换的fileId")
private String replaceFileId;
/**
* 修改单位代号
*/
@ApiModelProperty(value = "修改单位代号")
@Dict(dicCode = "es_modify_order_dept_code")
private String changeDeptCode;
/**
* 修改意见内容列表
*/
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.CommonAPI;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.SysDictItemCore;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
@@ -24,8 +23,8 @@ import com.jero.modules.onlyoffice.service.IBusProcessModelHisService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.controller.CommonController;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.service.*;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.tag.enums.TableNameEnum;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution;
@@ -283,22 +282,10 @@ public class ProcessESChangeEndListener implements ExecutionListener {
}
private void genModificationOrderNumber(ProcessEsChange change) {
String deptCode = "";
String deptCode = change.getChangeDeptCode();
// 找到单位代号
String deptId = change.getMainDraftingUnit();
SysDepart dept = sysDepartService.getById(deptId);
if (dept != null) {
String deptName = dept.getDepartName();
List<DictModel> dictItems = dictService.queryEnableDictItemsByCode("es_modify_order_dept_code");
for (DictModel dictItem : dictItems) {
if (dictItem.getText().equals(deptName)) {
deptCode = dictItem.getValue();
break;
}
}
}
if (StrUtil.isBlank(deptCode)) {
throw new JeroBootException("生成修改单失败,找不到主起草单位的单位代号,请前往数据字典中添加后再试");
throw new JeroBootException("生成修改单失败,找不到更改单位的单位代号,请联系系统管理员添加后再试");
}
// 找到年份
Date effectiveDate = new Date();
@@ -7,36 +7,27 @@ 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.common.system.vo.DictModel;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO;
import com.jero.modules.activiti.process.esChange.entity.EsChangeOpinion;
import com.jero.modules.activiti.process.esChange.entity.ProcessEsChange;
import com.jero.modules.activiti.process.esChange.entity.vo.ESChangeDataVO;
import com.jero.modules.activiti.process.esChange.mapper.ProcessEsChangeMapper;
import com.jero.modules.activiti.process.esChange.service.EsChangeOpinionService;
import com.jero.modules.activiti.process.esChange.service.ProcessEsChangeService;
import com.jero.modules.activiti.process.esChange.mapper.ProcessEsChangeMapper;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.onlyoffice.service.IBusProcessModelHisService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserDepartService;
@@ -214,30 +205,9 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
if (data != null) {
actFlowCommonService.checkStandardState(data.getStandardId());
// 判断主起草部门是否有对应的修改单代码
if (StrUtil.isBlank(data.getMainDraftingUnit())) {
throw new JeroBootException("主起草单位不能为空");
if (StrUtil.isBlank(data.getChangeDeptCode())) {
throw new JeroBootException("修改单位不能为空");
}
this.validDepartCode(changeData.getData().getMainDraftingUnit());
}
}
public void validDepartCode(String deptId) {
String deptCode = "";
// 找到单位代号
SysDepart dept = sysDepartService.getById(deptId);
if (dept != null) {
String deptName = dept.getDepartName();
List<DictModel> dictItems = dictService.queryEnableDictItemsByCode("es_modify_order_dept_code");
for (DictModel dictItem : dictItems) {
if (dictItem.getText().equals(deptName)) {
deptCode = dictItem.getValue();
break;
}
}
}
if (StrUtil.isBlank(deptCode)) {
throw new JeroBootException("发起失败,找不到主起草单位对应的单位代号,请前往数据字典中添加后再试");
}
}
@@ -296,10 +266,9 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
// 判断主起草单位
actFlowCommonService.checkStandardState(data.getStandardId());
// 判断主起草部门是否有对应的修改单代码
if (StrUtil.isBlank(data.getMainDraftingUnit())) {
throw new JeroBootException("主起草单位不能为空");
if (StrUtil.isBlank(data.getChangeDeptCode())) {
throw new JeroBootException("修改单位不能为空");
}
this.validDepartCode(changeData.getData().getMainDraftingUnit());
// 清理原来的修改意见
LambdaQueryWrapper<EsChangeOpinion> esChangeOpinionLambdaQueryWrapper = new LambdaQueryWrapper<>();
esChangeOpinionLambdaQueryWrapper.eq(EsChangeOpinion::getBusinessId, data.getId());