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 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";
/** 评分人评分 */
@@ -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);
@@ -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<EsRevisionMapper, Process
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables));
// 保存数据
data.setProcessInstanceId(processInstanceId);
data.setOtherDrafterUploadFileJson(data.getOtherDraftUserVOS());
save(data);
// 根据流程实例id更新流程总表
String prcName = commonVO.getPrcName();
@@ -209,7 +211,6 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
commonVO.setNodeId(process.getNodeId());
revisionDataVO.setCommon(commonVO);
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
// 获取流程实例数据
LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<EsRevisionAdvice> advicesWrapper = new LambdaQueryWrapper<>();
@@ -218,7 +219,31 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<EsRevisionAdvice> adviceList = adviceService.list(advicesWrapper);
wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
ProcessEsRevision data = getOne(wrapper);
List<OtherDraftUserVO> otherDraftUserVOS = data.parseOtherDraftUserVOS();
List<InspectContentVO> 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<EsRevisionMapper, Process
otherDraftUserVOS.forEach(otherDraftUserVO -> 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<EsRevisionMapper, Process
List<String> adviceUserList = Arrays.asList(adviceUsers.split(","));
taskService.setVariable(taskId, "adviceUserList", adviceUserList);
userMap.put("adviceUserList", adviceUserList);
// 设置截止时间
saveOrUpdate(data);
break;
case ADVICE: