feat: 企标制修订流程 保存/转办接口

This commit is contained in:
2023-12-19 15:11:32 +08:00
parent 251ad2d99b
commit 20f1e89eef
9 changed files with 550 additions and 3 deletions
@@ -19,8 +19,7 @@ public enum ProcessTypeEnum {
ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"),
ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"),
ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl"),
//TODO 企标制修订的implClass不对
ES_ENACT_MODIFY("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"),
ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.ProcessEsRevisionServiceImpl"),
ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl"),
ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl"),
ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"),
@@ -6,7 +6,6 @@ import com.jero.common.aspect.annotation.Translation;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.TransferVO;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esAbolish.entity.vo.ESAbolishDataVO;
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckService;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
@@ -0,0 +1,129 @@
package com.jero.modules.activiti.process.esRevision.controller;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.Translation;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.TransferVO;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author: Mzaxd
* @Date: 2023/10/18 10:44
*/
@Slf4j
@RestController
@Api(tags = "企标制修订流程")
@RequestMapping("/process/es/revision")
public class ESRevisionController {
@Resource
private EsRevisionService revisionService;
@Resource
private IProcessHandleService processHandleService;
@Resource
private ActFlowCommonService actFlowCommonService;
/**
* 企标制修订流程
*
* @param revisionData
*/
@AutoLog(value = "企标制修订流程-发起流程")
@ApiOperation(value="企标制修订流程-发起流程", notes="企标制修订流程-发起流程")
@PostMapping("/start")
public Result<?> startProcess(@RequestBody ESRevisionDataVO revisionData) {
revisionService.startProcess(revisionData);
return Result.OK();
}
/**
* 保存到草稿
* @param processInfoVO
*/
@AutoLog(value = "企标制修订流程-保存")
@ApiOperation(value="企标制修订流程-保存", notes="企标制修订流程-保存")
@PostMapping("/save")
public Result<?> save(@Validated @RequestBody ProcessInfoVO<ESRevisionDataVO> processInfoVO) {
revisionService.saveToDraft(processInfoVO);
return Result.OK();
}
/**
* 保存到待办
* @param taskId
*/
@AutoLog(value = "企标制修订流程-办理")
@ApiOperation(value="企标制修订流程-办理", notes="企标制修订流程-办理")
@GetMapping("/handle/{taskId}")
@Translation
public Result<?> handle(@PathVariable("taskId") String taskId) {
return Result.OK(revisionService.getHandleData(taskId));
}
/**
* 草稿办理
* @param draftId
*/
@AutoLog(value = "企标制修订流程-草稿办理")
@ApiOperation(value="企标制修订流程-草稿办理", notes="企标制修订流程-草稿办理")
@GetMapping("/draftHandle")
@Translation
public Result<?> draftHandle(@RequestParam("draftId") @ApiParam("草稿Id") String draftId) {
return Result.OK(actFlowCommonService.getExistDraft(draftId, ProcessTypeEnum.ES_RECHECK));
}
/**
* 同意
*
* @param revisionData
*/
@AutoLog(value = "企标制修订流程-同意")
@ApiOperation(value="企标制修订流程-同意", notes="企标制修订流程-同意")
@PostMapping("/agree")
public Result<?> agree(@RequestBody ESRevisionDataVO revisionData) {
revisionService.approval(revisionData, true);
return Result.OK();
}
/**
* 驳回
*
* @param revisionData
*/
@AutoLog(value = "企标制修订流程-驳回")
@ApiOperation(value="企标制修订流程-驳回", notes="企标制修订流程-驳回")
@PostMapping("/reject")
public Result<?> reject(@RequestBody ESRevisionDataVO revisionData) {
revisionService.approval(revisionData, false);
return Result.OK();
}
/**
* 转办
*
*/
@AutoLog(value = "企标制修订流程-转办")
@ApiOperation(value="企标制修订流程-转办", notes="企标制修订流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) {
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId());
return Result.OK();
}
}
@@ -0,0 +1,252 @@
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
*/
@TableName(value ="process_es_revision")
@Data
public class ProcessEsRevision implements Serializable {
/**
* 主键ID
*/
@TableId
private String id;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 所属部门
*/
private String orgCode;
/**
* 业务json数据
*/
private String businessJson;
/**
* 0表示未删除,1表示删除
*/
private Integer delFlag;
/**
* 流程实例Id
*/
private String processInstanceId;
/**
* 执行id
*/
private String executionId;
/**
* 是否需要稽查 0不需要 1需要
*/
private String inspectFlag;
/**
* 是否可以进行评审会
*/
private String reviewMeetingFlag;
/**
* 评审人
*/
private String reviewUser;
/**
* 评分人
*/
private String raters;
/**
* 评审日期
*/
private Date reviewDate;
/**
* 评审地点
*/
private String reviewPlace;
/**
* 是否开启征求意见 0不征求 1征求
*/
private String adviceFlag;
/**
* 部门联络人
*/
private String contactUser;
/**
* 会议纪要
*/
private String meetingSummary;
/**
* 参会人员
*/
private String meetingUsers;
/**
* 校对人
*/
private String proofreader;
/**
* 审批人(主管级领导)
*/
private String approvalUser;
/**
* 审批人(标准化)
*/
private String approvalUserStandard;
/**
* 相关部门领导
*/
private String relatedLeader;
/**
* 总工程师
*/
private String chiefEngineer;
@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;
}
ProcessEsRevision other = (ProcessEsRevision) 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.getBusinessJson() == null ? other.getBusinessJson() == null : this.getBusinessJson().equals(other.getBusinessJson()))
&& (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
&& (this.getProcessInstanceId() == null ? other.getProcessInstanceId() == null : this.getProcessInstanceId().equals(other.getProcessInstanceId()))
&& (this.getExecutionId() == null ? other.getExecutionId() == null : this.getExecutionId().equals(other.getExecutionId()))
&& (this.getInspectFlag() == null ? other.getInspectFlag() == null : this.getInspectFlag().equals(other.getInspectFlag()))
&& (this.getReviewMeetingFlag() == null ? other.getReviewMeetingFlag() == null : this.getReviewMeetingFlag().equals(other.getReviewMeetingFlag()))
&& (this.getReviewUser() == null ? other.getReviewUser() == null : this.getReviewUser().equals(other.getReviewUser()))
&& (this.getRaters() == null ? other.getRaters() == null : this.getRaters().equals(other.getRaters()))
&& (this.getReviewDate() == null ? other.getReviewDate() == null : this.getReviewDate().equals(other.getReviewDate()))
&& (this.getReviewPlace() == null ? other.getReviewPlace() == null : this.getReviewPlace().equals(other.getReviewPlace()))
&& (this.getAdviceFlag() == null ? other.getAdviceFlag() == null : this.getAdviceFlag().equals(other.getAdviceFlag()))
&& (this.getContactUser() == null ? other.getContactUser() == null : this.getContactUser().equals(other.getContactUser()))
&& (this.getMeetingSummary() == null ? other.getMeetingSummary() == null : this.getMeetingSummary().equals(other.getMeetingSummary()))
&& (this.getMeetingUsers() == null ? other.getMeetingUsers() == null : this.getMeetingUsers().equals(other.getMeetingUsers()))
&& (this.getProofreader() == null ? other.getProofreader() == null : this.getProofreader().equals(other.getProofreader()))
&& (this.getApprovalUser() == null ? other.getApprovalUser() == null : this.getApprovalUser().equals(other.getApprovalUser()))
&& (this.getApprovalUserStandard() == null ? other.getApprovalUserStandard() == null : this.getApprovalUserStandard().equals(other.getApprovalUserStandard()))
&& (this.getRelatedLeader() == null ? other.getRelatedLeader() == null : this.getRelatedLeader().equals(other.getRelatedLeader()))
&& (this.getChiefEngineer() == null ? other.getChiefEngineer() == null : this.getChiefEngineer().equals(other.getChiefEngineer()));
}
@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 + ((getBusinessJson() == null) ? 0 : getBusinessJson().hashCode());
result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
result = prime * result + ((getProcessInstanceId() == null) ? 0 : getProcessInstanceId().hashCode());
result = prime * result + ((getExecutionId() == null) ? 0 : getExecutionId().hashCode());
result = prime * result + ((getInspectFlag() == null) ? 0 : getInspectFlag().hashCode());
result = prime * result + ((getReviewMeetingFlag() == null) ? 0 : getReviewMeetingFlag().hashCode());
result = prime * result + ((getReviewUser() == null) ? 0 : getReviewUser().hashCode());
result = prime * result + ((getRaters() == null) ? 0 : getRaters().hashCode());
result = prime * result + ((getReviewDate() == null) ? 0 : getReviewDate().hashCode());
result = prime * result + ((getReviewPlace() == null) ? 0 : getReviewPlace().hashCode());
result = prime * result + ((getAdviceFlag() == null) ? 0 : getAdviceFlag().hashCode());
result = prime * result + ((getContactUser() == null) ? 0 : getContactUser().hashCode());
result = prime * result + ((getMeetingSummary() == null) ? 0 : getMeetingSummary().hashCode());
result = prime * result + ((getMeetingUsers() == null) ? 0 : getMeetingUsers().hashCode());
result = prime * result + ((getProofreader() == null) ? 0 : getProofreader().hashCode());
result = prime * result + ((getApprovalUser() == null) ? 0 : getApprovalUser().hashCode());
result = prime * result + ((getApprovalUserStandard() == null) ? 0 : getApprovalUserStandard().hashCode());
result = prime * result + ((getRelatedLeader() == null) ? 0 : getRelatedLeader().hashCode());
result = prime * result + ((getChiefEngineer() == null) ? 0 : getChiefEngineer().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(", businessJson=").append(businessJson);
sb.append(", delFlag=").append(delFlag);
sb.append(", processInstanceId=").append(processInstanceId);
sb.append(", executionId=").append(executionId);
sb.append(", inspectFlag=").append(inspectFlag);
sb.append(", reviewMeetingFlag=").append(reviewMeetingFlag);
sb.append(", reviewUser=").append(reviewUser);
sb.append(", raters=").append(raters);
sb.append(", reviewDate=").append(reviewDate);
sb.append(", reviewPlace=").append(reviewPlace);
sb.append(", adviceFlag=").append(adviceFlag);
sb.append(", contactUser=").append(contactUser);
sb.append(", meetingSummary=").append(meetingSummary);
sb.append(", meetingUsers=").append(meetingUsers);
sb.append(", proofreader=").append(proofreader);
sb.append(", approvalUser=").append(approvalUser);
sb.append(", approvalUserStandard=").append(approvalUserStandard);
sb.append(", relatedLeader=").append(relatedLeader);
sb.append(", chiefEngineer=").append(chiefEngineer);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
@@ -0,0 +1,26 @@
package com.jero.modules.activiti.process.esRevision.entity.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import lombok.Data;
import java.util.Map;
/**
* @author: Mzaxd
* @Date: 2023/12/19 14:50
*/
@Data
public class ESRevisionDataVO {
@JsonProperty("common")
CommonVO common;
@JsonProperty("data")
ProcessEsRevision data;
@JsonProperty("flowUser")
Map<String, Object> flowUser;
}
@@ -0,0 +1,8 @@
package com.jero.modules.activiti.process.esRevision.listener;
/**
* @author: Mzaxd
* @Date: 2023/12/19 11:59
*/
public class ProcessESRevisionEndListener {
}
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.process.esRevision.mapper;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author ThinkBook
* @description 针对表【process_es_revision】的数据库操作Mapper
* @createDate 2023-12-19 11:58:59
* @Entity com.jero.modules.activiti.process.esRevision.entity.EsRevision
*/
public interface EsRevisionMapper extends BaseMapper<ProcessEsRevision> {
}
@@ -0,0 +1,26 @@
package com.jero.modules.activiti.process.esRevision.service;
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
/**
* @author ThinkBook
* @description 针对表【process_es_revision】的数据库操作Service
* @createDate 2023-12-19 11:58:59
*/
public interface EsRevisionService extends IService<ProcessEsRevision> {
ESRevisionDataVO getHandleData(String taskId);
void autoStartProcess(ESRecheckDataVO recheckData);
void saveToDraft(ProcessInfoVO<ESRevisionDataVO> processInfoVO);
void startProcess(ESRevisionDataVO revisionData);
void approval(ESRevisionDataVO revisionData, boolean pass);
}
@@ -0,0 +1,90 @@
package com.jero.modules.activiti.process.esRevision.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck;
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
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.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.ProcessNodeLinkService;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @author ThinkBook
* @description 针对表【process_es_revision】的数据库操作Service实现
* @createDate 2023-12-19 11:58:59
*/
@Service
@Slf4j
@Transactional(rollbackFor = JeroBootException.class)
public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, ProcessEsRevision>
implements EsRevisionService{
@Resource
private ActFlowCommonService actFlowCommonService;
@Resource
private ProcessNodeLinkService processNodeLinkService;
@Resource
private RuntimeService runtimeService;
@Resource
private IProcessHandleService processHandleService;
@Override
public void startProcess(ESRevisionDataVO revisionData) {
}
@Override
public void autoStartProcess(ESRecheckDataVO recheckData) {
}
@Override
public ESRevisionDataVO getHandleData(String taskId) {
return null;
}
@Override
public void approval(ESRevisionDataVO revisionData, boolean pass) {
}
@Override
public void saveToDraft(ProcessInfoVO<ESRevisionDataVO> processInfoVO) {
ESRevisionDataVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
if (businessInfoDTO != null) {
ProcessEsRevision data = businessInfoDTO.getData();
if (data != null) {
processInfoVO.setBusinessId(data.getId());
}
}
// 流程信息
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.ES_REVISION.getValue()); // 流程类型
processHandleService.saveToDraft(processInfoVO);
}
}