diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/EsRevisionAdvice.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/EsRevisionAdvice.java new file mode 100644 index 00000000..c1fe8603 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/EsRevisionAdvice.java @@ -0,0 +1,156 @@ +package com.jero.modules.activiti.process.esRevision.entity; + +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 lombok.Data; + +/** + * + * @TableName process_es_revision_advice + */ +@TableName(value ="process_es_revision_advice") +@Data +public class EsRevisionAdvice implements Serializable { + /** + * 主键ID + */ + @TableId + private String id; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 所属部门 + */ + private String orgCode; + + /** + * 流程实例Id + */ + private String processInstanceId; + + /** + * 执行id + */ + private String executionId; + + /** + * 条款号 + */ + private String clauseNum; + + /** + * 条款名称 + */ + private String clauseName; + + /** + * 修改意见内容(包括修改理由和依据) + */ + private String editAdvice; + + /** + * 意见提出人 + */ + private String createUserId; + + /** + * 1采纳 2部分采纳 3不采纳 + */ + private String handleAdvice; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + EsRevisionAdvice other = (EsRevisionAdvice) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy())) + && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) + && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy())) + && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())) + && (this.getOrgCode() == null ? other.getOrgCode() == null : this.getOrgCode().equals(other.getOrgCode())) + && (this.getProcessInstanceId() == null ? other.getProcessInstanceId() == null : this.getProcessInstanceId().equals(other.getProcessInstanceId())) + && (this.getExecutionId() == null ? other.getExecutionId() == null : this.getExecutionId().equals(other.getExecutionId())) + && (this.getClauseNum() == null ? other.getClauseNum() == null : this.getClauseNum().equals(other.getClauseNum())) + && (this.getClauseName() == null ? other.getClauseName() == null : this.getClauseName().equals(other.getClauseName())) + && (this.getEditAdvice() == null ? other.getEditAdvice() == null : this.getEditAdvice().equals(other.getEditAdvice())) + && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId())) + && (this.getHandleAdvice() == null ? other.getHandleAdvice() == null : this.getHandleAdvice().equals(other.getHandleAdvice())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode()); + result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); + result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode()); + result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); + result = prime * result + ((getOrgCode() == null) ? 0 : getOrgCode().hashCode()); + result = prime * result + ((getProcessInstanceId() == null) ? 0 : getProcessInstanceId().hashCode()); + result = prime * result + ((getExecutionId() == null) ? 0 : getExecutionId().hashCode()); + result = prime * result + ((getClauseNum() == null) ? 0 : getClauseNum().hashCode()); + result = prime * result + ((getClauseName() == null) ? 0 : getClauseName().hashCode()); + result = prime * result + ((getEditAdvice() == null) ? 0 : getEditAdvice().hashCode()); + result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode()); + result = prime * result + ((getHandleAdvice() == null) ? 0 : getHandleAdvice().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", createBy=").append(createBy); + sb.append(", createTime=").append(createTime); + sb.append(", updateBy=").append(updateBy); + sb.append(", updateTime=").append(updateTime); + sb.append(", orgCode=").append(orgCode); + sb.append(", processInstanceId=").append(processInstanceId); + sb.append(", executionId=").append(executionId); + sb.append(", clauseNum=").append(clauseNum); + sb.append(", clauseName=").append(clauseName); + sb.append(", editAdvice=").append(editAdvice); + sb.append(", createUserId=").append(createUserId); + sb.append(", handleAdvice=").append(handleAdvice); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java index faec0f6b..bb598b8c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java @@ -1,5 +1,6 @@ package com.jero.modules.activiti.process.esRevision.entity; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -7,9 +8,10 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; import java.util.List; -import java.util.Map; -import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent; +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.ReviewMeetingDetailVO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -75,6 +77,24 @@ public class ProcessEsRevision implements Serializable { @ApiModelProperty(value = "业务JSON数据") private String businessJson; + /** + * 其他起草人上传文件JSON + */ + @ApiModelProperty(value = "其他起草人上传文件JSON") + private String otherDrafterUploadFileJson; + + /** + * 稽查内容JSON + */ + @ApiModelProperty(value = "稽查内容JSON") + private String inspectContentJson; + + /** + * 评审会评分细节JSON + */ + @ApiModelProperty(value = "评审会评分细节JSON") + private String reviewMeetingDetailJson; + /** * 执行id */ @@ -188,11 +208,55 @@ public class ProcessEsRevision implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "其他起草人") - private List otherDraftUsers; + private List otherDraftUserVOS; @TableField(exist = false) @ApiModelProperty(value = "稽查内容") - private List inspectContents; + private List inspectContents; + + @TableField(exist = false) + @ApiModelProperty(value = "评审结果") + private List reviewMeetingDetails; + + @TableField(exist = false) + @ApiModelProperty(value = "意见列表") + private List advices; + + public void setOtherDrafterUploadFileJson(String otherDrafterUploadFileJson) { + this.otherDrafterUploadFileJson = otherDrafterUploadFileJson; + } + + public void setInspectContentJson(String inspectContentJson) { + this.inspectContentJson = inspectContentJson; + } + + public void setReviewMeetingDetailJson(String reviewMeetingDetailJson) { + this.reviewMeetingDetailJson = reviewMeetingDetailJson; + } + + public void setOtherDrafterUploadFileJson(List otherDraftUserVOS) { + this.otherDrafterUploadFileJson = JSON.toJSONString(otherDraftUserVOS); + } + + public void setInspectContentJson(List inspectContents) { + this.inspectContentJson = JSON.toJSONString(inspectContents); + } + + public void setReviewMeetingDetailJson(List reviewMeetingDetails) { + this.reviewMeetingDetailJson = JSON.toJSONString(reviewMeetingDetails); + } + + public List parseOtherDraftUserVOS() { + return JSON.parseArray(this.otherDrafterUploadFileJson, OtherDraftUserVO.class); + } + + public List parseInspectContents() { + return JSON.parseArray(this.inspectContentJson, InspectContentVO.class); + } + + public List parseReviewMeetingDetails() { + return JSON.parseArray(this.reviewMeetingDetailJson, ReviewMeetingDetailVO.class); + } @TableField(exist = false) private static final long serialVersionUID = 1L; 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 new file mode 100644 index 00000000..4ab9543f --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/RevisionTaskNodeIdConstant.java @@ -0,0 +1,46 @@ +package com.jero.modules.activiti.process.esRevision.entity; + +/** + * @author: Mzaxd + * @Date: 2023/12/19 15:14 + */ +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 MAIN_DRAFT_USER_COLLECT_FIRST = "Activity_1d2la4l"; + /** 标准化审批 */ + public static final String STANDARDIZATION_CHECK = "Activity_0m576ex"; + /** 评分人评分 */ + public static final String RATER_RATE = "Activity_1qhpnpa"; + /** 标准化确认是否开启征求意见 */ + public static final String CONFIRM_ADVISE = "Activity_1siuksf"; + /** 部门联络人下发 */ + public static final String CONTACT_USER_DISTRIBUTE = "Activity_1ns6olf"; + /** 征求意见对象填写意见 */ + public static final String ADVICE = "Activity_04m430n"; + /** 部门联络人汇总数据 */ + public static final String CONTACT_USER_COLLECT = "Activity_1riqzkp"; + /** 部所联络人主管级领导审批 */ + public static final String CONTACT_USER_LEADER_APPROVAL = "Activity_1ralk8e"; + /** 主起草人汇总 */ + public static final String MAIN_DRAFT_USER_COLLECT_SECOND = "Activity_1hb9aun"; + /** 主起草人上传会议纪要 */ + public static final String MAIN_DRAFT_USER_UPLOAD = "Activity_11uuyg0"; + /** 其它起草人校对 */ + public static final String OTHER_DRAFT_USER_CHECK = "Activity_1seways"; + /** 主管级领导审批 */ + public static final String LEADER_APPROVAL = "Activity_1l028rz"; + /** 标准化审批 */ + public static final String STANDARDIZATION_APPROVAL = "Activity_0uxua0b"; + /** 相关部门领导会签 */ + public static final String RELATED_LEADER_APPROVAL = "Activity_05pybsc"; + /** 总工程师审批 */ + public static final String CHIEF_ENGINEER_APPROVAL = "Activity_1yr56ac"; + /** 主起草人发布 */ + public static final String MAIN_DRAFT_USER_RELEASE = "Activity_0n0h60s"; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/InspectContentVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/InspectContentVO.java new file mode 100644 index 00000000..de6991f6 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/InspectContentVO.java @@ -0,0 +1,27 @@ +package com.jero.modules.activiti.process.esRevision.entity.vo; + +import com.alibaba.fastjson.annotation.JSONField; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModelProperty; + +/** + * @author: Mzaxd + * @Date: 2023/12/20 17:46 + */ +public class InspectContentVO { + + /** 条款 */ + @JSONField(name = "clause") + @ApiModelProperty(value = "条款") + private String clause; + + /** 标准内容或要求 */ + @JSONField(name = "requirement") + @ApiModelProperty(value = "标准内容或要求") + private String requirement; + + @JSONField(name = "rectificationDepartment") + @ApiModelProperty(value = "整改部门") + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + private String rectificationDepartment; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OtherDraftUser.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java similarity index 84% rename from laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OtherDraftUser.java rename to laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java index a3295791..14f578d0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/OtherDraftUser.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/OtherDraftUserVO.java @@ -1,4 +1,4 @@ -package com.jero.modules.activiti.process.esRevision.entity; +package com.jero.modules.activiti.process.esRevision.entity.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,7 +11,7 @@ import java.util.Date; */ @Data -public class OtherDraftUser { +public class OtherDraftUserVO { @ApiModelProperty(value = "起草人责任单位") private String dept; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/ReviewMeetingDetailVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/ReviewMeetingDetailVO.java new file mode 100644 index 00000000..a7a55dbb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/vo/ReviewMeetingDetailVO.java @@ -0,0 +1,30 @@ +package com.jero.modules.activiti.process.esRevision.entity.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author: Mzaxd + * @Date: 2023/12/20 16:13 + */ + +@Data +public class ReviewMeetingDetailVO { + + /**评分项目*/ + @ApiModelProperty(value = "评分项目") + private String evaluateItem; + + /**评分分值*/ + @ApiModelProperty(value = "评分分值") + private String evaluateScore; + + /**评分人id*/ + @ApiModelProperty(value = "评分人id") + private String adjudicatorId; + + /**扣分理由*/ + @ApiModelProperty(value = "扣分理由") + private String deductionScoreReason; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/RevisionTaskNameConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/RevisionTaskNameConstant.java deleted file mode 100644 index e12e4305..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/RevisionTaskNameConstant.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.jero.modules.activiti.process.esRevision.listener; - -/** - * @author: Mzaxd - * @Date: 2023/12/19 15:14 - */ -public class RevisionTaskNameConstant { - - public static final String MAIN_DRAFT_USER_DISTRIBUTE = "主起草人起草分发"; - public static final String OTHER_DRAFT_USER_UPLOAD = "其他起草人上传企标"; - public static final String STANDARDIZATION_CHECK = "标准化审核"; - public static final String RATER_RATE = "评分人打分"; - public static final String CONFIRM_ADVISE = "标准化确认是否开启征求意见"; - public static final String CONTACT_USER_DISTRIBUTE = "部所联络人下发"; - public static final String ADVICE = "征求意见对象填写意见"; - public static final String CONTACT_USER_COLLECT = "部所联络人汇总数据"; - public static final String CONTACT_USER_LEADER_APPROVAL = "部所联络人主管级领导审批"; - public static final String MAIN_DRAFT_USER_COLLECT = "主起草人汇总"; - public static final String MAIN_DRAFT_USER_UPLOAD = "主起草人上传会议纪要"; - public static final String LEADER_APPROVAL = "主管级领导审批"; - public static final String STANDARDIZATION_APPROVAL = "标准化审批"; - public static final String RELATED_LEADER_APPROVAL = "相关部门领导会签"; - public static final String CHIEF_ENGINEER_APPROVAL = "总工程师审批"; - public static final String MAIN_DRAFT_USER_RELEASE = "主起草人发布"; - -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/mapper/EsRevisionAdviceMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/mapper/EsRevisionAdviceMapper.java new file mode 100644 index 00000000..1b37c70a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/mapper/EsRevisionAdviceMapper.java @@ -0,0 +1,18 @@ +package com.jero.modules.activiti.process.esRevision.mapper; + +import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author ThinkBook +* @description 针对表【process_es_revision_advice】的数据库操作Mapper +* @createDate 2023-12-20 17:17:56 +* @Entity com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice +*/ +public interface EsRevisionAdviceMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionAdviceService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionAdviceService.java new file mode 100644 index 00000000..06fc5dac --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionAdviceService.java @@ -0,0 +1,13 @@ +package com.jero.modules.activiti.process.esRevision.service; + +import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author ThinkBook +* @description 针对表【process_es_revision_advice】的数据库操作Service +* @createDate 2023-12-20 17:17:56 +*/ +public interface EsRevisionAdviceService extends IService { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java index bb24e669..affd3789 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java @@ -16,7 +16,7 @@ public interface EsRevisionService extends IService { ESRevisionDataVO getHandleData(String taskId); - void autoStartProcess(ESRecheckDataVO recheckData); + void autoStartProcess(ESRevisionDataVO revisionData); void saveToDraft(ProcessInfoVO processInfoVO); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionAdviceServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionAdviceServiceImpl.java new file mode 100644 index 00000000..b193e00b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionAdviceServiceImpl.java @@ -0,0 +1,22 @@ +package com.jero.modules.activiti.process.esRevision.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice; +import com.jero.modules.activiti.process.esRevision.service.EsRevisionAdviceService; +import com.jero.modules.activiti.process.esRevision.mapper.EsRevisionAdviceMapper; +import org.springframework.stereotype.Service; + +/** +* @author ThinkBook +* @description 针对表【process_es_revision_advice】的数据库操作Service实现 +* @createDate 2023-12-20 17:17:56 +*/ +@Service +public class EsRevisionAdviceServiceImpl extends ServiceImpl + implements EsRevisionAdviceService{ + +} + + + + 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 a1149a0e..ac20b898 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 @@ -1,26 +1,35 @@ package com.jero.modules.activiti.process.esRevision.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; -import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO; -import com.jero.modules.activiti.process.esRevision.entity.OtherDraftUser; +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; import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO; +import com.jero.modules.activiti.process.esRevision.entity.vo.ReviewMeetingDetailVO; import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; import com.jero.modules.activiti.process.esRevision.mapper.EsRevisionMapper; 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.common.constant.FieldCommon; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,6 +37,8 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import static com.jero.modules.activiti.process.esRevision.entity.RevisionTaskNodeIdConstant.*; + /** * @author ThinkBook * @description 针对表【process_es_revision】的数据库操作Service实现 @@ -51,6 +62,12 @@ public class EsRevisionServiceImpl extends ServiceImpl flowUser = revisionData.getFlowUser(); ProcessEsRevision data = revisionData.getData(); actVariables.put("mainDraftUser", flowUser.get("mainDraftUser")); - List otherDraftUsers = data.getOtherDraftUsers(); - if (otherDraftUsers == null || otherDraftUsers.isEmpty()) { + List otherDraftUserVOS = data.getOtherDraftUserVOS(); + if (otherDraftUserVOS == null || otherDraftUserVOS.isEmpty()) { actVariables.put("distribute", false); } else { actVariables.put("distribute", true); - actVariables.put("otherDraftUserList", otherDraftUsers.stream().map(OtherDraftUser::getUser) + actVariables.put("otherDraftUserList", otherDraftUserVOS.stream().map(OtherDraftUserVO::getUser) .collect(Collectors.toList())); } // 获取分发人 @@ -109,9 +126,10 @@ public class EsRevisionServiceImpl extends ServiceImpl getUserMap(Map variables) { // 转成逗号拼接 - variables.put("mainDraftUser", Optional.ofNullable((HashSet) variables.get("contactUserList")) + variables.put("otherDraftUserList", Optional.ofNullable((ArrayList) variables.get("otherDraftUserList")) .map(list -> String.join(",", list)) .orElse("")); + variables.remove("distribute"); return variables; } @@ -120,18 +138,156 @@ public class EsRevisionServiceImpl extends ServiceImpl executionIdList = actFlowCommonService.getAllChildExecutionIds(executionId); + executionIdList.add(executionId); + ESRevisionDataVO revisionDataVO = new ESRevisionDataVO(); + // 使用流程引擎根据taskId找到流程实例Id + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + CommonVO commonVO = new CommonVO(); + commonVO.setPrcName(process.getPrcName()); + commonVO.setTaskId(process.getTaskId()); + commonVO.setPrcMes(process.getPrcMes()); + commonVO.setDueTime(process.getDueTime()); + commonVO.setNodeId(process.getNodeId()); + revisionDataVO.setCommon(commonVO); + // 获取流程实例数据 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); + revisionDataVO.setData(getOne(wrapper)); + return revisionDataVO; } @Override public void approval(ESRevisionDataVO revisionData, boolean pass) { - + CommonVO commonVO = revisionData.getCommon(); + String taskId = commonVO.getTaskId(); + // 获取task + if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("taskId为空或任务不存在"); + } + String userId = actFlowCommonService.getOriginTaskAssignee(taskId); + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + // 获取执行id + String executionId = task.getExecutionId(); + // 获取当前节点的id + ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); + String xmlNodeId = record.getNodeId(); + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); + wrapper.eq(ProcessEsRevision::getDelFlag, YesOrNoEnum.NO.getValue()); + updateWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); + updateWrapper.eq(ProcessEsRevision::getDelFlag, YesOrNoEnum.NO.getValue()); + // 获取当前流程 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + String processDefinitionId = processInstance.getProcessDefinitionId(); + Map userMap = new HashMap<>(); + ProcessEsRevision data; + switch (xmlNodeId) { + case MAIN_DRAFT_USER_DISTRIBUTE: + // TODO 判断是否分发 设置流程变量 别忘了时间边界变量 + break; + case OTHER_DRAFT_USER_UPLOAD: + // TODO + break; + case MAIN_DRAFT_USER_COLLECT_FIRST: + // 判断是否需要稽查 设置流程变量 保存稽查列表 + data = revisionData.getData(); + boolean inspectFlag = !data.getInspectFlag().equals("0"); + if (inspectFlag) { + List inspectContents = data.getInspectContents(); + data.setInspectContentJson(inspectContents); + } + // 保存流程数据 + saveOrUpdate(data); + break; + case STANDARDIZATION_CHECK: + // 判断是否可以评审 + data = revisionData.getData(); + boolean reviewMeetingFlag = !data.getReviewMeetingFlag().equals("0"); + if (reviewMeetingFlag) { + List raterList = Arrays.asList(data.getRaters().split(",")); + taskService.setVariable(taskId, "raterList", raterList); + // 保存流程数据 + saveOrUpdate(data); + } + break; + case RATER_RATE: + // 保存打分记录 + data = revisionData.getData(); + List reviewMeetingDetails = data.getReviewMeetingDetails(); + ProcessEsRevision revisionDb = getById(data.getId()); + List reviewMeetingDetailsDb = revisionDb.parseReviewMeetingDetails(); + reviewMeetingDetailsDb.addAll(reviewMeetingDetails); + data.setReviewMeetingDetailJson(reviewMeetingDetailsDb); + saveOrUpdate(data); + break; + case CONFIRM_ADVISE: + // 判断是否开启征求意见子流程 设置流程变量 + data = revisionData.getData(); + boolean adviceFlag = !data.getAdviceFlag().equals("0"); + if (adviceFlag) { + List contactUserList = Arrays.asList(data.getContactUser().split(",")); + taskService.setVariable(taskId, "contactUserList", contactUserList); + // 保存流程数据 + saveOrUpdate(data); + } + break; + case CONTACT_USER_DISTRIBUTE: + break; + case ADVICE: + break; + case CONTACT_USER_COLLECT: + break; + case CONTACT_USER_LEADER_APPROVAL: + break; + case MAIN_DRAFT_USER_COLLECT_SECOND: + break; + case MAIN_DRAFT_USER_UPLOAD: + // 设置后续节点的办理人 + data = revisionData.getData(); + List proofreaderList = Arrays.asList(data.getProofreader().split(",")); + List approvalUserList = Arrays.asList(data.getApprovalUser().split(",")); + String approvalUserStandard = data.getApprovalUserStandard(); + List relatedLeaderList = Arrays.asList(data.getRelatedLeader().split(",")); + String chiefEngineer = data.getChiefEngineer(); + userMap.put("proofreaderList", proofreaderList); + userMap.put("approvalUserList", approvalUserList); + userMap.put("approvalUserStandard", approvalUserStandard); + userMap.put("relatedLeaderList", relatedLeaderList); + userMap.put("chiefEngineer", chiefEngineer); + taskService.setVariables(taskId, userMap); + saveOrUpdate(data); + break; + case MAIN_DRAFT_USER_RELEASE: + // do nothing now + break; + } + if (pass) { + runtimeService.setVariable(processInstanceId, "pass", true); + } else { + // 设置流程变量 + runtimeService.setVariable(processInstanceId, "pass", false); + } + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass); + // 审批节点 + actFlowCommonService.completeTask(taskId, userId); } @Override diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRmrEvaluateDetail.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRmrEvaluateDetail.java index 794105ad..7784466b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRmrEvaluateDetail.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRmrEvaluateDetail.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -78,7 +79,7 @@ public class EnterpriseStandardRmrEvaluateDetail implements Serializable { /**评分人名称*/ @TableField(exist = false) @ApiModelProperty(value = "评分人名称") - private String adjudicatorName;; + private String adjudicatorName; /**扣分理由*/ @ApiModelProperty(value = "扣分理由")