From cb913cf0370ce15191c58d81072ee8b90bf256b3 Mon Sep 17 00:00:00 2001 From: zer0Black Date: Mon, 17 Apr 2023 14:51:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=BC=95=E5=85=A5new=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TaskController.java | 40 ++--- .../task/TodoTaskController.java | 162 ++---------------- .../wkflow/business_main/entity/BusMes.java | 22 +++ .../business_main/entity/BusProcessNew.java | 87 ++++++++++ .../mapper/BusProcessNewMapper.java | 29 ++++ .../service/IBusProcessNewService.java | 32 ++++ .../impl/BusProcessNewServiceImpl.java | 71 ++++++++ .../resources/mapper/BusProcessNameMapper.xml | 27 +++ .../resources/mapper/BusProcessNewMapper.xml | 30 ++++ 9 files changed, 327 insertions(+), 173 deletions(-) create mode 100644 report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusMes.java create mode 100644 report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusProcessNew.java create mode 100644 report-activity/src/main/java/com/adc/da/wkflow/business_main/mapper/BusProcessNewMapper.java create mode 100644 report-activity/src/main/java/com/adc/da/wkflow/business_main/service/IBusProcessNewService.java create mode 100644 report-activity/src/main/java/com/adc/da/wkflow/business_main/service/impl/BusProcessNewServiceImpl.java create mode 100644 report-activity/src/main/resources/mapper/BusProcessNameMapper.xml create mode 100644 report-activity/src/main/resources/mapper/BusProcessNewMapper.xml diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TaskController.java b/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TaskController.java index 96f0246..0a2f243 100644 --- a/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TaskController.java +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TaskController.java @@ -1,15 +1,14 @@ package com.adc.da.wkflow.business_activiti.task; +import com.adc.da.sys.entity.UserEO; import com.adc.da.sys.service.UserEOServiceImpl; import com.adc.da.sys.service.iservice.IUserEoService; +import com.adc.da.wkflow.business_main.service.IBusProcessNewService; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.tmsps.fk.common.util.ChkUtil; import com.adc.da.wkflow.business_main.entity.*; -import com.adc.da.wkflow.business_main.service.IBusProcessEntrustService; import com.adc.da.wkflow.business_main.service.IBusProcessNameService; -import com.adc.da.wkflow.business_main.service.IBusProcessNewService; -import com.adc.da.wkflow.business_main.service.IDatasService; import com.adc.da.wkflow.util.activiti.ActivitiTools; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -37,19 +36,15 @@ public class TaskController { @Autowired private HistoryService historyService; - @Autowired - private JdbcTemplate jt; + @Autowired IUserEoService userEoService; @Autowired private IBusProcessNameService iBusProcessNameService; + @Autowired private IBusProcessNewService iBusProcessNewService; - @Autowired - private IBusProcessEntrustService iBusProcessEntrustService; - @Autowired - private IDatasService iDatasService; @ApiOperation(value = "流程实例明细列表") @ApiImplicitParam(name = "prcNum", value = "流程实例id") @@ -74,25 +69,26 @@ public class TaskController { List list2 = historicTaskInstanceQuery.list(); List> list = ActivitiTools.turnHistoricTaskInstance(list2); for (Map historicTaskInstance : list) { - + // 获取办理的历史信息 if(ChkUtil.isNull(historicTaskInstance.get("assignee"))) { String taskId = historicTaskInstance.get("id").toString(); - QueryWrapper queryWrapper1 = new QueryWrapper(); - queryWrapper1.eq("TASK_ID",taskId); - BusProcessNew one1 = iBusProcessNewService.getOne(queryWrapper1); - if(one1!=null){ - ResponseMessage assignee = userEoService.getUserById(one1.getUserId()); - if(assignee.getData()!=null){ - historicTaskInstance.put("assignee", assignee.getData().getUname()); - historicTaskInstance.put("assigneeId", assignee.getData().getUsid()); + QueryWrapper processNewQueryWrapper = new QueryWrapper(); + processNewQueryWrapper.eq("TASK_ID",taskId); + BusProcessNew processNew = iBusProcessNewService.getOne(processNewQueryWrapper); + + if(processNew!=null){ + UserEO assignee = userEoService.getUserById(processNew.getUserId()); + if(assignee != null){ + historicTaskInstance.put("assignee", assignee.getUsname()); + historicTaskInstance.put("assigneeId", assignee.getUsid()); } } }else{ - ResponseMessage assignee = userEoService.getUserById(historicTaskInstance.get("assignee").toString()); + UserEO assignee = userEoService.getUserById(historicTaskInstance.get("assignee").toString()); - if(assignee.getData()!=null){ - historicTaskInstance.put("assignee", assignee.getData().getUname()); - historicTaskInstance.put("assigneeId", assignee.getData().getUsid()); + if(assignee != null){ + historicTaskInstance.put("assignee", assignee.getUsname()); + historicTaskInstance.put("assigneeId", assignee.getUsid()); historicTaskInstance.put("orgName",assignee.getData().getOrgName()); QueryWrapper queryWrapper2 = new QueryWrapper(); queryWrapper2.eq("TASK_ID",historicTaskInstance.get("id")); diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TodoTaskController.java b/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TodoTaskController.java index 1f0df88..578ad2e 100644 --- a/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TodoTaskController.java +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_activiti/task/TodoTaskController.java @@ -2,6 +2,7 @@ package com.adc.da.wkflow.business_activiti.task; import com.adc.da.sys.service.iservice.IUserEoService; import com.adc.da.sys.vo.UserVO; +import com.adc.da.util.exception.AdcDaBaseException; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -14,12 +15,8 @@ import com.tmsps.fk.common.wrapper.WrapMapper; import com.tmsps.fk.common.wrapper.Wrapper; import com.adc.da.wkflow.business_activiti.dto.*; import com.adc.da.wkflow.business_activiti.service.TaskTodoService; -import com.adc.da.wkflow.business_auth.AdmissionArgsService; -import com.adc.da.wkflow.business_auth.UserInfoService; import com.adc.da.wkflow.business_main.entity.*; import com.adc.da.wkflow.business_main.service.*; -import com.adc.da.wkflow.business_wkflow.form.dto.FormSubmitDto; -import com.adc.da.wkflow.business_wkflow.form.service.FormValsService; import com.adc.da.wkflow.enums.SubmitStatusEnum; import com.adc.da.wkflow.util.activiti.ActivitiTools; import com.adc.da.wkflow.util.date.DateTools; @@ -83,21 +80,8 @@ public class TodoTaskController extends BaseAction { private IBusProcessEntrustService iBusProcessEntrustService; @Autowired - IUserEoService userEoService; + private IUserEoService userEoService; - @Autowired - private INodeUserInfoService nodeUserInfoService; - - @Autowired - private IDatasService datasService; - - @Autowired - private UserInfoService userInfoService; - - @Autowired - private AdmissionArgsService admissionArgsService; - @Autowired - private IFlowRelInfoService flowRelInfoService; @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @@ -161,29 +145,15 @@ public class TodoTaskController extends BaseAction { if (taskCommonQuery.getPrcType() != null && !taskCommonQuery.getPrcType().equals("")) { queryWrapper.eq("PRC_TYPE", taskCommonQuery.getPrcType()); } - List searchList = JSONObject.parseArray(taskCommonQuery.getAdvanceSearchVOStr(),TaskAdvanceSearchVO.class); - this.createAdvanceSearchCondition(searchList,queryWrapper); + queryWrapper.lambda().eq(BusProcessName::getSubmitStatus,SubmitStatusEnum.SUBMIT.getValue()); BusProcessName busProcessName = iBusProcessNameService.getOne(queryWrapper); String taskIds = ""; for (Map map : entry.getValue()) { taskIds += map.get("id").toString() + ","; - /*if(StringUtils.isNotEmpty(taskIds)){ - taskIds += map.get("id").toString() + ","; - }else { - taskIds = map.get("id").toString(); - }*/ } if (busProcessName != null) { - /*if(StringUtils.isNotEmpty(taskIds)){ - String[] taskArr = taskIds.split(","); - if(taskArr.length>1){ - busProcessName.setTaskIds(taskIds); - }else { - busProcessName.setTaskId(taskIds); - } - }*/ if(StringUtils.isNotEmpty(taskIds)){ taskIds = taskIds.substring(0,taskIds.length()-1); } @@ -246,83 +216,6 @@ public class TodoTaskController extends BaseAction { } } - //发送邮件 - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("PRC_ID", pId); - BusProcessName name = iBusProcessNameService.getOne(queryWrapper); - String type = name.getPrcType(); - Integer typeInt = 99; - if (StringUtils.isNotEmpty(type)){ - typeInt = Integer.valueOf(type); - } - switch (typeInt){ - case 1: - type = "法规入库及评估流程"; - break; - case 2: - type = "标准法规技术储备评估流程"; - break; - case 3: - type = "项目评估流程"; - break; - case 4: - type = "企标制修订流程"; - break; - case 5: - type = "未符合项跟踪流程"; - break; - case 6: - type = "企标制修订申请流程"; - break; - case 7: - type = "企标废止流程"; - break; - case 8: - type = "企标延期制修订申请流程"; - break; - case 9: - type = "标准采购流程"; - break; - case 10: - type = "工作组会前申请流程"; - break; - case 11: - type = "企标制修订评估流程"; - break; - case 12: - type = "企标勘误流程"; - break; - case 13: - type = "行政管理要求评估流程"; - break; - case 14: - type = "政策入库及评估流程"; - break; - case 15: - type = "标准翻译申请流程"; - break; - case 16: - type = "工作组会后管理流程"; - break; - case 17: - type = "企标备案流程"; - break; - case 18: - type = "标准法规清单发布/更新流程"; - break; - case 19: - type = "企标复审流程"; - break; - default: - break; - } - ResponseMessage userVOResponseMessage = userEoService.getUserById(userId); - UserVO userVO = userVOResponseMessage.getData(); - String userName = ""; - if (null != userVO) { - userName = userVO.getUname(); - } - logger.info("task {} find " + taskId); return WrapMapper.ok("改派成功"); } @@ -333,58 +226,25 @@ public class TodoTaskController extends BaseAction { @PostMapping("/completeTask") public Wrapper completeTaskByUserId(@RequestBody BusMes busMes) { logger.info("!!!!!!!!!!!!!TaskId!!!!!!!!!!!!!!!"+busMes.getTaskId()); - logger.info("!!!!!!!!!!!!!!TaskIds!!!!!!!!!!!!!!"+busMes.getTaskIds()); if (busMes.getTaskId() != null && !busMes.getTaskId().equals("")) { - if (busMes.getTaskId().indexOf(",") > -1) { - String[] taskIdArr = busMes.getTaskId().split(","); -// String taskIdsrc = busMes.getTaskId().substring(0, busMes.getTaskId().length() - 1); - String taskIdsrc = taskIdArr[0]; - busMes.setTaskId(taskIdsrc); - } - logger.info("taskId--> " + busMes.getTaskId()); Task task = taskService.createTaskQuery().taskId(busMes.getTaskId()).singleResult(); if(task!=null){ if (ChkUtil.isNull(task.getAssignee())) { taskService.claim(busMes.getTaskId(), busMes.getUserId()); } + // TODO 存储表单json到对应的 审批历史表中 + FormSubmitDto formSubmitDto = new FormSubmitDto(); + formSubmitDto.setForm(busMes.getJson()); + formSubmitDto.setTask_id(busMes.getTaskId()); + + formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey()); + taskService.complete(busMes.getTaskId()); } return WrapMapper.ok(task.getProcessInstanceId()); } else { - String[] ids = busMes.getTaskIds().split(","); - Set staffsSet = new HashSet<>(Arrays.asList(ids)); - String prcid = ""; - logger.info("!!!!!!!!!!!staffsSet!!!!!!!!!!!!!1"+staffsSet); - for (String taskId : staffsSet) { - logger.info("taskId--> " + taskId); - Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if(task!=null){ - prcid = task.getProcessInstanceId(); - if (ChkUtil.isNull(task.getAssignee())) { - taskService.claim(taskId, busMes.getUserId()); - } - FormSubmitDto formSubmitDto = new FormSubmitDto(); - formSubmitDto.setForm(busMes.getJson()); - formSubmitDto.setTask_id(taskId); - formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey()); - //解决发起人报错但是有流程的问题 - try { - taskService.complete(taskId); - } catch (ActivitiException e){ - e.printStackTrace(); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("P_ID",prcid); - List taskList = iBusProcessNewService.list( queryWrapper); - if(taskList==null||taskList.size()==0){ - deleteProcessInstance(prcid); - } - throw new ActivitiException(e.getMessage()); - } - - } - } - return WrapMapper.ok(prcid); + throw new AdcDaBaseException("缺少任务id,无法完成任务"); } } diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusMes.java b/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusMes.java new file mode 100644 index 0000000..979d69b --- /dev/null +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusMes.java @@ -0,0 +1,22 @@ +package com.adc.da.wkflow.business_main.entity; + +import lombok.Data; + +@Data +public class BusMes { + + private String userId; + + private String taskId; + + private String submitJson; // 提交的数据 + + private String prcType; + + private String createUser; + + private String createUserName; + + private String dept; + +} diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusProcessNew.java b/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusProcessNew.java new file mode 100644 index 0000000..4c5fb85 --- /dev/null +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_main/entity/BusProcessNew.java @@ -0,0 +1,87 @@ +package com.adc.da.wkflow.business_main.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 冯晓东 + * @since 2020-11-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("BUS_PROCESS_NEW") +@ApiModel(value="BusProcessNew对象", description="") +public class BusProcessNew implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "主键") + @TableId(value = "ID", type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "资源类型") + @TableField("MSG_TYPE") + private String msgType; + + @ApiModelProperty(value = "标准id") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "条款id") + @TableField("CLAUSE_ID") + private String clauseId; + + @ApiModelProperty(value = "处理人") + @TableField("USER_ID") + private String userId; + + @ApiModelProperty(value = "信息") + @TableField("MESG") + private String mesg; + + @ApiModelProperty(value = "节点信息") + @TableField("TASK_INFO") + private String taskInfo; + + @ApiModelProperty(value = "父级id") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "任务id") + @TableField("TASK_ID") + private String taskId; + + @ApiModelProperty(value = "流程实例id") + @TableField("P_ID") + private String pId; + + @ApiModelProperty(value = "完成注记") + @TableField("FINISH_FLAG") + private String finishFlag; + + @ApiModelProperty(value = "审批意见") + @TableField("COMMIT_FLAG") + private String commitFlag; + + @ApiModelProperty(value = "审批意见") + @TableField("COMMIT_TEXT") + private String commitText; + + @ApiModelProperty(value = "子流程ID") + @TableField("SUB_ID") + private String subId; +} diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_main/mapper/BusProcessNewMapper.java b/report-activity/src/main/java/com/adc/da/wkflow/business_main/mapper/BusProcessNewMapper.java new file mode 100644 index 0000000..4be8a8a --- /dev/null +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_main/mapper/BusProcessNewMapper.java @@ -0,0 +1,29 @@ +package com.adc.da.wkflow.business_main.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.adc.da.wkflow.business_main.entity.BusProcessNew; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 冯晓东 + * @since 2020-11-10 + */ +public interface BusProcessNewMapper extends BaseMapper { + + /** + * 根据taskIds查询未完成的任务数据 + * @param taskIds + * @return + */ + List findNoExecuteBusProcessNew(@Param("taskIds")List taskIds); + + List findNoExecuteBusProcessNewForEnd(@Param("taskIds")List taskIds); +// String queryTaskName(@Param("id")String id); + +} diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/IBusProcessNewService.java b/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/IBusProcessNewService.java new file mode 100644 index 0000000..7570e09 --- /dev/null +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/IBusProcessNewService.java @@ -0,0 +1,32 @@ +package com.adc.da.wkflow.business_main.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.adc.da.wkflow.business_main.entity.BusProcessNew; +import org.activiti.engine.task.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author 冯晓东 + * @since 2020-11-10 + */ +public interface IBusProcessNewService extends IService { + + List findtodotask(String userId, String pId); + + List QueryTask(String userId, String pId); + + /** + * 根据taskId集合查下任务 + * @param taskIdList + * @return + */ + List findTaskDetailByTaskIds(List taskIdList); + + List findNoExecuteBusProcessNewForEnd(List taskIdList); + +} diff --git a/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/impl/BusProcessNewServiceImpl.java b/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/impl/BusProcessNewServiceImpl.java new file mode 100644 index 0000000..d6c2239 --- /dev/null +++ b/report-activity/src/main/java/com/adc/da/wkflow/business_main/service/impl/BusProcessNewServiceImpl.java @@ -0,0 +1,71 @@ +package com.adc.da.wkflow.business_main.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.adc.da.wkflow.business_main.entity.BusProcessNew; +import com.adc.da.wkflow.business_main.mapper.BusProcessNewMapper; +import com.adc.da.wkflow.business_main.service.IBusProcessNewService; +import org.activiti.engine.TaskService; +import org.activiti.engine.task.Task; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author 冯晓东 + * @since 2020-11-10 + */ +@Service +public class BusProcessNewServiceImpl extends ServiceImpl implements IBusProcessNewService { + + private TaskService taskService; + + /* + * @Author yuzhong + * @Description + * @Date 2020/11/11 + * 返回待办信息详情 + */ + @Override + public List findtodotask(String userId,String pId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("FINISH_FLAG","0"); + queryWrapper.eq("P_ID",pId); + queryWrapper.eq("USER_ID",userId); + List taskList = this.list(queryWrapper); + return taskList; + } + + /* + * @Author yuzhong + * @Description + * @Date 2020/11/11 + * 返回待办任务列表 + */ + public List QueryTask(String userId,String pId){ + List list = taskService.createTaskQuery().processInstanceId(pId).taskCandidateUser(userId).list(); + //list根据人员去重 + list = list.stream().collect( Collectors.collectingAndThen(Collectors.toCollection(() -> + new TreeSet<>(Comparator.comparing(o -> o.getAssignee()))), + ArrayList::new)); + return list; + } + + @Override + public List findTaskDetailByTaskIds(List taskIdList) { + return baseMapper.findNoExecuteBusProcessNew(taskIdList); + } + + @Override + public List findNoExecuteBusProcessNewForEnd(List taskIdList) { + return baseMapper.findNoExecuteBusProcessNewForEnd(taskIdList); + } +} diff --git a/report-activity/src/main/resources/mapper/BusProcessNameMapper.xml b/report-activity/src/main/resources/mapper/BusProcessNameMapper.xml new file mode 100644 index 0000000..61ff5f2 --- /dev/null +++ b/report-activity/src/main/resources/mapper/BusProcessNameMapper.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/report-activity/src/main/resources/mapper/BusProcessNewMapper.xml b/report-activity/src/main/resources/mapper/BusProcessNewMapper.xml new file mode 100644 index 0000000..ce87311 --- /dev/null +++ b/report-activity/src/main/resources/mapper/BusProcessNewMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + +