From 5ff36c58452a6f3d599b38ae53f39d6bda3f93a7 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Mon, 11 Dec 2023 18:47:44 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E9=A1=B9=E7=9B=AE=E5=90=88=E8=A7=84?= =?UTF-8?q?=E8=AF=84=E4=BC=B0=E6=B5=81=E7=A8=8B-=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/enums/ProcessTypeEnum.java | 1 + .../fb/common/ProcessDefinitionKey.java | 2 + .../ProcessProjectAssessController.java | 147 ++++++------------ .../entity/ProcessProjectAssessTermUser.java | 12 +- .../service/ProcessProjectAssessService.java | 96 ++++++++++-- .../vo/ProcessProjectAssessVO.java | 45 ++++++ .../laws/common/util/CurrentUserUtil.java | 9 ++ 7 files changed, 196 insertions(+), 116 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/vo/ProcessProjectAssessVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index 13e30186..da5e460c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -14,6 +14,7 @@ public enum ProcessTypeEnum { FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessHandleServiceImpl"), FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl"), + PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService"), FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl"), 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"), diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/common/ProcessDefinitionKey.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/common/ProcessDefinitionKey.java index 369732d2..b197126d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/common/ProcessDefinitionKey.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/common/ProcessDefinitionKey.java @@ -16,5 +16,7 @@ public class ProcessDefinitionKey { public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程 public static final String FB_STANDARD_COMPLIANCE_ASSESSMENT = "fb-standard-compliance-assessment"; // 法规合规评估流程 + //项目合规评估流程 + public static final String PROJECT_ASSESS = "project-assessment"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/controller/ProcessProjectAssessController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/controller/ProcessProjectAssessController.java index 25ea3563..d9331719 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/controller/ProcessProjectAssessController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/controller/ProcessProjectAssessController.java @@ -1,5 +1,8 @@ package com.jero.modules.activiti.process.projectassess.controller; +import com.jero.common.aspect.annotation.DictPoint; +import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssess; import com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService; import com.jero.common.api.vo.ResultCommon; @@ -10,6 +13,10 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import org.apache.poi.ss.formula.functions.T; import org.springframework.web.bind.annotation.*; import com.jero.modules.system.vo.IdMapBody; import com.jero.modules.system.vo.IdsMapBody; @@ -37,7 +44,7 @@ import javax.annotation.Resource; @Slf4j @Api(tags = "项目合规评估流程表") @RestController -@RequestMapping("ProcessProjectAssess") +@RequestMapping("process/projectAssess") public class ProcessProjectAssessController extends JeroController { /** * 服务对象 @@ -45,116 +52,50 @@ public class ProcessProjectAssessController extends JeroController> queryPageList(ProcessProjectAssess processProjectAssess, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(processProjectAssess, req.getParameterMap()); - Page page = new Page<>(pageNo, pageSize); - IPage pageList = processProjectAssessService.page(page, queryWrapper); - return Result.OK(pageList); + @DictPoint + @GetMapping("/queryProcessInfoVO") + @AutoLog(value = "标准征求意见流程-查询流程信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "draftId", value = "草稿id"), + @ApiImplicitParam(name = "taskId", value = "任务id"), + @ApiImplicitParam(name = "processInstanceId", value = "流程实例id") + }) + @ApiOperation("标准征求意见流程-查询流程信息") + public Result> queryProcessInfoVO(String draftId, String processInstanceId, String taskId){ + ProcessInfoVO processInfoVO = processProjectAssessService.queryProcessInfoVO(draftId, processInstanceId, taskId); + return Result.OK(processInfoVO); } - /** - * 列表查询 - */ - @ApiOperation(value = "项目合规评估流程表-列表查询", notes = "项目合规评估流程表-列表查询") - @GetMapping(value = "/list") - public Result> queryList(ProcessProjectAssess processProjectAssess, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(processProjectAssess, req.getParameterMap()); - List list = processProjectAssessService.list(queryWrapper); - return Result.OK(list); + @AutoLog(value = "标准征求意见流程-发起流程") + @ApiOperation(value = "标准征求意见流程-发起流程", notes = "标准征求意见流程-发起流程") + @PostMapping(value = "/startProcess") + public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processProjectAssessService.startProcess(processInfoVO); + return Result.OK(); } - /** - * 添加 - */ - @AutoLog(value = "项目合规评估流程表-添加") - @ApiOperation(value = "项目合规评估流程表-添加", notes = "项目合规评估流程表-添加") - @PostMapping(value = "/add") - public Result add(@Validated @RequestBody ProcessProjectAssess processProjectAssess) { - processProjectAssessService.add(processProjectAssess); - return Result.OK(ResultCommon.OK); + @AutoLog(value = "标准征求意见流程-同意") + @ApiOperation(value="标准征求意见流程-同意", notes="标准征求意见流程-同意") + @PostMapping("/agree") + public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processProjectAssessService.approveTask(processInfoVO, true); + return Result.OK(); } - /** - * 编辑 - */ - @AutoLog(value = "项目合规评估流程表-编辑") - @ApiOperation(value = "项目合规评估流程表-编辑", notes = "项目合规评估流程表-编辑") - @PostMapping(value = "/edit") - public Result edit(@Validated @RequestBody ProcessProjectAssess processProjectAssess) { - processProjectAssessService.editById(processProjectAssess); - return Result.OK(ResultCommon.EDIT_OK); + @AutoLog(value = "标准征求意见流程-驳回") + @ApiOperation(value="标准征求意见流程-驳回", notes="标准征求意见流程-驳回") + @PostMapping("/reject") + public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processProjectAssessService.approveTask(processInfoVO, false); + return Result.OK(); } - /** - * 通过id删除 - */ - @AutoLog(value = "项目合规评估流程表-通过id删除") - @ApiOperation(value = "项目合规评估流程表-通过id删除", notes = "项目合规评估流程表-通过id删除") - @PostMapping(value = "/delete") - public Result delete(@RequestBody IdMapBody map) { - String id = map.getId(); - if (StringUtils.isBlank(id)) { - return Result.error(ResultCommon.PLEASE_SELECT_DATA); - } - processProjectAssessService.deleteById(id); - return Result.OK(ResultCommon.SUCCESSFULLY_DELETED); - } - - /** - * 批量删除 - */ - @AutoLog(value = "项目合规评估流程表-批量删除") - @ApiOperation(value = "项目合规评估流程表-批量删除", notes = "项目合规评估流程表-批量删除") - @PostMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestBody IdsMapBody map) { - String ids = map.getIds(); - if (StringUtils.isBlank(ids)) { - return Result.error(ResultCommon.PLEASE_SELECT_DATA); - } - List idList = Arrays.asList(map.getIds().split(",")); - this.processProjectAssessService.deleteByIds(idList); - return Result.OK(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK); - } - - /** - * 通过id查询 - */ - @AutoLog(value = "项目合规评估流程表-通过id查询") - @ApiOperation(value = "项目合规评估流程表-通过id查询", notes = "项目合规评估流程表-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name = "id") String id) { - ProcessProjectAssess processProjectAssess = processProjectAssessService.queryById(id); - if (processProjectAssess == null) { - return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); - } - return Result.OK(processProjectAssess); - } - - /** - * 导出excel - */ - @ApiOperation(value = "项目合规评估流程表-导出excel") - @GetMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, ProcessProjectAssess processProjectAssess) { - return super.exportXls(request, processProjectAssess, ProcessProjectAssess.class, "项目合规评估流程表"); - } - - /** - * 通过excel导入数据 - */ - @ApiOperation(value = "项目合规评估流程表-通过excel导入数据") - @PostMapping(value = "/importExcel") - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ProcessProjectAssess.class); + @AutoLog(value = "标准征求意见流程-提交") + @ApiOperation(value="标准征求意见流程-提交", notes="标准征求意见流程-提交") + @PostMapping("/submit") + public Result submit(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processProjectAssessService.submit(processInfoVO); + return Result.OK(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java index c442087a..45d6840c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java @@ -92,10 +92,10 @@ public class ProcessProjectAssessTermUser { private String responsibleUnitLeader; /** - * 子流程id + * 父执行实例流id */ - @ApiModelProperty(value = "子流程id") - private String subProcessId; + @ApiModelProperty(value = "父执行实例流id") + private String parentExecutionId; /** * 模块负责人id @@ -103,6 +103,12 @@ public class ProcessProjectAssessTermUser { @ApiModelProperty(value = "模块负责人id") private String moduleOwner; + /** + * 不涉及原因 + */ + @ApiModelProperty(value = "不涉及原因") + private String notInvolved; + /** * 设计工程师 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java index 1526cbca..14d6fb8d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java @@ -1,7 +1,20 @@ package com.jero.modules.activiti.process.projectassess.service; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.enums.ProcessTypeEnum; +import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey; +import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessLink; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssess; @@ -13,6 +26,16 @@ import com.jero.modules.activiti.process.projectassess.mapper.ProcessProjectAsse */ @Service public class ProcessProjectAssessService extends ServiceImpl { + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private IProcessHandleService processHandleService; + @Resource + private ProcessProjectAssessLinkService processProjectAssessLinkService; + @Resource + private ProcessProjectAssessTermService processProjectAssessTermService; + @Resource + private ProcessProjectAssessTermUserService processProjectAssessTermUserService; public void add(ProcessProjectAssess processProjectAssess) { this.save(processProjectAssess); @@ -22,18 +45,71 @@ public class ProcessProjectAssessService extends ServiceImpl idList) { - for (String id : idList) { - deleteById(id); - } - } - public ProcessProjectAssess queryById(String id) { ProcessProjectAssess processProjectAssess = this.getById(id); return processProjectAssess; } + + public ProcessInfoVO queryProcessInfoVO(String draftId, String processInstanceId, String taskId) { + return new ProcessInfoVO(); + } + + public void startProcess(ProcessInfoVO processInfoVO) { + ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + + ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess(); + this.save(processProjectAssess); + String id = processProjectAssess.getId(); + List processProjectAssessLinkList = businessInfoDTO.getProcessProjectAssessLinkList(); + for (ProcessProjectAssessLink processProjectAssessLink : processProjectAssessLinkList) { + processProjectAssessLink.setAssessmentId(id); + } + processProjectAssessLinkService.saveBatch(processProjectAssessLinkList); + + List processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList(); + for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) { + processProjectAssessTerm.setAssessmentId(id); + } + processProjectAssessTermService.saveBatch(processProjectAssessTermList); + + List saveProcessProjectAssessTermUserList = new ArrayList<>(); + List processProjectAssessTermUserList = businessInfoDTO.getProcessProjectAssessTermUserList(); + for (ProcessProjectAssessTermUser processProjectAssessTermUser : processProjectAssessTermUserList) { + processProjectAssessTermUser.setAssessmentId(id); + String responsibleUnitLeader = processProjectAssessTermUser.getResponsibleUnitLeader(); + String responsibleUnit = processProjectAssessTermUser.getResponsibleUnit(); + if (StringUtils.isBlank(responsibleUnitLeader)||StringUtils.isBlank(responsibleUnit)){ + continue; + } + String[] responsibleUnitLeaderSplit = responsibleUnitLeader.split(","); + String[] responsibleUnitSplit = responsibleUnit.split(","); + for (int i = 0; i < responsibleUnitLeaderSplit.length; i++) { + String responsibleUnitLeaderId = responsibleUnitLeaderSplit[i]; + String responsibleUnitId = responsibleUnitSplit[i]; + ProcessProjectAssessTermUser saveProcessProjectAssessTermUser = new ProcessProjectAssessTermUser(); + + saveProcessProjectAssessTermUser.setAssessmentId(id); + saveProcessProjectAssessTermUser.setTremId(processProjectAssessTermUser.getTremId()); + saveProcessProjectAssessTermUser.setResponsibleUnit(responsibleUnitId); + saveProcessProjectAssessTermUser.setResponsibleUnitLeader(responsibleUnitLeaderId); + saveProcessProjectAssessTermUserList.add(saveProcessProjectAssessTermUser); + } + } + processProjectAssessTermUserService.saveBatch(saveProcessProjectAssessTermUserList); + + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.PROJECT_ASSESS)); // 流程定义id + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_ASSESS.getValue()); // 流程类型 + processHandleService.startProcess(processInfoVO); + + + } + + public void approveTask(ProcessInfoVO processInfoVO, boolean b) { + + } + + public void submit(ProcessInfoVO processInfoVO) { + + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/vo/ProcessProjectAssessVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/vo/ProcessProjectAssessVO.java new file mode 100644 index 00000000..716de67c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/vo/ProcessProjectAssessVO.java @@ -0,0 +1,45 @@ +package com.jero.modules.activiti.process.projectassess.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList; +import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink; +import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssess; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessLink; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; +import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + *项目合规评估流程表VO + *@author liJiaRao + *@date 2023-12-05 16:29 + */ +@ApiModel(description = "项目合规评估流程表VO") +@Data +public class ProcessProjectAssessVO { + /**业务基本信息*/ + @ApiModelProperty(value = "业务基本信息") + private ProcessProjectAssess processProjectAssess; + + /**关联标准列表*/ + @ApiModelProperty(value = "关联标准列表") + private List processProjectAssessLinkList; + + /**关联条款列表*/ + @ApiModelProperty(value = "关联条款列表") + private List processProjectAssessTermList; + + /**征求意见列表*/ + @ApiModelProperty(value = "关联标准分派列表") + private List processProjectAssessTermUserList; +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/util/CurrentUserUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/common/util/CurrentUserUtil.java index ddd9b796..cacb9471 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/util/CurrentUserUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/util/CurrentUserUtil.java @@ -70,4 +70,13 @@ public class CurrentUserUtil { return loginUser.getRoleIds(); } + /** + * 获取当前用户 + * @return + */ + public static LoginUser getLoginUser() { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + return loginUser; + } + }