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
+4
View File
@@ -165,3 +165,7 @@ INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`) VALUES ('1807961969523347457', '1807961317556539393', '0', '已更改未拆分', 'modify Unsplit', '3', '', 1, 1, 'admin', '2024-07-02 10:18:18', 'admin', '2024-07-03 11:52:41', 1, 0, NULL, '0', NULL);
ALTER TABLE `process_es_change` ADD COLUMN `standard_split_status` varchar(50) NULL COMMENT '标准拆分状态' AFTER `modify_order_num`;
-- 2024-07-10 增加更改单位代号字段
ALTER TABLE `process_es_change`
ADD COLUMN `change_dept_code` varchar(50) NULL DEFAULT NULL COMMENT '更改单位代号' AFTER `standard_promoter`;
@@ -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());
@@ -143,10 +143,6 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true
datasource:
master:
url: jdbc:p6spy:mysql://10.10.10.44:3306/laws_sinotruk_grp?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: hzwlsoft.com
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
# url: jdbc:p6spy:mysql://10.186.16.134:8921/laws_sinotrunk_grp?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true
# username: law
# password: Law!@123445
@@ -155,10 +151,10 @@ spring:
# username: root
# password: hzwlsoft.com
# driver-class-name: com.p6spy.engine.spy.P6SpyDriver
# url: jdbc:p6spy:mysql://lijiarao.cn:3306/laws-sinotruk-demo?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&autoReconnect=true
# username: root
# password: 704670af746903fa
# driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://lijiarao.cn:3306/laws-sinotruk-demo?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&autoReconnect=true
username: root
password: 704670af746903fa
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
# url: jdbc:p6spy:mysql://10.10.10.44:3306/laws-sinotruk-test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
# username: root
# password: hzwlsoft.com
@@ -196,7 +192,7 @@ spring:
shutdown-timeout: 100ms
# password: hzwlsoft.com
# port: 4780
port: 6379
port: 16379
#rabbitmq 配置
rabbitmq:
@@ -328,12 +324,12 @@ jero:
# 文件限制后缀黑名单
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA
# 跨站白名单
whiteUrls: localhost:62345,localhost:8184,localhost:3334,localhost:3435,localhost:3408
whiteUrls: localhost:62345,localhost:8184,localhost:3334,localhost:3435,localhost:3408,localhost:3335,localhost:3508
xssExcludedPages: /login,/updatePassword
# cors白名单
notFilter:
# origin地址
originIp: http://localhost:62345,http://localhost:8184,http://localhost:3334,http://localhost:3435,http://localhost:3408
originIp: http://localhost:62345,http://localhost:8184,http://localhost:3334,http://localhost:3335,http://localhost:3435,http://localhost:3408,http://localhost:3508
# 加密默认值
password:
pbe:
@@ -387,7 +383,7 @@ justauth:
file:
# 在线编辑文件下载映射地址
downloadUrl: http://localhost:8184/laws-sinotruk/file/
downloadUrl: http://10.0.1.25:8184/laws-sinotruk/file/
split:
path: D://opt//onlyOffice//file//splitImage//
# 在线编辑空白docx地址
@@ -476,7 +472,7 @@ download:
# 文件下载、预览拦截路径,多个以逗号分隔
download_url: /sys/common/download/
view_url: /sys/common/view/
white_url: /lawsSpecialProjectLibrary/exportXls,/noEncryptDownload,/overseas/exportData,/overseas/exportDataWithFile,/overseas/templateDownload,/domestic/exportData,/domestic/exportDataWithFile,/domestic/templateDownload,/onlyOffice,/enterprise/templateDownload,/exportDataWithFile,/exportSplitInfoZip,/lawsCustomCompareInfo/exportExcel,/home/search/download,/documentSplit/downloadImportTemplate,/split/file/getImage,/allDocFileTransferPdf,/file/convert
white_url: /lawsSpecialProjectLibrary/exportXls,/noEncryptDownload,/overseas/exportData,/overseas/exportDataWithFile,/overseas/templateDownload,/domestic/exportData,/domestic/exportDataWithFile,/domestic/templateDownload,/onlyOffice,/enterprise/templateDownload,/exportDataWithFile,/exportSplitInfoZip,/lawsCustomCompareInfo/exportExcel,/home/search/download,/documentSplit/downloadImportTemplate,/split/file/getImage,/allDocFileTransferPdf,/file/convert,/downloadWithoutToken
dev_encrypt_url: /devEncryptDownload,/enterprise/exportData
# 管理员角色
admin_role_code: admin,BZGLY
@@ -544,7 +540,7 @@ standardProperty:
#onlyoffice保存时回调url替换
onlyoffice:
replaceUrl: srms.sinotruk.com,srms-onlyoffice.sinotruk.com
toUrl: http://10.10.10.45:8107
toUrl: 10.10.10.45:8107
transferPDfUrl: /7.5.1-23/ConvertService.ashx
# toUrl: onlyoffice-j3qlv.yf-grp:8080