fix: 企标制修订流程-其他主起草人上传节点不显示列表

This commit is contained in:
2023-12-22 15:32:59 +08:00
parent 3ce88c43c6
commit 2c0d09f04f
4 changed files with 67 additions and 3 deletions
@@ -0,0 +1,29 @@
package com.jero.modules.activiti.process.esRevision.entity;
/**
* @author: Mzaxd
* @Date: 2023/12/22 15:04
*/
public enum OperateTypeEnum {
CANNOT_OPERATE("不能操作显示", "1"),
UPLOAD_AND_CHANGE_DRAFT_USER("可以上传并且将起草人改为‘我’", "2"),
UPLOAD("可以上传起草人字段维持不变", "3");
private final String name;
private final String value;
OperateTypeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
@@ -9,9 +9,9 @@ public class RevisionTaskNodeIdConstant {
/** 主起草人分发 */ /** 主起草人分发 */
public static final String MAIN_DRAFT_USER_DISTRIBUTE = "Activity_0v98tow"; public static final String MAIN_DRAFT_USER_DISTRIBUTE = "Activity_0v98tow";
/** 其他起草人上传企标 */ /** 其他起草人上传企标 */
public static final String OTHER_DRAFT_USER_UPLOAD = "Activity_1dz3u0m"; public static final String OTHER_DRAFT_USER_UPLOAD = "Activity_1d2la4l";
/** 主起草人汇总 */ /** 主起草人汇总 */
public static final String MAIN_DRAFT_USER_COLLECT_FIRST = "Activity_1d2la4l"; public static final String MAIN_DRAFT_USER_COLLECT_FIRST = "Activity_1dz3u0m";
/** 标准化审批 */ /** 标准化审批 */
public static final String STANDARDIZATION_CHECK = "Activity_0m576ex"; public static final String STANDARDIZATION_CHECK = "Activity_0m576ex";
/** 评分人评分 */ /** 评分人评分 */
@@ -1,6 +1,7 @@
package com.jero.modules.activiti.process.esRevision.entity.vo; package com.jero.modules.activiti.process.esRevision.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@@ -16,9 +17,11 @@ import java.util.Date;
@Data @Data
public class OtherDraftUserVO { public class OtherDraftUserVO {
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
@ApiModelProperty(value = "起草人责任单位") @ApiModelProperty(value = "起草人责任单位")
private String dept; private String dept;
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
@ApiModelProperty(value = "起草人") @ApiModelProperty(value = "起草人")
private String user; private String user;
@@ -33,6 +36,9 @@ public class OtherDraftUserVO {
@ApiModelProperty(value = "文件ID") @ApiModelProperty(value = "文件ID")
private String fileId; private String fileId;
@ApiModelProperty(value = "1:不能操作显示/2:可以上传并且将起草人改为‘我’/3:可以上传起草人字段维持不变")
private String operateType;
public String getISODeadlineTime() { public String getISODeadlineTime() {
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
return isoFormat.format(this.deadline); return isoFormat.format(this.deadline);
@@ -14,6 +14,7 @@ import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType;
import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice; import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice;
import com.jero.modules.activiti.process.esRevision.entity.OperateTypeEnum;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO; import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO; import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
@@ -108,6 +109,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables)); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables));
// 保存数据 // 保存数据
data.setProcessInstanceId(processInstanceId); data.setProcessInstanceId(processInstanceId);
data.setOtherDrafterUploadFileJson(data.getOtherDraftUserVOS());
save(data); save(data);
// 根据流程实例id更新流程总表 // 根据流程实例id更新流程总表
String prcName = commonVO.getPrcName(); String prcName = commonVO.getPrcName();
@@ -209,7 +211,6 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
commonVO.setNodeId(process.getNodeId()); commonVO.setNodeId(process.getNodeId());
revisionDataVO.setCommon(commonVO); revisionDataVO.setCommon(commonVO);
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
// 获取流程实例数据 // 获取流程实例数据
LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<EsRevisionAdvice> advicesWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<EsRevisionAdvice> advicesWrapper = new LambdaQueryWrapper<>();
@@ -218,7 +219,31 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<EsRevisionAdvice> adviceList = adviceService.list(advicesWrapper); List<EsRevisionAdvice> adviceList = adviceService.list(advicesWrapper);
wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
ProcessEsRevision data = getOne(wrapper); ProcessEsRevision data = getOne(wrapper);
List<OtherDraftUserVO> otherDraftUserVOS = data.parseOtherDraftUserVOS();
List<InspectContentVO> inspectContentVOS = data.parseInspectContents();
data.setAdvices(adviceList); data.setAdvices(adviceList);
String xmlNodeId = record.getNodeId();
// 某些节点需要对数据进行特殊处理
switch (xmlNodeId) {
case OTHER_DRAFT_USER_UPLOAD:
String curUserId = UserUtils.getUserId();
for (OtherDraftUserVO o : otherDraftUserVOS) {
if (o.getUser().equals(curUserId)) {
o.setOperateType(OperateTypeEnum.UPLOAD_AND_CHANGE_DRAFT_USER.getValue());
continue;
}
if (o.getUser().equals(userId)) {
o.setOperateType(OperateTypeEnum.UPLOAD.getValue());
continue;
}
o.setOperateType(OperateTypeEnum.CANNOT_OPERATE.getValue());
}
break;
}
data.setOtherDraftUserVOS(otherDraftUserVOS);
data.setInspectContents(inspectContentVOS);
revisionDataVO.setData(data); revisionDataVO.setData(data);
return revisionDataVO; return revisionDataVO;
} }
@@ -267,6 +292,9 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
otherDraftUserVOS.forEach(otherDraftUserVO -> deadlineMap otherDraftUserVOS.forEach(otherDraftUserVO -> deadlineMap
.put(otherDraftUserVO.getUser() + "-deadline", otherDraftUserVO.getISODeadlineTime())); .put(otherDraftUserVO.getUser() + "-deadline", otherDraftUserVO.getISODeadlineTime()));
taskService.setVariables(taskId, deadlineMap); taskService.setVariables(taskId, deadlineMap);
data.setOtherDraftUserVOS(otherDraftUserVOS);
data.setOtherDrafterUploadFileJson(otherDraftUserVOS);
saveOrUpdate(data);
} }
break; break;
case OTHER_DRAFT_USER_UPLOAD: case OTHER_DRAFT_USER_UPLOAD:
@@ -330,6 +358,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<String> adviceUserList = Arrays.asList(adviceUsers.split(",")); List<String> adviceUserList = Arrays.asList(adviceUsers.split(","));
taskService.setVariable(taskId, "adviceUserList", adviceUserList); taskService.setVariable(taskId, "adviceUserList", adviceUserList);
userMap.put("adviceUserList", adviceUserList); userMap.put("adviceUserList", adviceUserList);
// 设置截止时间
saveOrUpdate(data); saveOrUpdate(data);
break; break;
case ADVICE: case ADVICE: