From 88e2014e918b4d4852bc072f6b0db282731bb356 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 14 Nov 2023 09:37:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BC=81=E6=A0=87=E7=A8=BD=E6=9F=A5?= =?UTF-8?q?=E8=AE=A1=E5=88=92):=20=E5=9F=BA=E7=A1=80=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/EsInspectPlanCommon.java | 34 +++ .../EsInspectPlanFlowController.java | 125 ++++++++ .../ProcessEsInspectPlanController.java | 176 +++++++++++ ...ProcessEsInspectPlanOpinionController.java | 192 ++++++++++++ .../entity/ProcessEsInspectPlan.java | 86 ++++++ .../entity/ProcessEsInspectPlanOpinion.java | 34 +++ .../mapper/ProcessEsInspectPlanMapper.java | 23 ++ .../ProcessEsInspectPlanOpinionMapper.java | 14 + .../mapper/xml/ProcessEsInspectPlanMapper.xml | 8 + .../xml/ProcessEsInspectPlanOpinionMapper.xml | 5 + .../service/IEsInspectPlanFlowService.java | 56 ++++ .../IProcessEsInspectPlanOpinionService.java | 75 +++++ .../service/IProcessEsInspectPlanService.java | 86 ++++++ .../impl/EsInspectPlanFlowServiceImpl.java | 279 ++++++++++++++++++ ...rocessEsInspectPlanOpinionServiceImpl.java | 125 ++++++++ .../impl/ProcessEsInspectPlanServiceImpl.java | 136 +++++++++ .../vo/EsInspectPlanFlowPersonVO.java | 17 ++ .../esinspectplan/vo/EsInspectPlanFlowVO.java | 33 +++ .../esinspectplan/vo/FlowRefusalVO.java | 21 ++ 19 files changed, 1525 insertions(+) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlanOpinion.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanOpinionMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanOpinionMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanOpinionService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanOpinionServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowPersonVO.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowVO.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/FlowRefusalVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java new file mode 100644 index 00000000..153abc41 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java @@ -0,0 +1,34 @@ +package com.jero.modules.activiti.process.esinspectplan.common; + +/** + * @ClassName: EsInspectPlanCpmmon + * @Description: + * @Author: yjz + * @Date: 2023-11-09 13:47 + * @Version: 1.0 + **/ +public class EsInspectPlanCommon { + private EsInspectPlanCommon(){ + + } + + /** + * 企标稽查计划key + */ + public static final String KEY = "Process_1dgrvyk"; + + /** + * 企标稽查计划key + */ + public static final String NAME = "企业稽查计划"; + + /** + * 网关判断 + */ + public static final String PASS = "pass"; + + /** + * 会签 + */ + public static final String INVOLVE_LIST = "involveList"; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java new file mode 100644 index 00000000..812aebb6 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java @@ -0,0 +1,125 @@ +package com.jero.modules.activiti.process.esinspectplan.controller; + +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.common.util.SnowflakeUtils; +import com.jero.modules.activiti.entity.ProcessNode; +import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService; +import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; +import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO; +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.context.annotation.Lazy; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ClassName: 企标稽查计划流程 + * @Description: + * @Author: yjz + * @Date: 2023-11-09 11:45 + * @Version: 1.0 + **/ +@Api(tags="企标稽查计划流程") +@RestController +@RequestMapping("/process/esInspectPlanFlow") +@Slf4j +public class EsInspectPlanFlowController { + private final IEsInspectPlanFlowService esInspectPlanFlowService; + + public EsInspectPlanFlowController(@Lazy IEsInspectPlanFlowService esInspectPlanFlowService) { + this.esInspectPlanFlowService = esInspectPlanFlowService; + } + + /** + * 企标稽查计划流程-生成项目id + * @return 项目id + */ + @AutoLog(value = "企标稽查计划流程-生成项目id") + @ApiOperation(value="企标稽查计划流程-生成项目id", notes="企标稽查计划流程-生成项目id") + @GetMapping(value = "/getProjectId") + public String getProjectId() { + return String.valueOf(SnowflakeUtils.snowflake()); + } + + /** + * 企标稽查计划流程-人员信息 + * @return 项目id + */ + @AutoLog(value = "企标稽查计划流程-人员信息") + @ApiOperation(value="企标稽查计划流程-人员信息", notes="企标稽查计划流程-人员信息") + @GetMapping(value = "/queryPersonInfo") + @Translation + public Result> queryPersonInfo(String processDefinitionName, String processInstanceId) { + return Result.OK(esInspectPlanFlowService.queryPersonInfo(processDefinitionName, processInstanceId)); + } + + /** + * 企标稽查计划流程-流程发起 + * @param esInspectPlanFlowVO 企标稽查计划流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-流程发起") + @ApiOperation(value="企标稽查计划流程-流程发起", notes="企标稽查计划流程-流程发起") + @PostMapping(value = "/flowStart") + public Result flowStart(@RequestBody EsInspectPlanFlowVO esInspectPlanFlowVO) { + esInspectPlanFlowService.flowStart(esInspectPlanFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 企标稽查计划流程-办理详情 + * @param projectId 项目id + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-办理详情") + @ApiOperation(value="企标稽查计划流程-办理详情", notes="企标稽查计划流程-办理详情") + @GetMapping(value = "/queryDetailByProjectId") + @Translation + public Result queryDetailByProjectId(String projectId) { + return Result.OK(esInspectPlanFlowService.queryDetailByProjectId(projectId)); + } + + /** + * 企标稽查计划流程-流程审批 + * @param esInspectPlanFlowVO 企标稽查计划流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-流程审批") + @ApiOperation(value="企标稽查计划流程-流程审批", notes="企标稽查计划流程-流程审批") + @PostMapping(value = "/flowApproval") + public Result flowApproval(@RequestBody EsInspectPlanFlowVO esInspectPlanFlowVO) { + esInspectPlanFlowService.flowApproval(esInspectPlanFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 企标稽查计划流程-流程转办 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-流程转办") + @ApiOperation(value="企标稽查计划流程-流程转办", notes="企标稽查计划流程-流程转办") + @GetMapping(value = "/flowTransfer") + public Result flowTransfer(@RequestBody String taskId, String userId) { + esInspectPlanFlowService.flowTransfer(taskId, userId); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 企标稽查计划流程-流程驳回 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-流程驳回") + @ApiOperation(value="企标稽查计划流程-流程驳回", notes="企标稽查计划流程-流程驳回") + @PostMapping(value = "/flowRefusal") + public Result flowRefusal(@RequestBody FlowRefusalVO flowRefusalVO) { + esInspectPlanFlowService.flowRefusal(flowRefusalVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java new file mode 100644 index 00000000..9211c04c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java @@ -0,0 +1,176 @@ +package com.jero.modules.activiti.process.esinspectplan.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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.system.base.controller.JeroController; +import com.jero.common.util.MessageUtils; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + + + /** + * @Description: 企标稽查计划业务表 + * @Author: jero-boot + * @Date: 2023-11-09 + * @Version: V1.0 + */ +@Api(tags="企标稽查计划业务表") +@RestController +@RequestMapping("/process/processEsInspectPlan") +@Slf4j +public class ProcessEsInspectPlanController extends JeroController { + @Autowired + private IProcessEsInspectPlanService processEsInspectPlanService; + + /** + * 分页列表查询 + * + * @param processEsInspectPlan + * @param pageNo + * @param pageSize + * @return + */ + @AutoLog(value = "企标稽查计划业务表-分页列表查询") + @ApiOperation(value="企标稽查计划业务表-分页列表查询", notes="企标稽查计划业务表-分页列表查询") + @GetMapping(value = "/page") + public Result> queryPageList(ProcessEsInspectPlan processEsInspectPlan, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + IPage pageList = processEsInspectPlanService.queryPage(processEsInspectPlan, pageNo, pageSize); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @param processEsInspectPlan + * @return + */ + @AutoLog(value = "企标稽查计划业务表-列表查询") + @ApiOperation(value="企标稽查计划业务表-列表查询", notes="企标稽查计划业务表-列表查询") + @GetMapping(value = "/list") + public Result> queryList(ProcessEsInspectPlan processEsInspectPlan) { + List list = processEsInspectPlanService.queryList(processEsInspectPlan); + return Result.OK(list); + } + + /** + * 添加 + * + * @param processEsInspectPlan + * @return + */ + @AutoLog(value = "企标稽查计划业务表-添加") + @ApiOperation(value="企标稽查计划业务表-添加", notes="企标稽查计划业务表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ProcessEsInspectPlan processEsInspectPlan) { + processEsInspectPlanService.add(processEsInspectPlan); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 编辑 + * + * @param processEsInspectPlan + * @return + */ + @AutoLog(value = "企标稽查计划业务表-编辑") + @ApiOperation(value="企标稽查计划业务表-编辑", notes="企标稽查计划业务表-编辑") + @PostMapping(value = "/edit") + public Result edit(@Validated @RequestBody ProcessEsInspectPlan processEsInspectPlan) { + processEsInspectPlanService.editById(processEsInspectPlan); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 通过id删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查计划业务表-通过id删除") + @ApiOperation(value="企标稽查计划业务表-通过id删除", notes="企标稽查计划业务表-通过id删除") + @PostMapping(value = "/delete") + public Result delete(@RequestBody Map map) { + if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){ + return Result.error("请选择数据!"); + } + processEsInspectPlanService.deleteById(map.get("id")); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查计划业务表-批量删除") + @ApiOperation(value="企标稽查计划业务表-批量删除", notes="企标稽查计划业务表-批量删除") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestBody Map map) { + if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){ + return Result.error("请选择数据!"); + } + this.processEsInspectPlanService.deleteByIds(Arrays.asList(map.get("ids").split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "企标稽查计划业务表-通过id查询") + @ApiOperation(value="企标稽查计划业务表-通过id查询", notes="企标稽查计划业务表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ProcessEsInspectPlan processEsInspectPlan = processEsInspectPlanService.queryById(id); + if(processEsInspectPlan==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(processEsInspectPlan); + } + + /** + * 导出excel + * + * @param request + * @param processEsInspectPlan + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ProcessEsInspectPlan processEsInspectPlan) { + return super.exportXls(request, processEsInspectPlan, ProcessEsInspectPlan.class, "企标稽查计划业务表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importExcel") + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ProcessEsInspectPlan.class); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java new file mode 100644 index 00000000..374b65f2 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java @@ -0,0 +1,192 @@ +package com.jero.modules.activiti.process.esinspectplan.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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.system.base.controller.JeroController; +import com.jero.common.util.MessageUtils; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + + + /** + * @Description: 企标稽查计划业务_意见表 + * @Author: jero-boot + * @Date: 2023-11-13 + * @Version: V1.0 + */ +@Api(tags="企标稽查计划业务_意见表") +@RestController +@RequestMapping("/process/processEsInspectPlanOpinion") +@Slf4j +public class ProcessEsInspectPlanOpinionController extends JeroController { + @Autowired + private IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService; + + /** + * 分页列表查询 + * + * @param processEsInspectPlanOpinion + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-分页列表查询") + @ApiOperation(value="企标稽查计划业务_意见表-分页列表查询", notes="企标稽查计划业务_意见表-分页列表查询") + @GetMapping(value = "/page") + public Result> queryPageList(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + IPage pageList = processEsInspectPlanOpinionService.queryPage(processEsInspectPlanOpinion, pageNo, pageSize); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @param processEsInspectPlanOpinion + * @param req + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-列表查询") + @ApiOperation(value="企标稽查计划业务_意见表-列表查询", notes="企标稽查计划业务_意见表-列表查询") + @GetMapping(value = "/list") + public Result> queryList(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + List list = processEsInspectPlanOpinionService.queryList(processEsInspectPlanOpinion); + return Result.OK(list); + } + + /** + * 添加 + * + * @param processEsInspectPlanOpinion + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-添加") + @ApiOperation(value="企标稽查计划业务_意见表-添加", notes="企标稽查计划业务_意见表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + processEsInspectPlanOpinionService.add(processEsInspectPlanOpinion); + return Result.OK("操作成功!"); + } + + /** + * 企标稽查计划业务_意见表-填写意见 + * + * @param processEsInspectPlanOpinion + * @return + */ + @AutoLog(value = "企标稽查计划业务表-填写意见") + @ApiOperation(value="企标稽查计划业务表-填写意见", notes="企标稽查计划业务表-填写意见") + @PostMapping(value = "/fillInOpinion") + public Result fillInOpinion(@Validated @RequestBody ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + processEsInspectPlanOpinionService.saveOrUpdate(processEsInspectPlanOpinion); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 编辑 + * + * @param processEsInspectPlanOpinion + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-编辑") + @ApiOperation(value="企标稽查计划业务_意见表-编辑", notes="企标稽查计划业务_意见表-编辑") + @PostMapping(value = "/edit") + public Result edit(@Validated @RequestBody ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + processEsInspectPlanOpinionService.editById(processEsInspectPlanOpinion); + return Result.OK("操作成功!"); + } + + /** + * 通过id删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-通过id删除") + @ApiOperation(value="企标稽查计划业务_意见表-通过id删除", notes="企标稽查计划业务_意见表-通过id删除") + @PostMapping(value = "/delete") + public Result delete(@RequestBody Map map) { + if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){ + return Result.error("请选择数据!"); + } + processEsInspectPlanOpinionService.deleteById(map.get("id")); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-批量删除") + @ApiOperation(value="企标稽查计划业务_意见表-批量删除", notes="企标稽查计划业务_意见表-批量删除") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestBody Map map) { + if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){ + return Result.error("请选择数据!"); + } + this.processEsInspectPlanOpinionService.deleteByIds(Arrays.asList(map.get("ids").split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "企标稽查计划业务_意见表-通过id查询") + @ApiOperation(value="企标稽查计划业务_意见表-通过id查询", notes="企标稽查计划业务_意见表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ProcessEsInspectPlanOpinion processEsInspectPlanOpinion = processEsInspectPlanOpinionService.queryById(id); + if(processEsInspectPlanOpinion==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(processEsInspectPlanOpinion); + } + + /** + * 导出excel + * + * @param request + * @param processEsInspectPlanOpinion + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + return super.exportXls(request, processEsInspectPlanOpinion, ProcessEsInspectPlanOpinion.class, "企标稽查计划业务_意见表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ProcessEsInspectPlanOpinion.class); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java new file mode 100644 index 00000000..ed228fbf --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java @@ -0,0 +1,86 @@ +package com.jero.modules.activiti.process.esinspectplan.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; +import com.jero.modules.laws.documenttool.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + + +/** + * @Description: 企标稽查计划业务表 + * @Author: jero-boot + * @Date: 2023-11-09 + * @Version: V1.0 + */ +@Data +@TableName("process_es_inspect_plan") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_es_inspect_plan对象", description="企标稽查计划业务表") +public class ProcessEsInspectPlan extends BaseEntity { + /**项目id*/ + @Excel(name = "项目id", width = 15) + @ApiModelProperty(value = "项目id") + private String projectId; + /**稽查依据标准号*/ + @Excel(name = "稽查依据标准号", width = 15) + @ApiModelProperty(value = "稽查依据标准号") + private String inspectNo; + /**稽查依据标准名称*/ + @Excel(name = "稽查依据标准名称", width = 15) + @ApiModelProperty(value = "稽查依据标准名称") + private String inspectName; + /**计划稽查对象*/ + @Excel(name = "计划稽查对象", width = 15) + @ApiModelProperty(value = "计划稽查对象") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + private String inspectObject; + /**主责标准化工作组*/ + @Excel(name = "主责标准化工作组", width = 15) + @ApiModelProperty(value = "主责标准化工作组") + @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") + private String standardizationWorkGroup; + /**所属部门*/ + @Excel(name = "所属部门", width = 15) + @ApiModelProperty(value = "所属部门") + @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") + private String belongDept; + /**计划稽查日期*/ + @Excel(name = "计划稽查日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "计划稽查日期") + private Date planInspectDate; + /**稽查负责人*/ + @Excel(name = "稽查负责人", width = 15) + @ApiModelProperty(value = "稽查负责人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + private String inspectUser; + /**标准化组对接人*/ + @Excel(name = "标准化组对接人", width = 15) + @ApiModelProperty(value = "标准化组对接人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + private String standardizationDockingUser; + /**征求意见对象*/ + @Excel(name = "征求意见对象", width = 15) + @ApiModelProperty(value = "征求意见对象") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + private String objectOfConsultation; + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private String remarks; + /**意见*/ + @Excel(name = "意见", width = 15) + @ApiModelProperty(value = "意见") + private String opinion; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlanOpinion.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlanOpinion.java new file mode 100644 index 00000000..a4ac8495 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlanOpinion.java @@ -0,0 +1,34 @@ +package com.jero.modules.activiti.process.esinspectplan.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jero.modules.laws.documenttool.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + + +/** + * @Description: 企标稽查计划业务_意见表 + * @Author: jero-boot + * @Date: 2023-11-13 + * @Version: V1.0 + */ +@Data +@TableName("process_es_inspect_plan_opinion") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_es_inspect_plan_opinion对象", description="企标稽查计划业务_意见表") +public class ProcessEsInspectPlanOpinion extends BaseEntity { + private static final long serialVersionUID = 1L; + /**企标稽查计划业务表Id*/ + @Excel(name = "企标稽查计划业务表Id", width = 15) + @ApiModelProperty(value = "企标稽查计划业务表Id") + private java.lang.String inspectPlanId; + /**意见*/ + @Excel(name = "意见", width = 15) + @ApiModelProperty(value = "意见") + private java.lang.String opinion; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanMapper.java new file mode 100644 index 00000000..e5397614 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanMapper.java @@ -0,0 +1,23 @@ +package com.jero.modules.activiti.process.esinspectplan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @Description: 企标稽查计划业务表 + * @Author: jero-boot + * @Date: 2023-11-09 + * @Version: V1.0 + */ +public interface ProcessEsInspectPlanMapper extends BaseMapper { + + /** + * 根据流程实例id查询流程变量 + * @param instanceId + * @return + */ + Map findActRuVariableByInstanceId(@Param("instanceId") String instanceId, @Param("key") String key); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanOpinionMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanOpinionMapper.java new file mode 100644 index 00000000..e8979f20 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/ProcessEsInspectPlanOpinionMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.activiti.process.esinspectplan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; + +/** + * @Description: 企标稽查计划业务_意见表 + * @Author: jero-boot + * @Date: 2023-11-13 + * @Version: V1.0 + */ +public interface ProcessEsInspectPlanOpinionMapper extends BaseMapper { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanMapper.xml new file mode 100644 index 00000000..3c8a6340 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanOpinionMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanOpinionMapper.xml new file mode 100644 index 00000000..35181b8e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/mapper/xml/ProcessEsInspectPlanOpinionMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java new file mode 100644 index 00000000..a2dcd9c6 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java @@ -0,0 +1,56 @@ +package com.jero.modules.activiti.process.esinspectplan.service; + +import com.jero.modules.activiti.entity.ProcessNode; +import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; +import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO; + +import java.util.List; + +/** + * @InterfaceName: 企标稽查计划流程 + * @Description: + * @Author: yjz + * @Date: 2023-11-09 11:47 + * @Version: 1.0 + **/ +public interface IEsInspectPlanFlowService { + /** + * 企标稽查计划流程-流程发起 + * @param esInspectPlanFlowVO + */ + void flowStart(EsInspectPlanFlowVO esInspectPlanFlowVO); + + /** + * 企标稽查计划流程-办理详情 + * @param projectId + * @return + */ + EsInspectPlanFlowVO queryDetailByProjectId(String projectId); + + /** + * 企标稽查计划流程-人员信息 + * @return + */ + List queryPersonInfo(String processDefinitionName, String processInstanceId); + + /** + * 企标稽查计划流程-流程审批 + * @param esInspectPlanFlowVO + */ + void flowApproval(EsInspectPlanFlowVO esInspectPlanFlowVO); + + /** + * 企标稽查计划流程-流程转办 + * + * @param taskId + * @param userId + */ + void flowTransfer(String taskId, String userId); + + /** + * 企标稽查计划流程-流程驳回 + * + * @param flowRefusalVO + */ + void flowRefusal(FlowRefusalVO flowRefusalVO); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanOpinionService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanOpinionService.java new file mode 100644 index 00000000..4f668d15 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanOpinionService.java @@ -0,0 +1,75 @@ +package com.jero.modules.activiti.process.esinspectplan.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; + +import java.util.List; + +/** + * @Description: 企标稽查计划业务_意见表 + * @Author: jero-boot + * @Date: 2023-11-13 + * @Version: V1.0 + */ +public interface IProcessEsInspectPlanOpinionService extends IService { + + /** + * 分页查询 + * + * @param processEsInspectPlanOpinion + * @param pageNo + * @param pageSize + * @return + */ + IPage queryPage(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion, Integer pageNo, Integer pageSize); + + /** + * 列表查询 + * + * @param processEsInspectPlanOpinion + * @return + */ + List queryList(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion); + + /** + * 保存 + * + * @param processEsInspectPlanOpinion + * @return + */ + void add(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion); + + /** + * 更新 + * + * @param processEsInspectPlanOpinion + * @return + */ + void editById(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProcessEsInspectPlanOpinion queryById(String id); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanService.java new file mode 100644 index 00000000..e4015f82 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IProcessEsInspectPlanService.java @@ -0,0 +1,86 @@ +package com.jero.modules.activiti.process.esinspectplan.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 企标稽查计划业务表 + * @Author: jero-boot + * @Date: 2023-11-09 + * @Version: V1.0 + */ +public interface IProcessEsInspectPlanService extends IService { + + /** + * 分页查询 + * + * @param processEsInspectPlan + * @param pageNo + * @param pageSize + * @param req + * @return + */ + IPage queryPage(ProcessEsInspectPlan processEsInspectPlan, Integer pageNo, Integer pageSize); + + /** + * 列表查询 + * + * @param processEsInspectPlan + * @param req + * @return + */ + List queryList(ProcessEsInspectPlan processEsInspectPlan); + + /** + * 保存 + * + * @param processEsInspectPlan + * @return + */ + void add(ProcessEsInspectPlan processEsInspectPlan); + + /** + * 更新 + * + * @param processEsInspectPlan + * @return + */ + void editById(ProcessEsInspectPlan processEsInspectPlan); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProcessEsInspectPlan queryById(String id); + + /** + * 通过流程实例id和参数名查询流程变量 + * + * @param instanceId + * @param key + * @return + */ + Map findActRuVariableByInstanceId(String instanceId, String key); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java new file mode 100644 index 00000000..223b8681 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -0,0 +1,279 @@ +package com.jero.modules.activiti.process.esinspectplan.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.jero.common.api.dto.message.SendMessageDTO; +import com.jero.common.api.vo.SendMessageAPI; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.entity.ProcessNode; +import com.jero.modules.activiti.entity.ProcessNodeLink; +import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; +import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; +import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.activiti.service.ProcessNodeService; +import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.*; +import org.activiti.engine.repository.ProcessDefinition; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @ClassName: 企标稽查计划流程 + * @Description: + * @Author: yjz + * @Date: 2023-11-09 11:47 + * @Version: 1.0 + **/ +@Slf4j +@Transactional(rollbackFor = RuntimeException.class) +@Service +public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { + private final ProcessAllService processAllService; + private final ProcessApprovalRecordService processApprovalRecordService; + private final IProcessEsInspectPlanService processEsInspectPlanService; + private final TaskService taskService; + private final RepositoryService repositoryService; + private final ISysUserService sysUserService; + private final ProcessNodeService processNodeService; + private final ProcessNodeLinkService processNodeLinkService; + private final ActFlowCommonService actFlowCommonService; + private final SendMessageAPI sendMessageAPI; + + public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService, + ProcessApprovalRecordService processApprovalRecordService, + IProcessEsInspectPlanService processEsInspectPlanService, + TaskService taskService, + RepositoryService repositoryService, + ISysUserService sysUserService, + ProcessNodeService processNodeService, + ProcessNodeLinkService processNodeLinkService, + ActFlowCommonService actFlowCommonService, + SendMessageAPI sendMessageAPI) { + this.processAllService = processAllService; + this.processApprovalRecordService = processApprovalRecordService; + this.processEsInspectPlanService = processEsInspectPlanService; + this.taskService = taskService; + this.repositoryService = repositoryService; + this.sysUserService = sysUserService; + this.processNodeService = processNodeService; + this.processNodeLinkService = processNodeLinkService; + this.actFlowCommonService = actFlowCommonService; + this.sendMessageAPI = sendMessageAPI; + } + + // ProcessEngine + ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); + // RunTimeService + RuntimeService runtimeService = processEngine.getRuntimeService(); + + @Override + public void flowStart(EsInspectPlanFlowVO esInspectPlanFlowVO) { + // 流程信息 + ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); + // 流程审批信息 + ProcessApprovalRecord processApprovalRecord = esInspectPlanFlowVO.getProcessApprovalRecord(); + // map(参数) + Map map = esInspectPlanFlowVO.getMap(); + + // 根据流程key启动流程 同时 设置审批人员参数 + ProcessInstance processInstance = runtimeService + .startProcessInstanceByKey(EsInspectPlanCommon.KEY, map); + + // 更新流程总表信息 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + processAll.setCreateUserId(loginUser.getId()); + processAllService.update(processAll, + new LambdaUpdateWrapper() + .eq(ProcessAll::getProcessInstanceId, processInstance.getId())); + + // 根据流程实例id查询 + Task task = taskService.createTaskQuery() + .processInstanceId(processInstance.getId()) + .singleResult(); + + // 更新流程审批信息 + processApprovalRecord.setUserId(loginUser.getId()); + processApprovalRecordService.update(processApprovalRecord, + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getProcessInstanceId, processInstance.getId())); + + // 新增流程实例节点关联用户表 + processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId(), listToString(map)); + + // 自动完成第一个节点 + if (task != null) { + taskService.complete(task.getId()); + } + } + + private Map listToString(Map map) { + Map stringObjectHashMap; + stringObjectHashMap = map.entrySet().stream().map(v -> { + if (v.getValue() instanceof List) { + List list = (List)v.getValue(); + v.setValue(String.join(",", list)); + } + return v; + }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + return stringObjectHashMap; + } + + @Override + public EsInspectPlanFlowVO queryDetailByProjectId(String projectId) { + EsInspectPlanFlowVO esInspectPlanFlowVO = new EsInspectPlanFlowVO(); + // 流程信息 + ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() + .eq(ProcessAll::getProjectId, projectId)); + esInspectPlanFlowVO.setProcessAll(processAll); + + // 业务基本信息 + List processEsInspectPlanList = processEsInspectPlanService.list( + new LambdaQueryWrapper() + .eq(ProcessEsInspectPlan::getProjectId, projectId)); + esInspectPlanFlowVO.setProcessEsInspectPlanList(processEsInspectPlanList); + + // 流程审批信息 + ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper() + .eq(ProcessApprovalRecord::getProjectId, projectId)); + esInspectPlanFlowVO.setProcessApprovalRecord(processApprovalRecord); + + return esInspectPlanFlowVO; + } + + @Override + public List queryPersonInfo(String processDefinitionName, String processInstanceId) { + List nodeList = new ArrayList<>(); + // 查询流程定义 + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionName(processDefinitionName) + .latestVersion() + .singleResult(); + if (!Objects.isNull(processDefinition)) { + // 获取流程节点信息 + List processNodeList = processNodeService.list( + new LambdaQueryWrapper() + .eq(ProcessNode::getProcessDefinitionId, processDefinition.getId()) + .orderByAsc(ProcessNode::getSort)); + + // 查询流程实例关联用户 + for (ProcessNode processNode : processNodeList) { + String userIds = ""; + if (StringUtils.isNotBlank(processInstanceId)) { + ListprocessNodeLinkList = processNodeLinkService.list( + new LambdaQueryWrapper() + .eq(ProcessNodeLink::getProcessDefinitionId, processDefinition.getId()) + .eq(ProcessNodeLink::getProcessNodeId, processNode.getId()) + .eq(ProcessNodeLink::getProcessInstanceId, processInstanceId)); + if (!processNodeLinkList.isEmpty()){ + List userIdList = processNodeLinkList.stream().map(ProcessNodeLink::getUserId).collect(Collectors.toList()); + List sysUserList = sysUserService.listByIds(userIdList); + userIds = sysUserList.stream().map(SysUser::getId).collect(Collectors.joining(",")); + } + } + processNode.setLinkUserIds(userIds); + nodeList.add(processNode); + } + } + return nodeList; + } + + @Override + public void flowApproval(EsInspectPlanFlowVO esInspectPlanFlowVO) { + // 流程信息 + ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); + // 流程审批信息 + ProcessApprovalRecord processApprovalRecord = esInspectPlanFlowVO.getProcessApprovalRecord(); + // map(参数) + Map map = esInspectPlanFlowVO.getMap(); + + // 更新流程审批信息 + processApprovalRecordService.update(processApprovalRecord, + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId())); + + Task task = taskService.createTaskQuery().taskId(processAll.getTaskId()).singleResult(); + if (task!= null) { + // 完成任务 + taskService.complete(task.getId(), map); + + // 查询当前流程实例的任务数量 + long activeTaskCount = taskService.createTaskQuery() + .processInstanceId(processAll.getProcessInstanceId()) + .active() + .count(); + if (activeTaskCount == 0){ + // 任务结束 + processApprovalRecordService.update(new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getProcessInstanceId, processAll.getProcessInstanceId()) + .set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue())); + + // 抄送消息 通过hiwork 给稽查联络人抄送消息 + List processNodeList = queryPersonInfo(EsInspectPlanCommon.NAME, processAll.getProcessInstanceId()); + if (!processNodeList.isEmpty()){ + Optional first = processNodeList.stream().findFirst(); + first.ifPresent(v -> { + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.LAWS_PROBLEM_LIBRARY); + sendMessageDTO.setToUserId(v.getLinkUserIds()); + Map sendMap = new HashMap<>(); + sendMap.put("standardNumber", ""); + sendMap.put("standardName", ""); + sendMap.put("title", ""); + sendMessageDTO.setMap(sendMap); + sendMessageAPI.sendMessage(sendMessageDTO); + }); + } + } + } + } + + @Override + public void flowTransfer(String taskId, String userId) { + // 更新流程审批信息 + processApprovalRecordService.update(new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, taskId) + .eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()) + .set(ProcessApprovalRecord::getTransferBy, userId) + .set(ProcessApprovalRecord::getUserId, userId)); + // 转办 + taskService.setAssignee(taskId, userId); + } + + @Override + public void flowRefusal(FlowRefusalVO flowRefusalVO) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + String taskId = flowRefusalVO.getTaskId(); + Task task = taskService.createTaskQuery() + .processInstanceId(taskId) + .singleResult(); + if (task != null){ + // 更新流程审批信息 + processApprovalRecordService.update(new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, taskId) + .set(ProcessApprovalRecord::getUserId, loginUser.getId())); + // 驳回 + actFlowCommonService.completeTask(taskId, loginUser.getId()); + } + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanOpinionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanOpinionServiceImpl.java new file mode 100644 index 00000000..1c4f37ae --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanOpinionServiceImpl.java @@ -0,0 +1,125 @@ +package com.jero.modules.activiti.process.esinspectplan.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; +import com.jero.modules.activiti.process.esinspectplan.mapper.ProcessEsInspectPlanOpinionMapper; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + + +/** + * @Description: 企标稽查计划业务_意见表 + * @Author: jero-boot + * @Date: 2023-11-13 + * @Version: V1.0 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +public class ProcessEsInspectPlanOpinionServiceImpl extends ServiceImpl implements IProcessEsInspectPlanOpinionService { + + + /** + * 分页查询 + * + * @param processEsInspectPlanOpinion + * @param pageNo + * @param pageSize + * @return + */ + @Override + public IPage queryPage(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getProcessEsInspectPlanOpinionQueryWrapper(processEsInspectPlanOpinion); + Page page = new Page<>(pageNo, pageSize); + return page(page, queryWrapper); + } + + /** + * 列表查询 + * + * @param processEsInspectPlanOpinion + * @return + */ + @Override + public List queryList(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + QueryWrapper queryWrapper = getProcessEsInspectPlanOpinionQueryWrapper(processEsInspectPlanOpinion); + return list(queryWrapper); + } + + @NotNull + private static QueryWrapper getProcessEsInspectPlanOpinionQueryWrapper(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(processEsInspectPlanOpinion.getInspectPlanId()), "opinion", processEsInspectPlanOpinion.getInspectPlanId()); + queryWrapper.orderByDesc("create_time"); + return queryWrapper; + } + + /** + * 保存 + * + * @param processEsInspectPlanOpinion + * @return + */ + @Override + public void add(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + Date now = new Date(); + processEsInspectPlanOpinion.setCreateTime(now); + processEsInspectPlanOpinion.setUpdateTime(now); + save(processEsInspectPlanOpinion); + } + + /** + * 更新 + * + * @param processEsInspectPlanOpinion + * @return + */ + @Override + public void editById(ProcessEsInspectPlanOpinion processEsInspectPlanOpinion) { + Date now = new Date(); + processEsInspectPlanOpinion.setUpdateTime(now); + saveOrUpdate(processEsInspectPlanOpinion); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProcessEsInspectPlanOpinion queryById(String id) { + return getById(id); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java new file mode 100644 index 00000000..72832424 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java @@ -0,0 +1,136 @@ +package com.jero.modules.activiti.process.esinspectplan.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import com.jero.modules.activiti.process.esinspectplan.mapper.ProcessEsInspectPlanMapper; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.Map; + + +/** + * @Description: 企标稽查计划业务表 + * @Author: jero-boot + * @Date: 2023-11-09 + * @Version: V1.0 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +public class ProcessEsInspectPlanServiceImpl extends ServiceImpl implements IProcessEsInspectPlanService { + + private final ProcessEsInspectPlanMapper processEsInspectPlanMapper; + + public ProcessEsInspectPlanServiceImpl(ProcessEsInspectPlanMapper processEsInspectPlanMapper) { + this.processEsInspectPlanMapper = processEsInspectPlanMapper; + } + + /** + * 分页查询 + * + * @param processEsInspectPlan + * @param pageNo + * @param pageSize + * @return + */ + @Override + public IPage queryPage(ProcessEsInspectPlan processEsInspectPlan, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan); + Page page = new Page<>(pageNo, pageSize); + return page(page, queryWrapper); + } + + /** + * 列表查询 + * + * @param processEsInspectPlan + * @return + */ + @Override + public List queryList(ProcessEsInspectPlan processEsInspectPlan) { + QueryWrapper queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan); + return list(queryWrapper); + } + + @NotNull + private static QueryWrapper getProcessEsInspectPlanQueryWrapper(ProcessEsInspectPlan processEsInspectPlan) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(processEsInspectPlan.getProjectId()), "project_id", processEsInspectPlan.getProjectId()); + queryWrapper.orderByDesc("create_time"); + return queryWrapper; + } + + /** + * 保存 + * + * @param processEsInspectPlan + * @return + */ + @Override + public void add(ProcessEsInspectPlan processEsInspectPlan) { + Date now = new Date(); + processEsInspectPlan.setCreateTime(now); + processEsInspectPlan.setUpdateTime(now); + save(processEsInspectPlan); + } + + /** + * 更新 + * + * @param processEsInspectPlan + * @return + */ + @Override + public void editById(ProcessEsInspectPlan processEsInspectPlan) { + Date now = new Date(); + processEsInspectPlan.setUpdateTime(now); + saveOrUpdate(processEsInspectPlan); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProcessEsInspectPlan queryById(String id) { + return getById(id); + } + + @Override + public Map findActRuVariableByInstanceId(String instanceId, String key) { + return processEsInspectPlanMapper.findActRuVariableByInstanceId(instanceId, key); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowPersonVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowPersonVO.java new file mode 100644 index 00000000..5497e183 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowPersonVO.java @@ -0,0 +1,17 @@ +package com.jero.modules.activiti.process.esinspectplan.vo; + +import lombok.Data; + +/** + * @ClassName: EsInspectPlanFlowPersonVO + * @Description: + * @Author: yjz + * @Date: 2023-11-13 14:41 + * @Version: 1.0 + **/ +@Data +public class EsInspectPlanFlowPersonVO { + private String key; + private String value; + private String description; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowVO.java new file mode 100644 index 00000000..8c0da383 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/EsInspectPlanFlowVO.java @@ -0,0 +1,33 @@ +package com.jero.modules.activiti.process.esinspectplan.vo; + +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: 企标稽查计划流程VO + * @Description: + * @Author: yjz + * @Date: 2023-11-09 11:51 + * @Version: 1.0 + **/ +@Data +public class EsInspectPlanFlowVO { + /**流程信息*/ + @ApiModelProperty(value = "流程信息") + private ProcessAll processAll; + /**流程审批信息*/ + @ApiModelProperty(value = "流程审批信息") + private ProcessApprovalRecord processApprovalRecord; + /**业务基本信息*/ + @ApiModelProperty(value = "业务基本信息") + private List processEsInspectPlanList; + /**map*/ + @ApiModelProperty(value = "map") + private Map map; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/FlowRefusalVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/FlowRefusalVO.java new file mode 100644 index 00000000..63f0bd94 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/vo/FlowRefusalVO.java @@ -0,0 +1,21 @@ +package com.jero.modules.activiti.process.esinspectplan.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName: FlowRefusalVO + * @Description: + * @Author: yjz + * @Date: 2023-11-13 18:28 + * @Version: 1.0 + **/ +@Data +public class FlowRefusalVO { + /**任务id*/ + @ApiModelProperty(value = "任务id") + private String taskId; + /**备注*/ + @ApiModelProperty(value = "备注") + private String commitText; +}