From 8827b456233c0555bf99a8402d8d36fec581225a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 11 Jul 2024 18:17:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B8=82=E5=9C=BA=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E5=8F=91=E5=B8=83=E6=B5=81=E7=A8=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessNewStandardImportConstants.java | 68 +++++ ...rocessMarketStandardReleaseController.java | 134 +++++++++ .../entity/ProcessMarketStandardRelease.java | 93 +++++++ ...ocessMarketStandardReleaseEndListener.java | 26 ++ .../ProcessMarketStandardReleaseMapper.java | 19 ++ .../ProcessMarketStandardReleaseMapper.xml | 7 + .../IProcessMarketStandardReleaseService.java | 29 ++ ...ocessMarketStandardReleaseServiceImpl.java | 257 ++++++++++++++++++ .../ms/vo/ProcessMarketStandardReleaseVO.java | 11 + .../ProcessNewStandardImportController.java | 4 +- .../controller/MarketStandardController.java | 21 ++ .../impl/LawsMarketStandardServiceImpl.java | 3 + 12 files changed, 670 insertions(+), 2 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/common/ProcessNewStandardImportConstants.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/controller/ProcessMarketStandardReleaseController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/entity/ProcessMarketStandardRelease.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/listener/ProcessMarketStandardReleaseEndListener.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/ProcessMarketStandardReleaseMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/xml/ProcessMarketStandardReleaseMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/IProcessMarketStandardReleaseService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/ms/vo/ProcessMarketStandardReleaseVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/common/ProcessNewStandardImportConstants.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/common/ProcessNewStandardImportConstants.java new file mode 100644 index 00000000..ab5bbd55 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/common/ProcessNewStandardImportConstants.java @@ -0,0 +1,68 @@ +package com.jero.modules.activiti.process.ms.common; + +/** + * @author liJiaRao + * @date 2024-06-17 15:28 + */ +public class ProcessNewStandardImportConstants { + + /** 法规工程师 */ + public static final String STANDARD_ENGINEER = "standardEngineer"; + /** 各部门接口人 */ + public static final String DEPT_USER = "deptUser"; + /** 主排查人 */ + public static final String MAIN_CHECK_USER = "mainCheckUser"; + /** 会签人员列表 */ + public static final String COUNTERSIGN_USER_LIST = "countersignUserList"; + /** 设计工程师科室经理审核 */ + public static final String MANAGER = "manager"; + /** 高级经理/技术官 */ + public static final String SENIOR_MANAGER = "seniorManager"; + /** 未分配数量 */ + public static final String UNALLOCATED_QUANTITY = "unallocatedQuantity"; + + /** + * 法规工程师发起 + */ + public static final String STANDARD_ENGINEER_START = "sid-F144BD89-366F-482C-89DE-3AE2BD22D371"; + /** + * 各部门接口人分发 + */ + public static final String DEPT_USER_DISTRIBUTE = "sid-F07416DD-65BF-499E-AC96-F7A407AA3CEB"; + /** + * 主排查人分发 + */ + public static final String MAIN_CHECK_USER_DISTRIBUTE = "sid-96A59284-7EE2-4F10-A327-F76BC26B95F8"; + /** + * 主排查人分发 + */ + public static final String MAIN_CHECK_USER_REDISTRIBUTE = "sid-3D1BFC0F-9074-4868-891F-2F76D00A21C7"; + /** + * 主排查人汇总 + */ + public static final String MAIN_CHECK_USER_COLLECT = "sid-A478E1B2-84B6-4884-875B-E6C53392BC4F"; + /** + * 会签 + */ + public static final String COUNTERSIGN = "sid-D3B3377E-9392-44D6-81D5-9DDDA91FB083"; + /** + * 设计工程师科室经理审核 + */ + public static final String MANAGER_APPROVAL = "sid-B253F229-2E92-4882-A054-EAA068069F0F"; + /** + * 高级经理/技术官审核 + */ + public static final String SENIOR_MANAGER_APPROVAL = "sid-31D9FF6F-D1BE-4B02-910C-5DB7A5D0A626"; + /** + * 设计工程师工程师评估 + */ + public static final String DESIGNER_ENGINEER_EVALUATION = "sid-45FC4ED6-DB83-49E0-A080-55192B7860EB"; + /** + * 主排查人审核 + */ + public static final String MAIN_CHECK_USER_APPROVAL = "sid-C9A2FE2E-8A8A-4846-8010-5AE4ECF14DFE"; + /** 自动任务 */ + public static final String AUTO_TASK_1 = "sid-95E41F78-FE01-4FEC-BF8B-EC11DFBA8824"; + public static final String AUTO_TASK_2 = "autoTask_2"; + public static final String AUTO_TASK_3 = "autoTask_3"; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/controller/ProcessMarketStandardReleaseController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/controller/ProcessMarketStandardReleaseController.java new file mode 100644 index 00000000..45868b6e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/controller/ProcessMarketStandardReleaseController.java @@ -0,0 +1,134 @@ +package com.jero.modules.activiti.process.ms.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.common.system.base.controller.JeroController; +import com.jero.modules.activiti.enums.ProcessTypeEnum; +import com.jero.modules.activiti.process.common.entity.ProcessDraft; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease; +import com.jero.modules.activiti.process.ms.service.IProcessMarketStandardReleaseService; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; +import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; +import com.jero.modules.activiti.vo.DelegateTaskParam; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; + +/** + * 流程-市场法规清单发布流程 + * + * @author xxxxx + */ +@Slf4j +@Api(tags = "市场法规清单发布流程") +@RestController +@RequestMapping("process/marketStandardRelease") +public class ProcessMarketStandardReleaseController extends JeroController { + + @Resource + private IProcessMarketStandardReleaseService sccService; + + @Resource + private IProcessHandleService processHandleService; + + @Resource + private ActFlowCommonService actFlowCommonService; + + @AutoLog(value = "市场法规清单发布流程-发起流程") + @ApiOperation(value = "市场法规清单发布流程-发起流程", notes = "市场法规清单发布流程-发起流程") + @PostMapping(value = "/start") + public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.startProcess(processInfoVO); + return Result.OK(); + } + + + /** + * 保存到草稿 + * @param processInfoVO + */ + @AutoLog(value = "市场法规清单发布流程-保存") + @ApiOperation(value="市场法规清单发布流程-保存", notes="市场法规清单发布流程-保存") + @PostMapping("/save") + public Result save(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.saveToDraft(processInfoVO); + return Result.OK(); + } + + @AutoLog(value = "市场法规清单发布流程-同意") + @ApiOperation(value = "市场法规清单发布流程-同意", notes = "市场法规清单发布流程-同意") + @PostMapping("/agree") + public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.approveTask(processInfoVO, true); + return Result.OK(); + } + + @AutoLog(value = "市场法规清单发布流程-驳回") + @ApiOperation(value = "市场法规清单发布流程-驳回", notes = "市场法规清单发布流程-驳回") + @PostMapping("/reject") + public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.approveTask(processInfoVO, false); + return Result.OK(); + } + + @AutoLog(value = "市场法规清单发布流程-提交") + @ApiOperation(value = "市场法规清单发布流程-提交", notes = "市场法规清单发布流程-提交") + @PostMapping("/submit") + public Result submit(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.submit(processInfoVO); + return Result.OK(); + } + + /** + * 转办 + * + */ + @AutoLog(value = "市场法规清单发布流程-转办") + @ApiOperation(value="市场法规清单发布流程-转办", notes="市场法规清单发布流程-转办") + @PostMapping(value = "/transfer") + public Result transfer(@RequestBody DelegateTaskParam param) { + processHandleService.transfer(param.getTaskId(), param.getUserId()); + return Result.OK(); + } + + /** + * 新法规导入流程-办理 + * @param taskId + */ + @AutoLog(value = "市场法规清单发布流程-办理") + @ApiOperation(value="市场法规清单发布流程-办理", notes="市场法规清单发布流程-办理") + @GetMapping("/handle/{taskId}") + @Translation + public Result handle(@PathVariable("taskId") String taskId) { + ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.NEW_STANDARD_IMPORT); + if (draft != null) { + return Result.OK(draft); + } + return Result.OK(sccService.getHandleData(taskId)); + } + + /** + * 生成 + * @param scc + */ + @AutoLog(value = "市场法规清单发布流程-生成") + @ApiOperation(value="市场法规清单发布流程-生成", notes="市场法规清单发布流程-生成") + @PostMapping("/generate") + @Translation + public Result generate(@RequestPart("scc") ProcessMarketStandardRelease scc, + @RequestPart("modelFile") MultipartFile modelFile, + @RequestPart(name = "splitFile", required = false) MultipartFile splitFile) throws Exception { + return Result.OK(sccService.generate(scc, modelFile, splitFile)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/entity/ProcessMarketStandardRelease.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/entity/ProcessMarketStandardRelease.java new file mode 100644 index 00000000..9dd21266 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/entity/ProcessMarketStandardRelease.java @@ -0,0 +1,93 @@ +package com.jero.modules.activiti.process.ms.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; +import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * + * @TableName process_market_standard_release + */ +@TableName(value ="process_market_standard_release") +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_market_standard_release对象", description="市场法规清单发布流程-主表") +public class ProcessMarketStandardRelease implements Serializable { + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /** + * 标准ID + */ + @ApiModelProperty(value = "标准ID") + private String standardId; + + /** + * 流程实例id + */ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + + + /** + * 0表示未删除,1表示删除 + */ + @ApiModelProperty(value = "0表示未删除,1表示删除") + @TableLogic + private Integer delFlag; + + /**清单id*/ + @ApiModelProperty(value = "清单id") + private String manifestId; + /**清单编号*/ + @ApiModelProperty(value = "清单编号") + private String manifestNo; + /**清单名称*/ + @ApiModelProperty(value = "清单名称") + private String manifestName; + /**国家/地区*/ + @ApiModelProperty(value = "国家/地区") + @Dict(dicCode = "market_state") + private String country; + + /** + * 标准详情列表 + */ + @TableField(exist = false) + private List list; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/listener/ProcessMarketStandardReleaseEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/listener/ProcessMarketStandardReleaseEndListener.java new file mode 100644 index 00000000..bb1ef134 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/listener/ProcessMarketStandardReleaseEndListener.java @@ -0,0 +1,26 @@ +package com.jero.modules.activiti.process.ms.listener; + +import com.jero.modules.activiti.process.ms.service.IProcessMarketStandardReleaseService; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * @author liJiaRao + * @date 2023-06-18 15:43 + */ +@Slf4j +@Component +public class ProcessMarketStandardReleaseEndListener implements ExecutionListener { + + @Resource + private IProcessMarketStandardReleaseService processMarketStandardReleaseService; + + @Override + public void notify(DelegateExecution delegateExecution) { + processMarketStandardReleaseService.flowListener(delegateExecution); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/ProcessMarketStandardReleaseMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/ProcessMarketStandardReleaseMapper.java new file mode 100644 index 00000000..0f70ae68 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/ProcessMarketStandardReleaseMapper.java @@ -0,0 +1,19 @@ +package com.jero.modules.activiti.process.ms.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease; + +/** +* @author +* @description 针对表【process_standard_import】的数据库操作Mapper +* @createDate 2024-07-04 10:21:21 +* @Entity +*/ +public interface ProcessMarketStandardReleaseMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/xml/ProcessMarketStandardReleaseMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/xml/ProcessMarketStandardReleaseMapper.xml new file mode 100644 index 00000000..d3dc4a8a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/mapper/xml/ProcessMarketStandardReleaseMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/IProcessMarketStandardReleaseService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/IProcessMarketStandardReleaseService.java new file mode 100644 index 00000000..1c764211 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/IProcessMarketStandardReleaseService.java @@ -0,0 +1,29 @@ +package com.jero.modules.activiti.process.ms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease; +import org.activiti.engine.delegate.DelegateExecution; +import org.springframework.web.multipart.MultipartFile; + +/** +* @author ThinkBook +* @description 针对表【process_standard_compliance_check】的数据库操作Service +* @createDate 2024-07-04 10:21:21 +*/ +public interface IProcessMarketStandardReleaseService extends IService { + + void startProcess(ProcessInfoVO processInfoVO); + + void saveToDraft(ProcessInfoVO processInfoVO); + + void approveTask(ProcessInfoVO processInfoVO, boolean b); + + ProcessInfoVO getHandleData(String taskId); + + void submit(ProcessInfoVO processInfoVO); + + String generate(ProcessMarketStandardRelease scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception; + + void flowListener(DelegateExecution delegateExecution); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java new file mode 100644 index 00000000..ab7d2779 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java @@ -0,0 +1,257 @@ +package com.jero.modules.activiti.process.ms.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.enums.ProcessType; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; +import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease; +import com.jero.modules.activiti.process.ms.mapper.ProcessMarketStandardReleaseMapper; +import com.jero.modules.activiti.process.ms.service.IProcessMarketStandardReleaseService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; +import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; +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.delegate.DelegateExecution; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.*; + +import static com.jero.modules.activiti.common.ActivitiCommon.PASS; + +/** +* @author ThinkBook +* @description 针对表【process_standard_compliance_check】的数据库操作Service实现 +* @createDate 2024-07-04 10:21:21 +*/ +@Slf4j +@Service +public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl + implements IProcessMarketStandardReleaseService { + + @Resource + private ActFlowCommonService actFlowCommonService; + + @Resource + private ProcessNodeLinkService processNodeLinkService; + + @Resource + private TaskService taskService; + + @Resource + private ProcessAllService processAllService; + + @Resource + private RuntimeService runtimeService; + + @Resource + private IProcessHandleService processHandleService; + + @Resource + private ProcessMarketStandardReleaseMapper processMarketStandardReleaseMapper; + + @Resource + private ILawsMarketStandardDetailService lawsMarketStandardDetailService; + + @Override + @Transactional(rollbackFor = JeroBootException.class) + public void startProcess(ProcessInfoVO processInfoVO) { + // 流程Key + String processDefinitionKey = ProcessType.MARKET_STANDARD_PUBLISH.getProcessKey(); + // 流程信息 + BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO(); + // 任务信息 + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + // 人员信息 + Map userInfoMap = processInfoVO.getUserInfoMap(); + // 业务数据 + ProcessMarketStandardRelease businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + // 设置流程变量 + Map actVariables = setVariables(userInfoMap); + // 删除草稿 + actFlowCommonService.getExistDraftAndRemove(processInfoVO.getDraftId()); + // 启动流程 + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables); + + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + String processInstanceId = processInstance.getId(); + businessInfoDTO.setProcessInstanceId(processInstanceId); + processInfo.setProcessInstanceId(processInstanceId); + processInfo.setProcessDefinitionId(processDefinitionId); + processInfo.setProcessType(ProcessTypeEnum.MARKET_STANDARD_PUBLISH.getValue()); + // 第一个节点业务数据处理 + this.startNodeBusProcess(processInfoVO); + // 保存选人信息 + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap); + // 当前用户Id + String userId = UserUtils.getUserId(); + // 获取第一个任务的taskId + String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId); + processTask.setTaskId(taskId); + // 保存第一个节点的草稿 + processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId()); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 自动完成第一个任务 + actFlowCommonService.completeTask(taskId, userId); + // 根据流程实例id更新流程总表 + actFlowCommonService.updateProcessAll(processInfo); + } + + private Map setVariables(Map userInfoMap) { + Map map = new HashMap<>(); + // 人员信息 + userInfoMap.forEach((key, value) -> { + if(Objects.equals("moreUserList",key + "List")){ + map.put(key, value); + map.put(key + "List", Arrays.asList(value.toString().split(","))); + return; + } + map.put(key, value); + }); + return map; + } + + @Override + @Transactional(rollbackFor = JeroBootException.class) + public void saveToDraft(ProcessInfoVO processInfoVO) { + // 流程信息 + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + // 流程类型 + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.NEW_STANDARD_IMPORT.getValue()); + processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId()); + } + + /** + * 第一个节点业务数据处理 + * @param processInfoVO + */ + private void startNodeBusProcess(ProcessInfoVO processInfoVO) { + ProcessMarketStandardRelease businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + save(businessInfoDTO); + } + + @Override + @Transactional(rollbackFor = JeroBootException.class) + public void approveTask(ProcessInfoVO processInfoVO, boolean pass) { + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.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); + // 获取当前流程 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + String processDefinitionId = processInstance.getProcessDefinitionId(); + Map userMap = new HashMap<>(); + Map flowUser; + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + String curUserId; + switch (xmlNodeId) { + + } + // 转办修改流程变量逻辑 + switch (xmlNodeId) { + + + } + runtimeService.setVariable(processInstanceId, PASS, pass); + // 审批节点 + actFlowCommonService.completeTask(taskId, userId); + } + + @Override + public void submit(ProcessInfoVO processInfoVO) { + startProcess(processInfoVO); + } + + @Override + public String generate(ProcessMarketStandardRelease scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception { + // 新增流程主表数据 + this.save(scc); + // 返回主键 + return scc.getId(); + } + + @Override + public void flowListener(DelegateExecution delegateExecution) { + log.info("触发监听"); + String processInstanceId = delegateExecution.getProcessInstanceId(); + LambdaQueryWrapper queryWrapperProcessMarketStandardRelease = new LambdaQueryWrapper<>(); + queryWrapperProcessMarketStandardRelease.eq(ProcessMarketStandardRelease::getProcessInstanceId, processInstanceId); + ProcessMarketStandardRelease processMarketStandardRelease = getOne(queryWrapperProcessMarketStandardRelease,false); + if(Objects.isNull(processMarketStandardRelease)){ + return; + } + // todo 更新业务状态 + } + + @Override + public ProcessInfoVO getHandleData(String taskId) { + if (!actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("任务不存在"); + } + ProcessInfoVO result = new ProcessInfoVO<>(); + // 使用流程引擎根据taskId找到流程实例Id + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + if(!Objects.isNull(process)){ + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessName(process.getPrcName()); + basicProcessInfoDTO.setProcessType(process.getPrcType()); + basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId()); + basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId()); + basicProcessInfoDTO.setProcessDescription(process.getPrcMes()); + basicProcessInfoDTO.setProcessDueDate(process.getDueTime()); + result.setBasicProcessInfoDTO(basicProcessInfoDTO); + } + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessMarketStandardRelease::getProcessInstanceId, processInstanceId); + ProcessMarketStandardRelease data = getOne(lambdaQueryWrapper,false); + if(!Objects.isNull(data)){ + LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); + queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,data.getManifestId()); + queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getId); + List listLawsMarketStandardDetail = lawsMarketStandardDetailService.list(); + if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ + data.setList(listLawsMarketStandardDetail); + } + result.setBusinessInfoDTO(data); + } + return result; + } +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/vo/ProcessMarketStandardReleaseVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/vo/ProcessMarketStandardReleaseVO.java new file mode 100644 index 00000000..9b37b9df --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/vo/ProcessMarketStandardReleaseVO.java @@ -0,0 +1,11 @@ +package com.jero.modules.activiti.process.ms.vo; + + +import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease; +import lombok.Data; + +@Data +public class ProcessMarketStandardReleaseVO { + + ProcessMarketStandardRelease standardInfo; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java index a03ebfa6..568f530c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java @@ -56,8 +56,8 @@ public class ProcessNewStandardImportController extends JeroController save(@Validated @RequestBody ProcessInfoVO processInfoVO) { sccService.saveToDraft(processInfoVO); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index 8fa54c1a..9d5be4e4 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.Translation; import com.jero.common.util.MessageUtils; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; @@ -58,6 +59,26 @@ public class MarketStandardController { return Result.OK(pageList); } + + /** + * 分页列表查询不带权限 + * + * @param marketStandard + * @param pageNo + * @param pageSize + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-分页列表查询不带权限") + @ApiOperation(value = "外部标准库-市场法规清单-分页列表查询不带权限", notes = "外部标准库-市场法规清单-分页列表查询不带权限") + @GetMapping(value = "/queryPageListByOther") + @ApiOperationSupport(order = 1) + public Result> queryPageListByOther(LawsMarketStandard marketStandard, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + IPage pageList = marketStandardService.queryPage(marketStandard, pageNo, pageSize); + return Result.OK(pageList); + } + /** * 查看 * diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index 8a450da1..884020ac 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -101,6 +101,9 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl{