diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OperateTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OperateTypeEnum.java new file mode 100644 index 00000000..ad391fe4 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OperateTypeEnum.java @@ -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; + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/RevisionTaskNodeIdConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/RevisionTaskNodeIdConstant.java index 4ab9543f..390e26e4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/RevisionTaskNodeIdConstant.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/RevisionTaskNodeIdConstant.java @@ -9,9 +9,9 @@ public class RevisionTaskNodeIdConstant { /** 主起草人分发 */ 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"; /** 评分人评分 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java index 753a5f1e..6aa7b7e7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java @@ -1,6 +1,7 @@ package com.jero.modules.activiti.process.esRevision.entity.vo; 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; @@ -16,9 +17,11 @@ import java.util.Date; @Data public class OtherDraftUserVO { + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "起草人责任单位") private String dept; + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "起草人") private String user; @@ -33,6 +36,9 @@ public class OtherDraftUserVO { @ApiModelProperty(value = "文件ID") private String fileId; + @ApiModelProperty(value = "1:不能操作显示/2:可以上传并且将起草人改为‘我’/3:可以上传起草人字段维持不变") + private String operateType; + public String getISODeadlineTime() { SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); return isoFormat.format(this.deadline); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java index a50ac32f..46afe313 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java @@ -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.esInitChange.entity.enums.ESPRevisionType; 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.OtherDraftUserVO; import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; @@ -108,6 +109,7 @@ public class EsRevisionServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper advicesWrapper = new LambdaQueryWrapper<>(); @@ -218,7 +219,31 @@ public class EsRevisionServiceImpl extends ServiceImpl adviceList = adviceService.list(advicesWrapper); wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); ProcessEsRevision data = getOne(wrapper); + List otherDraftUserVOS = data.parseOtherDraftUserVOS(); + List inspectContentVOS = data.parseInspectContents(); 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); return revisionDataVO; } @@ -267,6 +292,9 @@ public class EsRevisionServiceImpl extends ServiceImpl deadlineMap .put(otherDraftUserVO.getUser() + "-deadline", otherDraftUserVO.getISODeadlineTime())); taskService.setVariables(taskId, deadlineMap); + data.setOtherDraftUserVOS(otherDraftUserVOS); + data.setOtherDrafterUploadFileJson(otherDraftUserVOS); + saveOrUpdate(data); } break; case OTHER_DRAFT_USER_UPLOAD: @@ -330,6 +358,7 @@ public class EsRevisionServiceImpl extends ServiceImpl adviceUserList = Arrays.asList(adviceUsers.split(",")); taskService.setVariable(taskId, "adviceUserList", adviceUserList); userMap.put("adviceUserList", adviceUserList); + // 设置截止时间 saveOrUpdate(data); break; case ADVICE: