add 项目合规评估流程-发起流程

This commit is contained in:
lijiarao
2023-12-11 18:47:44 +08:00
parent 85bfe3e7d7
commit 5ff36c5845
7 changed files with 196 additions and 116 deletions
@@ -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"),
@@ -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";
}
@@ -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<ProcessProjectAssess, ProcessProjectAssessService> {
/**
* 服务对象
@@ -45,116 +52,50 @@ public class ProcessProjectAssessController extends JeroController<ProcessProjec
@Resource
private ProcessProjectAssessService processProjectAssessService;
/**
* 分页列表查询
*/
@ApiOperation(value = "项目合规评估流程表-分页列表查询", notes = "项目合规评估流程表-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<ProcessProjectAssess>> queryPageList(ProcessProjectAssess processProjectAssess,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessProjectAssess> queryWrapper = QueryGenerator.initQueryWrapper(processProjectAssess, req.getParameterMap());
Page<ProcessProjectAssess> page = new Page<>(pageNo, pageSize);
IPage<ProcessProjectAssess> 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<ProcessInfoVO<ProcessProjectAssessVO>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId){
ProcessInfoVO<ProcessProjectAssessVO> processInfoVO = processProjectAssessService.queryProcessInfoVO(draftId, processInstanceId, taskId);
return Result.OK(processInfoVO);
}
/**
* 列表查询
*/
@ApiOperation(value = "项目合规评估流程表-列表查询", notes = "项目合规评估流程表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProcessProjectAssess>> queryList(ProcessProjectAssess processProjectAssess,
HttpServletRequest req) {
QueryWrapper<ProcessProjectAssess> queryWrapper = QueryGenerator.initQueryWrapper(processProjectAssess, req.getParameterMap());
List<ProcessProjectAssess> list = processProjectAssessService.list(queryWrapper);
return Result.OK(list);
@AutoLog(value = "标准征求意见流程-发起流程")
@ApiOperation(value = "标准征求意见流程-发起流程", notes = "标准征求意见流程-发起流程")
@PostMapping(value = "/startProcess")
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
processProjectAssessService.startProcess(processInfoVO);
return Result.OK();
}
/**
* 添加
*/
@AutoLog(value = "项目合规评估流程表-添加")
@ApiOperation(value = "项目合规评估流程表-添加", notes = "项目合规评估流程表-添加")
@PostMapping(value = "/add")
public Result<String> add(@Validated @RequestBody ProcessProjectAssess processProjectAssess) {
processProjectAssessService.add(processProjectAssess);
return Result.OK(ResultCommon.OK);
@AutoLog(value = "标准征求意见流程-同意")
@ApiOperation(value="标准征求意见流程-同意", notes="标准征求意见流程-同意")
@PostMapping("/agree")
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
processProjectAssessService.approveTask(processInfoVO, true);
return Result.OK();
}
/**
* 编辑
*/
@AutoLog(value = "项目合规评估流程表-编辑")
@ApiOperation(value = "项目合规评估流程表-编辑", notes = "项目合规评估流程表-编辑")
@PostMapping(value = "/edit")
public Result<String> edit(@Validated @RequestBody ProcessProjectAssess processProjectAssess) {
processProjectAssessService.editById(processProjectAssess);
return Result.OK(ResultCommon.EDIT_OK);
@AutoLog(value = "标准征求意见流程-驳回")
@ApiOperation(value="标准征求意见流程-驳回", notes="标准征求意见流程-驳回")
@PostMapping("/reject")
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
processProjectAssessService.approveTask(processInfoVO, false);
return Result.OK();
}
/**
* 通过id删除
*/
@AutoLog(value = "项目合规评估流程表-通过id删除")
@ApiOperation(value = "项目合规评估流程表-通过id删除", notes = "项目合规评估流程表-通过id删除")
@PostMapping(value = "/delete")
public Result<String> 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<String> deleteBatch(@RequestBody IdsMapBody map) {
String ids = map.getIds();
if (StringUtils.isBlank(ids)) {
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
}
List<String> 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<ProcessProjectAssess> 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<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
processProjectAssessService.submit(processInfoVO);
return Result.OK();
}
}
@@ -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;
/**
* 设计工程师
*/
@@ -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<ProcessProjectAssessMapper, ProcessProjectAssess> {
@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<ProcessProjectAsses
this.updateById(processProjectAssess);
}
public void deleteById(String id) {
this.removeById(id);
}
public void deleteByIds(List<String> idList) {
for (String id : idList) {
deleteById(id);
}
}
public ProcessProjectAssess queryById(String id) {
ProcessProjectAssess processProjectAssess = this.getById(id);
return processProjectAssess;
}
public ProcessInfoVO<ProcessProjectAssessVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
return new ProcessInfoVO<ProcessProjectAssessVO>();
}
public void startProcess(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess();
this.save(processProjectAssess);
String id = processProjectAssess.getId();
List<ProcessProjectAssessLink> processProjectAssessLinkList = businessInfoDTO.getProcessProjectAssessLinkList();
for (ProcessProjectAssessLink processProjectAssessLink : processProjectAssessLinkList) {
processProjectAssessLink.setAssessmentId(id);
}
processProjectAssessLinkService.saveBatch(processProjectAssessLinkList);
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
processProjectAssessTerm.setAssessmentId(id);
}
processProjectAssessTermService.saveBatch(processProjectAssessTermList);
List<ProcessProjectAssessTermUser> saveProcessProjectAssessTermUserList = new ArrayList<>();
List<ProcessProjectAssessTermUser> 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<ProcessProjectAssessVO> processInfoVO, boolean b) {
}
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
}
}
@@ -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<ProcessProjectAssessLink> processProjectAssessLinkList;
/**关联条款列表*/
@ApiModelProperty(value = "关联条款列表")
private List<ProcessProjectAssessTerm> processProjectAssessTermList;
/**征求意见列表*/
@ApiModelProperty(value = "关联标准分派列表")
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
}
@@ -70,4 +70,13 @@ public class CurrentUserUtil {
return loginUser.getRoleIds();
}
/**
* 获取当前用户
* @return
*/
public static LoginUser getLoginUser() {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
return loginUser;
}
}