待办中心-集成法规技术评估、法规意见收集流程。

法规评估待办、已办、已发查询列表接口开发。
This commit is contained in:
wangzhijiang
2022-10-21 11:21:40 +08:00
parent 41cfeb27d0
commit c10e5eaad0
8 changed files with 263 additions and 21 deletions
@@ -2,6 +2,7 @@ package com.jero.modules.lawsOpinionGather.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.MessageTypeEnum;
@@ -28,6 +29,10 @@ import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -68,6 +73,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl<LawsOpinionGathe
private ILawsOpinionAssessmentResultEOService lawsOpinionAssessmentResultEOService;
@Autowired
private WorkFlowFeignClient workFlowFeignClient;
@Autowired
private IProcessInfoEOService processInfoEOService;
/**
* 保存
@@ -127,6 +134,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl<LawsOpinionGathe
QueryWrapper deleteWrapper = new QueryWrapper();
deleteWrapper.in("laws_opinion_gather_id",ids);
this.lawsOpinionAssessmentResultEOService.remove(deleteWrapper);
this.processInfoEOService.deleteByIds(actiProcInstIdList);
}else {
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
throw new JeroBootException("删除失败,请联系管理员!");
@@ -330,6 +339,12 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl<LawsOpinionGathe
lawsOpinionGatherEO.setGatherResult(GatherResultEnum.COMPLETED.getValue());
});
this.updateBatchById(lawsOpinionGatherEOList);
LambdaUpdateWrapper<ProcessInfoEO> processInfoUpdateWrap = new LambdaUpdateWrapper<>();
processInfoUpdateWrap.set(ProcessInfoEO::getStatus, TodoCenterStatusEnum.COMPLETED.getValue());
processInfoUpdateWrap.in(ProcessInfoEO::getId,actiProcInstIdList);
processInfoUpdateWrap.eq(ProcessInfoEO::getFlowType, FlowTypeEnum.FGYJSJLC.getValue());
this.processInfoEOService.update(processInfoUpdateWrap);
}
}
return new Result<>().success("手动结束成功!");
@@ -2,6 +2,7 @@ package com.jero.modules.lawsTechnologyEvaluation.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
@@ -32,6 +33,10 @@ import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
@@ -95,6 +100,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
private ILawsTechnologyEvaluationComplianceResultEOService lawsTechnologyEvaluationComplianceResultEOService;
@Autowired
private WorkFlowFeignClient workFlowFeignClient;
@Autowired
private IProcessInfoEOService processInfoEOService;
/**
* 保存
@@ -154,7 +161,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
List<LawsTechnologyEvaluationFlowDetailEO> lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper);
if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){
String prcIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
List<String> actiProcInstIdList = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.toList());
String prcIds = actiProcInstIdList.stream().collect(Collectors.joining(","));
Result<String> result = this.workFlowFeignClient.deleteProcessInstanceByPrcIds(prcIds);
if(result.getCode().equals(CommonConstant.SC_OK_200)){
removeByIds(ids);
@@ -168,6 +176,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
this.lawsTechnologyEvaluationResultEOService.remove(deleteWrapper);
this.lawsTechnologyEvaluationComplianceResultEOService.remove(deleteWrapper);
this.processInfoEOService.deleteByIds(actiProcInstIdList);
}else {
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
throw new JeroBootException("删除失败,请联系管理员!");
@@ -683,13 +693,20 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
List<LawsTechnologyEvaluationFlowDetailEO> lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper);
if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){
String actiProcInstIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
List<String> actiProcInstIdList = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.toList());
String actiProcInstIds = actiProcInstIdList.stream().collect(Collectors.joining(","));
Result<String> result = this.workFlowFeignClient.completeLawsTechnologyEvaluationTaskByPids(actiProcInstIds);
if(result.getCode().equals(CommonConstant.SC_OK_200)){
lawsTechnologyEvaluationEOList.forEach(lawsTechnologyEvaluationEO -> {
lawsTechnologyEvaluationEO.setFlowStatus(GatherResultEnum.COMPLETED.getValue());
});
this.updateBatchById(lawsTechnologyEvaluationEOList);
LambdaUpdateWrapper<ProcessInfoEO> processInfoUpdateWrap = new LambdaUpdateWrapper<>();
processInfoUpdateWrap.set(ProcessInfoEO::getStatus, TodoCenterStatusEnum.COMPLETED.getValue());
processInfoUpdateWrap.in(ProcessInfoEO::getId,actiProcInstIdList);
processInfoUpdateWrap.eq(ProcessInfoEO::getFlowType, FlowTypeEnum.FGJSPG.getValue());
this.processInfoEOService.update(processInfoUpdateWrap);
}
}
}
@@ -0,0 +1,50 @@
package com.jero.modules.todoCenter.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@Api(tags="待办中心-法规评估")
@RestController
@RequestMapping("/todoCenter/lawsAssess")
@Slf4j
public class LawsAssessTodoCenterController {
@Autowired
private IProcessInfoEOService processInfoEOService;
@AutoLog(value = "分页查询-待办任务列表")
@ApiOperation(value="分页查询-待办任务列表", notes="分页查询-待办任务列表")
@GetMapping(value = "/todoTaskList")
public Result<?> todoTaskList(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.lawsAssessTodoTaskList(params);
return Result.OK(page);
}
@AutoLog(value = "分页查询-已办任务列表")
@ApiOperation(value="分页查询-已办任务列表", notes="分页查询-已办任务列表")
@GetMapping(value = "/doneProcess")
public Result<?> doneProcess(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.lawsAssessDoneProcess(params);
return Result.OK(page);
}
@AutoLog(value = "分页查询-已发任务列表")
@ApiOperation(value="分页查询-已发任务列表", notes="分页查询-已发任务列表")
@GetMapping(value = "/issuedProcess")
public Result<?> issuedProcess(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.lawsAssessIssuedProcess(params);
return Result.OK(page);
}
}
@@ -28,7 +28,7 @@ public class ProjectProcessTodoCenterController {
@ApiOperation(value="分页查询-待办任务列表", notes="分页查询-待办任务列表")
@GetMapping(value = "/todoTaskList")
public Result<?> todoTaskList(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.todoTaskList(params);
IPage page = this.processInfoEOService.projectProcessTodoTaskList(params);
return Result.OK(page);
}
@@ -36,7 +36,7 @@ public class ProjectProcessTodoCenterController {
@ApiOperation(value="分页查询-已办任务列表", notes="分页查询-已办任务列表")
@GetMapping(value = "/doneProcess")
public Result<?> doneProcess(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.doneProcess(params);
IPage page = this.processInfoEOService.projectProcessDoneProcess(params);
return Result.OK(page);
}
@@ -44,7 +44,7 @@ public class ProjectProcessTodoCenterController {
@ApiOperation(value="分页查询-已发任务列表", notes="分页查询-已发任务列表")
@GetMapping(value = "/issuedProcess")
public Result<?> issuedProcess(@RequestParam Map<String,Object> params) {
IPage page = this.processInfoEOService.issuedProcess(params);
IPage page = this.processInfoEOService.projectProcessIssuedProcess(params);
return Result.OK(page);
}
}
@@ -14,8 +14,27 @@ import com.jero.modules.todoCenter.vo.ProcessInfoVO;
* @Version: V1.0
*/
public interface ProcessInfoEOMapper extends BaseMapper<ProcessInfoEO> {
/**
* 查询项目流程分页列表(已办、已发使用)
* @param page
* @param params
* @return
*/
IPage<ProcessInfoVO> queryProjectProcessPageList(IPage page, Map<String, Object> params);
IPage<ProcessInfoVO> queryPageList(IPage page, Map<String, Object> params);
/**+
* 查询项目流程-待办列表
* @param page
* @param params
* @return
*/
IPage<ProcessInfoVO> queryProjectProcessTodoTaskListList(IPage page,Map<String, Object> params);
/**
* 查询法规评估流程分页列表
* @param page
* @param params
* @return
*/
IPage<ProcessInfoVO> queryLawsAssessPageList(IPage page, Map<String, Object> params);
}
@@ -62,7 +62,7 @@
</where>
</sql>
<select id="queryPageList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
<select id="queryProjectProcessPageList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
SELECT
pi.id,
pi.project_library_id,
@@ -205,4 +205,47 @@
</where>
order by temp.end_time asc
</select>
<select id="queryLawsAssessPageList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
SELECT
pi.id,
pi.buss_document_library_id,
bdl.serial_number,
bdl.title,
pi.flow_type,
pi.create_by,
pi.end_time,
pi.STATUS
FROM
process_info pi
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
<where>
pi.flow_type IN
<foreach collection="params.flowTypeList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="params.queryType == 'issuedProcess'">
and pi.create_by = #{params.createBy}
</if>
<if test="params.queryType != 'issuedProcess'">
and (
pi.id IN (
SELECT
pid.process_info_id
FROM
process_info_detail pid
where
pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
)
)
</if>
<if test="params.serialNumber != null and params.serialNumber != ''">
and bdl.serial_number like CONCAT(CONCAT('%',#{params.serialNumber}),'%')
or bdl.title like CONCAT(CONCAT('%',#{params.serialNumber}),'%')
</if>
<if test="params.flowType != null and params.flowType !=''">
and pi.flow_type = #{params.flowType}
</if>
</where>
</select>
</mapper>
@@ -71,29 +71,50 @@ public interface IProcessInfoEOService extends IService<ProcessInfoEO> {
Result<?> processCall(JSONObject jsonObject);
/**
* 待办任务列表
* 项目流程-待办任务列表
* @param params
* @return
*/
IPage todoTaskList(Map<String,Object> params);
IPage projectProcessTodoTaskList(Map<String,Object> params);
/**
* 已办任务列表
* 项目流程-已办任务列表
* @param params
* @return
*/
IPage doneProcess(Map<String, Object> params);
IPage projectProcessDoneProcess(Map<String, Object> params);
/**
* 已发任务列表
* 项目流程-已发任务列表
* @param params
* @return
*/
IPage issuedProcess(Map<String, Object> params);
IPage projectProcessIssuedProcess(Map<String, Object> params);
/**
* 法规清单变更,清除对应待办中心数据。
* @param params
*/
void change(Map<String,Object> params);
/**
* 法规评估-待办任务列表
* @param params
* @return
*/
IPage lawsAssessTodoTaskList(Map<String, Object> params);
/**
* 法规评估-已办任务列表
* @param params
* @return
*/
IPage lawsAssessDoneProcess(Map<String, Object> params);
/**
* 法规评估-已发任务列表
* @param params
* @return
*/
IPage lawsAssessIssuedProcess(Map<String, Object> params);
}
@@ -99,6 +99,10 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
QueryWrapper<ProcessInfoDetailEO> detailRemoveWrap = new QueryWrapper<>();
detailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId,ids);
this.processInfoDetailEOService.remove(detailRemoveWrap);
}
/**
@@ -150,7 +154,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
}
@Override
public IPage todoTaskList(Map<String, Object> params) {
public IPage projectProcessTodoTaskList(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
@@ -174,7 +178,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
}
@Override
public IPage doneProcess(Map<String, Object> params) {
public IPage projectProcessDoneProcess(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
@@ -188,13 +192,13 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
params.put("currentUserId",currentUser.getId());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryPageList(page,params);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessPageList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}
@Override
public IPage issuedProcess(Map<String, Object> params) {
public IPage projectProcessIssuedProcess(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
@@ -208,7 +212,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
params.put("currentUserId",currentUser.getId());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryPageList(page,params);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessPageList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}
@@ -274,14 +278,82 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
List<ProcessInfoEO> processInfoEOList = this.list(processInfoQueryWrap);
if(CollectionUtils.isNotEmpty(processInfoEOList)){
List<String> processInfoIdList = processInfoEOList.stream().map(ProcessInfoEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<ProcessInfoDetailEO> detailRemoveWrap = new QueryWrapper<>();
/*QueryWrapper<ProcessInfoDetailEO> detailRemoveWrap = new QueryWrapper<>();
detailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId,processInfoIdList);
this.processInfoDetailEOService.remove(detailRemoveWrap);
this.processInfoDetailEOService.remove(detailRemoveWrap);*/
this.deleteByIds(processInfoIdList);
}
}
}
@Override
public IPage lawsAssessTodoTaskList(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
params.put("createBy",currentUser.getId());
params.put("queryType","todoProcess");
List<String> flowTypeList = new ArrayList<>();
flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue());
flowTypeList.add(FlowTypeEnum.FGJSPG.getValue());
params.put("flowTypeList",flowTypeList);
params.put("currentUserId",currentUser.getId());
params.put("taskStatus", TaskStatusEnum.NOT_DONE.getValue());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}
@Override
public IPage lawsAssessDoneProcess(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
params.put("createBy",currentUser.getId());
params.put("queryType","doneProcess");
List<String> flowTypeList = new ArrayList<>();
flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue());
flowTypeList.add(FlowTypeEnum.FGJSPG.getValue());
params.put("flowTypeList",flowTypeList);
params.put("currentUserId",currentUser.getId());
params.put("taskStatus", TaskStatusEnum.HAVE_DONE.getValue());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}
@Override
public IPage lawsAssessIssuedProcess(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
String cut = (String) params.get("cut");
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
params.put("createBy",currentUser.getId());
params.put("queryType","issuedProcess");
List<String> flowTypeList = new ArrayList<>();
flowTypeList.add(FlowTypeEnum.FGYJSJLC.getValue());
flowTypeList.add(FlowTypeEnum.FGJSPG.getValue());
params.put("flowTypeList",flowTypeList);
params.put("currentUserId",currentUser.getId());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}
public void setFlowTypeList(List<String> flowTypeList){
flowTypeList.add(FlowTypeEnum.QDQR.getValue());
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
@@ -290,6 +362,11 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
}
/**
* 处理项目流程数据
* @param datas
* @param cut
*/
public void disposeData(List<ProcessInfoVO> datas, String cut){
if(CollectionUtils.isNotEmpty(datas)){
List<String> processInfoIdList = datas.stream().map(ProcessInfoVO::getId).distinct().collect(Collectors.toList());