Commit 6ca5127f authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_register' of…

Merge branch 'develop_tzs_register' of http://36.40.66.175:5000/moa/amos-boot-biz into develop_tzs_register # Conflicts: # amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/CommonServiceImpl.java
parents e9a39c1e 3dc5ab42
...@@ -214,4 +214,9 @@ public class JgTransferNoticeDto extends BaseDto { ...@@ -214,4 +214,9 @@ public class JgTransferNoticeDto extends BaseDto {
private String noticeReportUrl; private String noticeReportUrl;
private String createUserCompanyName;
//下一步任务ID
private String nextTaskId;
} }
...@@ -298,4 +298,11 @@ public class JgTransferNotice extends BaseEntity { ...@@ -298,4 +298,11 @@ public class JgTransferNotice extends BaseEntity {
@TableField(value = "handle_date") @TableField(value = "handle_date")
private Date handleDate; private Date handleDate;
@TableField(value = "create_user_company_name")
private String createUserCompanyName;
//下一步任务ID
@TableField(value = "next_taskId")
private String nextTaskId;
} }
...@@ -196,14 +196,14 @@ public class CommonServiceImpl implements ICommonService { ...@@ -196,14 +196,14 @@ public class CommonServiceImpl implements ICommonService {
wrapper.eq(EquipmentCategory::getCode, code); wrapper.eq(EquipmentCategory::getCode, code);
EquipmentCategory equipmentCategory = equipmentCategoryMapper.selectOne(wrapper); EquipmentCategory equipmentCategory = equipmentCategoryMapper.selectOne(wrapper);
if (ObjectUtils.isEmpty(type)) { if (ObjectUtils.isEmpty(type)) {
if(!ValidationUtil.isEmpty(equipmentCategory)){ if (!ValidationUtil.isEmpty(equipmentCategory)) {
result.add(equipmentCategory); result.add(equipmentCategory);
} }
} else { } else {
LambdaQueryWrapper<EquipmentCategory> wrapper2 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<EquipmentCategory> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.eq(EquipmentCategory::getParentId, equipmentCategory.getId()); wrapper2.eq(EquipmentCategory::getParentId, equipmentCategory.getId());
List<EquipmentCategory> equipmentCategories = equipmentCategoryMapper.selectList(wrapper2); List<EquipmentCategory> equipmentCategories = equipmentCategoryMapper.selectList(wrapper2);
if(!ValidationUtil.isEmpty(equipmentCategories)){ if (!ValidationUtil.isEmpty(equipmentCategories)) {
result = equipmentCategories; result = equipmentCategories;
} }
} }
...@@ -290,7 +290,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -290,7 +290,7 @@ public class CommonServiceImpl implements ICommonService {
public List<LinkedHashMap> creatApproveTree() { public List<LinkedHashMap> creatApproveTree() {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct()); FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult(); List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> children = (List<LinkedHashMap>)result.get(0).get("children"); List<LinkedHashMap> children = (List<LinkedHashMap>) result.get(0).get("children");
List<LinkedHashMap> treeData = deleteTreeData(children); List<LinkedHashMap> treeData = deleteTreeData(children);
List<LinkedHashMap> resultTree = updateNullChildren(treeData); List<LinkedHashMap> resultTree = updateNullChildren(treeData);
redisUtils.set(ADMINISTRATION_UNIT_TREE, resultTree); redisUtils.set(ADMINISTRATION_UNIT_TREE, resultTree);
...@@ -366,7 +366,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -366,7 +366,7 @@ public class CommonServiceImpl implements ICommonService {
} }
@Override @Override
public List<Map<String,Object>> getEnterpriseEmployee(String unitCode) { public List<Map<String, Object>> getEnterpriseEmployee(String unitCode) {
return commonMapper.getEnterpriseEmployee(unitCode); return commonMapper.getEnterpriseEmployee(unitCode);
} }
...@@ -524,7 +524,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -524,7 +524,7 @@ public class CommonServiceImpl implements ICommonService {
JgInstallationNoticeDto jgInstallationNoticeDto = JSON.parseObject(JSON.toJSONString(noticeObj), JgInstallationNoticeDto.class); JgInstallationNoticeDto jgInstallationNoticeDto = JSON.parseObject(JSON.toJSONString(noticeObj), JgInstallationNoticeDto.class);
jgInstallationNoticeDto.setReceiveOrgCreditCode(!ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1"))); jgInstallationNoticeDto.setReceiveOrgCreditCode(!ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1")));
JSONObject jsonObject1 = (JSONObject)JSONObject.toJSON(jgInstallationNoticeDto); JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(jgInstallationNoticeDto);
provideMap.put(AZGZ_FORM_ID, jsonObject1); provideMap.put(AZGZ_FORM_ID, jsonObject1);
JSONObject jsonObject = new JSONObject(provideMap); JSONObject jsonObject = new JSONObject(provideMap);
iJgInstallationNoticeService.saveNotice(submitType, jsonObject, reginParams); iJgInstallationNoticeService.saveNotice(submitType, jsonObject, reginParams);
...@@ -576,7 +576,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -576,7 +576,7 @@ public class CommonServiceImpl implements ICommonService {
} else if (type.equals(ApplicationFormTypeEnum.SBYJ.getBusinessCode())) { } else if (type.equals(ApplicationFormTypeEnum.SBYJ.getBusinessCode())) {
JgEquipTransferDto jgEquipTransferDto = JSON.parseObject(JSON.toJSONString(noticeObj), JgEquipTransferDto.class); JgEquipTransferDto jgEquipTransferDto = JSON.parseObject(JSON.toJSONString(noticeObj), JgEquipTransferDto.class);
JSONObject jsonObject = (JSONObject)JSONObject.toJSON(jgEquipTransferDto); JSONObject jsonObject = (JSONObject) JSONObject.toJSON(jgEquipTransferDto);
jgEquipTransferServiceImpl.saveTransfer(submitType, jsonObject, reginParams); jgEquipTransferServiceImpl.saveTransfer(submitType, jsonObject, reginParams);
} else if (type.equals(ApplicationFormTypeEnum.SBZX.getBusinessCode())) { } else if (type.equals(ApplicationFormTypeEnum.SBZX.getBusinessCode())) {
...@@ -599,15 +599,8 @@ public class CommonServiceImpl implements ICommonService { ...@@ -599,15 +599,8 @@ public class CommonServiceImpl implements ICommonService {
} }
public void deleteTaskModel(String id) {
List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(id).getResult();
public void deleteTaskModel(String id){
List<TaskV2Model> result =Systemctl.taskV2Client.selectListByRelationId(id).getResult();
TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getCreateDate().compareTo(r1.getCreateDate())) // 按时间降序排序 TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getCreateDate().compareTo(r1.getCreateDate())) // 按时间降序排序
.findFirst() .findFirst()
.orElse(null); .orElse(null);
...@@ -619,31 +612,31 @@ public class CommonServiceImpl implements ICommonService { ...@@ -619,31 +612,31 @@ public class CommonServiceImpl implements ICommonService {
/** /**
* 待办新增接口 * 待办新增接口
**/ **/
public void buildTaskModel(List<TaskModelDto> list){ public void buildTaskModel(List<TaskModelDto> list) {
list.forEach(obj->{ list.forEach(obj -> {
TaskV2Model model = new TaskV2Model(); TaskV2Model model = new TaskV2Model();
String urlParams = ""; String urlParams = "";
try { try {
urlParams = "&"+toQueryParams(obj.getModel()); urlParams = "&" + toQueryParams(obj.getModel());
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
e.printStackTrace(); e.printStackTrace();
} }
List<Map> urlList = JsonUtils.getResourceList(urlInfo); List<Map> urlList = JsonUtils.getResourceList(urlInfo);
for (Map map : urlList) { for (Map map : urlList) {
if (map.get("type").equals(obj.getTaskType()) && map.get("pageType").equals("look") && map.get("url") !=null){ if (map.get("type").equals(obj.getTaskType()) && map.get("pageType").equals("look")) {
model.setRoutePath(map.get("url").toString().replace("{roleIds}",obj.getNextExecuteUser()).replace("{userId}",RequestContext.getExeUserId())+urlParams); model.setRoutePath(map.get("url").toString().replace("{roleIds}", obj.getNextExecuteUser()).replace("{userId}", RequestContext.getExeUserId()) + urlParams);
} }
} }
model.setRoutePath(obj.getRoutePath()+urlParams); model.setRoutePath(obj.getRoutePath() + urlParams);
BeanUtil.copyProperties(model,obj); BeanUtil.copyProperties(model, obj);
model.setFlowStatus(0); model.setFlowStatus(0);
model.setFlowInstanceId(model.getRelationId()); model.setFlowInstanceId(model.getRelationId());
model.setTaskTitle(obj.getStartUser()+"发起了"+obj.getTaskName()); model.setTaskTitle(obj.getStartUser() + "发起了" + obj.getTaskName());
model.setTaskSource("workFlow"); model.setTaskSource("workFlow");
model.setExtras(JSON.toJSONString(obj.getModel())); model.setExtras(JSON.toJSONString(obj.getModel()));
// model.setTerminal(params.getOrDefault("terminal","WEB").toString()); // model.setTerminal(params.getOrDefault("terminal","WEB").toString());
model.setCreateDate(new Date()); model.setCreateDate(new Date());
model.setRecUserId( RequestContext.getExeUserId()); model.setRecUserId(RequestContext.getExeUserId());
Systemctl.taskV2Client.create(model); Systemctl.taskV2Client.create(model);
}); });
...@@ -651,28 +644,28 @@ public class CommonServiceImpl implements ICommonService { ...@@ -651,28 +644,28 @@ public class CommonServiceImpl implements ICommonService {
/** /**
* 待办编辑接口 * 待办编辑接口
*参数 * 参数
*taskStatus 任务状态枚举code * taskStatus 任务状态枚举code
*taskStatusLabel 任务状态枚举name * taskStatusLabel 任务状态枚举name
*流程实例id instanceId * 流程实例id instanceId
**/ **/
public TaskV2Model updateTaskModel(Map<String, Object> params){ public TaskV2Model updateTaskModel(Map<String, Object> params) {
String exeUserId = RequestContext.getExeUserId(); String exeUserId = RequestContext.getExeUserId();
List<TaskV2Model> result =Systemctl.taskV2Client.selectListByRelationId(params.get("relationId").toString()).getResult(); List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(params.get("relationId").toString()).getResult();
TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getSequenceNbr().compareTo(r2.getSequenceNbr())) // 按时间降序排序 TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getSequenceNbr().compareTo(r2.getSequenceNbr())) // 按时间降序排序
.findFirst() .findFirst()
.orElse(null); .orElse(null);
if (model == null ){ if (model == null) {
return null; return null;
} }
model.setFlowStatus(1); model.setFlowStatus(1);
model.setTaskStatus(Integer.valueOf(params.get("taskStatus").toString())); model.setTaskStatus(Integer.valueOf(params.get("taskStatus").toString()));
model.setTaskStatusLabel(params.get("taskStatusLabel").toString()); model.setTaskStatusLabel(params.get("taskStatusLabel").toString());
model.setEndUserId(exeUserId); model.setEndUserId(exeUserId);
model.setEndDate(new Date()); model.setEndDate(new Date());
model.setRoutePath(model.getRoutePath().replace("roleIds","role").replace("edit","look")); model.setRoutePath(model.getRoutePath().replace("roleIds", "role").replace("edit", "look"));
Systemctl.taskV2Client.update(model,model.getSequenceNbr()); Systemctl.taskV2Client.update(model, model.getSequenceNbr());
//修改model并返回 用于组装新待办 //修改model并返回 用于组装新待办
model.setEndUserId(null); model.setEndUserId(null);
model.setTaskStatus(null); model.setTaskStatus(null);
...@@ -684,23 +677,23 @@ public class CommonServiceImpl implements ICommonService { ...@@ -684,23 +677,23 @@ public class CommonServiceImpl implements ICommonService {
} }
/** /**
* 待办 撤回 * 待办 撤回
* id 工作流实例id * id 工作流实例id
**/ **/
public void rollbackTask(String id){ public void rollbackTask(String id) {
List<TaskV2Model> result =Systemctl.taskV2Client.selectListByRelationId(id).getResult(); List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(id).getResult();
List<TaskV2Model> list = result.stream().sorted((r1, r2) -> r2.getSequenceNbr().compareTo(r1.getSequenceNbr())).collect(Collectors.toList()); List<TaskV2Model> list = result.stream().sorted((r1, r2) -> r2.getSequenceNbr().compareTo(r1.getSequenceNbr())).collect(Collectors.toList());
TaskV2Model model = list.get(0); TaskV2Model model = list.get(0);
Systemctl.taskV2Client.delete(String.valueOf(model.getSequenceNbr())); Systemctl.taskV2Client.delete(String.valueOf(model.getSequenceNbr()));
TaskV2Model lastTaskModel = list.get(1); TaskV2Model lastTaskModel = list.get(1);
lastTaskModel.setEndUserId(null); lastTaskModel.setEndUserId(null);
lastTaskModel.setEndDate(null); lastTaskModel.setEndDate(null);
lastTaskModel.setFlowStatus(0); lastTaskModel.setFlowStatus(0);
lastTaskModel.setRoutePath(model.getRoutePath().replace("role","roleIds").replace("look","edit")); lastTaskModel.setRoutePath(model.getRoutePath().replace("role", "roleIds").replace("look", "edit"));
Systemctl.taskV2Client.update(lastTaskModel,lastTaskModel.getSequenceNbr()); Systemctl.taskV2Client.update(lastTaskModel, lastTaskModel.getSequenceNbr());
} }
public <T> String toQueryParams(T obj) throws UnsupportedEncodingException { public <T> String toQueryParams(T obj) throws UnsupportedEncodingException {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (Class<?> clazz = obj.getClass(); !clazz.equals(Object.class); clazz = clazz.getSuperclass()) { for (Class<?> clazz = obj.getClass(); !clazz.equals(Object.class); clazz = clazz.getSuperclass()) {
...@@ -729,6 +722,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -729,6 +722,7 @@ public class CommonServiceImpl implements ICommonService {
/** /**
* 根据流程状态name 获取流程状态code * 根据流程状态name 获取流程状态code
*
* @param name 流程状态name * @param name 流程状态name
* @return 流程状态code * @return 流程状态code
*/ */
...@@ -744,6 +738,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -744,6 +738,7 @@ public class CommonServiceImpl implements ICommonService {
/** /**
* 根据工作流返回信息,组装业务需要的数据 * 根据工作流返回信息,组装业务需要的数据
*
* @param processTaskDTOS 工作流返回信息 * @param processTaskDTOS 工作流返回信息
* @return 组装后的信息 * @return 组装后的信息
*/ */
...@@ -751,19 +746,27 @@ public class CommonServiceImpl implements ICommonService { ...@@ -751,19 +746,27 @@ public class CommonServiceImpl implements ICommonService {
List<WorkflowResultDto> workflowResultDtoList = new ArrayList<>(); List<WorkflowResultDto> workflowResultDtoList = new ArrayList<>();
processTaskDTOS.forEach(item -> { processTaskDTOS.forEach(item -> {
WorkflowResultDto workflowResultDto = new WorkflowResultDto(); WorkflowResultDto workflowResultDto = new WorkflowResultDto();
workflowResultDto.setInstanceId(item.getProcessInstance().getId()); if (!ObjectUtils.isEmpty(item.getProcessInstance())) {
workflowResultDto.setTaskName(item.getTask().getName()); workflowResultDto.setInstanceId(item.getProcessInstance().getId());
workflowResultDto.setExecutorRoleIds(String.join(",", item.getCandidateGroups())); }
if (!ObjectUtils.isEmpty(item.getTask())) {
workflowResultDto.setTaskName(item.getTask().getName());
}
if (!ObjectUtils.isEmpty(item.getCandidateGroups())) {
workflowResultDto.setExecutorRoleIds(String.join(",", item.getCandidateGroups()));
}
if (!ObjectUtils.isEmpty(item.getStartUser())) { if (!ObjectUtils.isEmpty(item.getStartUser())) {
workflowResultDto.setStartUserId(item.getStartUser().getUserId()); workflowResultDto.setStartUserId(item.getStartUser().getUserId());
workflowResultDto.setStartUserName(item.getStartUser().getRealName()); workflowResultDto.setStartUserName(item.getStartUser().getRealName());
} }
workflowResultDto.setExecutorId(item.getExecutor().getUserId()); if (!ObjectUtils.isEmpty(item.getExecutor())) {
workflowResultDto.setExecutorName(item.getExecutor().getRealName()); workflowResultDto.setExecutorId(item.getExecutor().getUserId());
workflowResultDto.setExecutorName(item.getExecutor().getRealName());
}
if (!CollectionUtils.isEmpty(item.getNextTask())) { if (!CollectionUtils.isEmpty(item.getNextTask())) {
ActTaskDTO actTaskDTO = item.getNextTask().get(0); ActTaskDTO actTaskDTO = item.getNextTask().get(0);
workflowResultDto.setNextTaskId(actTaskDTO.getId()); workflowResultDto.setNextTaskId(actTaskDTO.getId());
// workflowResultDto.setNextTaskCode(actTaskDTO.getKey()); // 工作流字段还未添加 workflowResultDto.setNextTaskCode(actTaskDTO.getKey());
workflowResultDto.setNextTaskName(actTaskDTO.getName()); workflowResultDto.setNextTaskName(actTaskDTO.getName());
List<String> nextGroups = item.getNextCandidateGroups().get(actTaskDTO.getId()); List<String> nextGroups = item.getNextCandidateGroups().get(actTaskDTO.getId());
String join = String.join(",", nextGroups); String join = String.join(",", nextGroups);
......
...@@ -2,20 +2,16 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl; ...@@ -2,20 +2,16 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.aspose.words.SaveFormat;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey; import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.ByteArrayMultipartFile;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgTransferNoticeDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgTransferNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto; import com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto;
import com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNotice; import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNotice;
import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNoticeEq; import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNoticeEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
...@@ -23,6 +19,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeEqMapper; ...@@ -23,6 +19,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgTransferNoticeService; import com.yeejoin.amos.boot.module.jg.api.service.IJgTransferNoticeService;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
...@@ -30,32 +27,23 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence; ...@@ -30,32 +27,23 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*; import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult; import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO; import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import jdk.nashorn.api.scripting.JSObject;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.text.ParseException; import java.text.ParseException;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
...@@ -68,7 +56,7 @@ import java.util.stream.Collectors; ...@@ -68,7 +56,7 @@ import java.util.stream.Collectors;
* @date 2023-12-19 * @date 2023-12-19
*/ */
@Service @Service
public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto,JgTransferNotice,JgTransferNoticeMapper> implements IJgTransferNoticeService { public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto, JgTransferNotice, JgTransferNoticeMapper> implements IJgTransferNoticeService {
private static final String SUBMIT_TYPE_FLOW = "1"; private static final String SUBMIT_TYPE_FLOW = "1";
private static final String PROCESS_DEFINITION_KEY = "transferNotice"; private static final String PROCESS_DEFINITION_KEY = "transferNotice";
...@@ -82,6 +70,11 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -82,6 +70,11 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
private JgTransferNoticeMapper jgTransferNoticeMapper; private JgTransferNoticeMapper jgTransferNoticeMapper;
@Autowired @Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper; RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
private CommonServiceImpl commonService;
@Autowired @Autowired
OtherInfoMapper tzsJgOtherInfoMapper; OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired @Autowired
...@@ -94,6 +87,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -94,6 +87,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
@Autowired @Autowired
private TzBaseUnitLicenceMapper baseUnitLicenceMapper; private TzBaseUnitLicenceMapper baseUnitLicenceMapper;
@Autowired
ICmWorkflowService iCmWorkflowService;
/** /**
* 根据sequenceNbr查询 * 根据sequenceNbr查询
* *
...@@ -113,10 +109,10 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -113,10 +109,10 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
transferNotice.put("county", notice.getCounty() + "_" + notice.getCountyName()); transferNotice.put("county", notice.getCounty() + "_" + notice.getCountyName());
transferNotice.put("useUnitCreditCode", notice.getUseUnitCreditCode() + "_" + notice.getUseUnitName()); transferNotice.put("useUnitCreditCode", notice.getUseUnitCreditCode() + "_" + notice.getUseUnitName());
transferNotice.put("receiveOrgCode", notice.getReceiveOrgCode() + "_" + notice.getReceiveOrgName()); transferNotice.put("receiveOrgCode", notice.getReceiveOrgCode() + "_" + notice.getReceiveOrgName());
if(!ValidationUtil.isEmpty(notice.getFactoryUseSiteStreet()) && !ValidationUtil.isEmpty(notice.getStreetName())) { if (!ValidationUtil.isEmpty(notice.getFactoryUseSiteStreet()) && !ValidationUtil.isEmpty(notice.getStreetName())) {
transferNotice.put("factoryUseSiteStreet", notice.getFactoryUseSiteStreet() + "_" + notice.getStreetName()); transferNotice.put("factoryUseSiteStreet", notice.getFactoryUseSiteStreet() + "_" + notice.getStreetName());
} }
if(!ValidationUtil.isEmpty(notice.getConstructionManagerId()) && !ValidationUtil.isEmpty(notice.getConstructionManager())) { if (!ValidationUtil.isEmpty(notice.getConstructionManagerId()) && !ValidationUtil.isEmpty(notice.getConstructionManager())) {
transferNotice.put("constructionManagerId", notice.getConstructionManagerId() + "_" + notice.getConstructionManager()); transferNotice.put("constructionManagerId", notice.getConstructionManagerId() + "_" + notice.getConstructionManager());
} }
String[] fields = {"productPhoto", "designDoc", "designStandard", "factoryStandard", String[] fields = {"productPhoto", "designDoc", "designStandard", "factoryStandard",
...@@ -251,49 +247,85 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -251,49 +247,85 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) { if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空"); throw new IllegalArgumentException("参数不能为空");
} }
String[] taskName = new String[]{"流程结束"};
// 字段转换 // 字段转换
this.convertField(noticeDto); this.convertField(noticeDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
noticeDto.setPromoter(reginParams.getUserModel().getUserId()); noticeDto.setPromoter(reginParams.getUserModel().getUserId());
JgTransferNotice notice = this.getById(noticeDto.getSequenceNbr());
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult;
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) { if (!StringUtils.hasText(noticeDto.getInstanceId())) {
// 发起流程
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
WorkflowResultDto workflowResultDto = new WorkflowResultDto();
// 如果没有实例ID,说明是启动并执行一步
// 直接调用工作流 启动并执行API - 可以拿到两个节点的信息,用于填充业务字段
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey("1"); dto.setBusinessKey(noticeDto.getSequenceNbr().toString());
try { dto.setCompleteFirstTask(Boolean.TRUE);
ajaxResult = Workflow.taskClient.startByVariable(dto); list.add(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString(); actWorkflowBatchDTO.setProcess(list);
noticeDto.setInstanceId(instanceId); processTaskDTO = iCmWorkflowService.startBatch(actWorkflowBatchDTO).get(0);
// 查询下节点任务 // 提取节点等信息
getNext(roleListFirst, instanceId,taskName); workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
noticeDto.setInstanceStatus(String.join(",", roleListFirst)); BeanUtils.copyProperties(noticeDto, notice);
} catch (Exception e) { if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
log.error("提交失败:{}", e); notice.setInstanceStatus(notice.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
notice.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
} }
} notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
JgTransferNotice notice = new JgTransferNotice(); notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
BeanUtils.copyProperties(noticeDto,notice); jgTransferNoticeMapper.updateById(notice);
// 如果为保存并提交,则创建代办
boolean submit = submit(notice, op, null); buildTask(Collections.singletonList(notice), Collections.singletonList(workflowResultDto));
} else {
if(submit) { ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
// 查询下节点任务 WorkflowResultDto workflowResultDto = new WorkflowResultDto();
getNext(roleListSecond, notice.getInstanceId(),taskName); // 只调用执行API,返回下个节点信息,用于填充业务字段
notice.setStatus(taskName[0]); //组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(notice.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (notice.getNoticeStatus().equals("6614") || notice.getNoticeStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
dto.setVariable(commMap);
processTaskDTO = iCmWorkflowService.complete(notice.getNextTaskId(), dto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(noticeDto, notice);
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) { if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListSecond); notice.setInstanceStatus(notice.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else { } else {
notice.setInstanceStatus(String.join(",", roleListSecond)); notice.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
} }
notice.setPromoter(RequestContext.getExeUserId()); notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecuteIds(String.join(",", roleListSecond)); notice.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode())); notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
jgTransferNoticeMapper.updateById(notice); jgTransferNoticeMapper.updateById(notice);
// 上个代办改为已办
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", commonService.getDictionaryCodeByName(notice.getNoticeStatus()));
map.put("taskStatusLabel", notice.getNoticeStatus());
map.put("relationId", notice.getInstanceId());
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(notice);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} }
} else { } else {
JgTransferNotice bean = new JgTransferNotice(); JgTransferNotice bean = new JgTransferNotice();
...@@ -306,7 +338,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -306,7 +338,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
/** /**
* 分页查询 * 分页查询
*/ */
public Page<JgTransferNoticeDto> queryForJgTransferNoticePage(Page<JgTransferNotice> page, JgTransferNoticeDto model, String type, ReginParams reginParams) { public Page<JgTransferNoticeDto> queryForJgTransferNoticePage(Page<JgTransferNotice> page, JgTransferNoticeDto model, String type, ReginParams reginParams) {
String orgCode; String orgCode;
orgCode = reginParams.getCompany().getCompanyCode(); orgCode = reginParams.getCompany().getCompanyCode();
model.setReceiveOrgCode(orgCode); model.setReceiveOrgCode(orgCode);
...@@ -329,39 +361,28 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -329,39 +361,28 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
return noticeDtoPage; return noticeDtoPage;
} }
/**
* 列表查询 示例
*/
public List<JgTransferNoticeDto> queryForJgTransferNoticeList() {
return this.queryForList("" , false);
}
@Override @Override
@SuppressWarnings({"Duplicates", "rawtypes"}) @SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveNotice(String submitType, Map<String, Object> jgTransferNoticeDtoMap, ReginParams reginParams) { public void saveNotice(String submitType, Map<String, Object> jgTransferNoticeDtoMap, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"};
JgTransferNoticeDto model = JSON.parseObject(jgTransferNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgTransferNoticeDto.class); JgTransferNoticeDto model = JSON.parseObject(jgTransferNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgTransferNoticeDto.class);
// 字段转换 // 字段转换
convertField(model); convertField(model);
// 获取告知设备列表 // 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList(); List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) { if (CollectionUtils.isEmpty(deviceList)) {
return; return;
} }
// 获取告知单号 // 获取告知单号
ResponseModel<List<String>> responseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.YZGZ.getCode(), deviceList.size()); ResponseModel<List<String>> responseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.YZGZ.getCode(), deviceList.size());
if (CollectionUtils.isEmpty(responseModel.getResult())) { if (CollectionUtils.isEmpty(responseModel.getResult())) {
return; return;
} }
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
// 判断当前是否为提交 // 判断当前是否为提交
List<String> instanceIdList = new ArrayList<>(); List<String> instanceIdList = new ArrayList<>();
workFlowInfo(submitType, taskName, deviceList, roleListFirst, roleListSecond, instanceIdList); // 启动工作流并返回信息
List<WorkflowResultDto> workflowResultList = workFlowInfo(submitType, deviceList);
List<JgTransferNotice> list = new ArrayList<>(); List<JgTransferNotice> list = new ArrayList<>();
List<JgTransferNoticeEq> equipList = new ArrayList<>(); List<JgTransferNoticeEq> equipList = new ArrayList<>();
...@@ -369,16 +390,17 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -369,16 +390,17 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
JgTransferNoticeEq jgRelationEquip = new JgTransferNoticeEq(); JgTransferNoticeEq jgRelationEquip = new JgTransferNoticeEq();
JgTransferNotice dto = new JgTransferNotice(); JgTransferNotice dto = new JgTransferNotice();
BeanUtils.copyProperties(model, dto); BeanUtils.copyProperties(model, dto);
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
int i = deviceList.indexOf(obj); int i = deviceList.indexOf(obj);
String applyNo = responseModel.getResult().get(i); String applyNo = responseModel.getResult().get(i);
dto.setPromoter(reginParams.getUserModel().getUserId()); dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyNo(applyNo); dto.setApplyNo(applyNo);
dto.setNoticeDate(new Date()); dto.setNoticeDate(new Date());
if(SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond)); dto.setNextExecuteIds(workflowResultList.get(i).getNextExecutorRoleIds());
dto.setInstanceStatus(String.join(",", roleListFirst)); dto.setInstanceStatus(workflowResultList.get(i).getNextExecutorRoleIds() + "," + workflowResultList.get(i).getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId()); dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setStatus(taskName[0]); dto.setNextTaskId(workflowResultList.get(i).getNextTaskId());
} }
dto.setInstallUnitName(reginParams.getCompany().getCompanyName()); dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode()); dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
...@@ -395,8 +417,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -395,8 +417,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
}); });
jgTransferNoticeMapper.insertBatchSomeColumn(list); jgTransferNoticeMapper.insertBatchSomeColumn(list);
// 如果为保存并提交,则创建代办
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
buildTask(list); buildTask(list, workflowResultList);
} }
List<JgTransferNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> { List<JgTransferNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
...@@ -408,96 +431,61 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -408,96 +431,61 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
jgTransferNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList); jgTransferNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
} }
@Autowired
private CommonServiceImpl commonService;
private void buildTask(List<JgTransferNotice> list) { /**
* 插入代办
*/
private void buildTask(List<JgTransferNotice> list, List<WorkflowResultDto> workflowResultList) {
List<TaskModelDto> taskModelDtoList = new ArrayList<>(); List<TaskModelDto> taskModelDtoList = new ArrayList<>();
WorkflowResultDto workflowResultDto = workflowResultList.get(0);
list.forEach(item -> { list.forEach(item -> {
TaskModelDto taskModelDto = new TaskModelDto(); TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(item.getCreateDate()); taskModelDto.setFlowCreateDate(item.getCreateDate());
// taskModelDto.setTaskName(); // 工作流API返回 taskModelDto.setTaskName(workflowResultDto.getNextTaskName()); // 工作流API返回
taskModelDto.setTaskCode(item.getApplyNo()); taskModelDto.setTaskCode(item.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getCode()); taskModelDto.setTaskType(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getName()); taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getName());
taskModelDto.setRelationId(item.getInstanceId()); taskModelDto.setRelationId(item.getInstanceId());
// taskModelDto.setExecuteUserIds(); // 工作流API返回 taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds()); // 工作流API返回
taskModelDto.setTaskStatus(commonService.getDictionaryCodeByName(item.getNoticeStatus())); // 流程状态枚举 taskModelDto.setTaskStatus(commonService.getDictionaryCodeByName(item.getNoticeStatus())); // 流程状态枚举
taskModelDto.setTaskStatusLabel(item.getNoticeStatus()); taskModelDto.setTaskStatusLabel(item.getNoticeStatus());
taskModelDto.setStartUserId(item.getCreateUserId()); taskModelDto.setStartUserId(item.getCreateUserId());
taskModelDto.setStartUser(item.getRecUserName()); taskModelDto.setStartUser(item.getCreateUserName());
// taskModelDto.setStartUserCompanyName(); // 任务发起人所在单位 taskModelDto.setStartUserCompanyName(item.getCreateUserCompanyName()); // 任务发起人所在单位
taskModelDto.setStartDate(item.getCreateDate()); taskModelDto.setStartDate(item.getCreateDate());
taskModelDto.setModel(item); taskModelDto.setModel(item);
taskModelDto.setNextExecuteUser(item.getNextExecuteIds());
taskModelDtoList.add(taskModelDto); taskModelDtoList.add(taskModelDto);
}); });
commonService.buildTaskModel(taskModelDtoList); commonService.buildTaskModel(taskModelDtoList);
} }
private void workFlowInfo(String submitType, String[] taskName, List<Map<String, Object>> deviceList, ArrayList<String> roleListFirst, ArrayList<String> roleListSecond, List<String> instanceIdList) { private List<WorkflowResultDto> workFlowInfo(String submitType, List<Map<String, Object>> deviceList) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
// ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>(); List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i < deviceList.size(); i++) { deviceList.forEach(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(i)); dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
// dto.setCompleteFirstTask(true); dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto); list.add(dto);
} });
actWorkflowBatchDTO.setProcess(list); actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = iCmWorkflowService.startBatch(actWorkflowBatchDTO);
try { // 组装工作流返回的数据
FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO); return commonService.buildWorkFlowInfo(processTaskDTOS);
List<Object> returnList = (List<Object>) result.getResult();
for (Object obj : returnList
) {
JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(obj));
String instanceId = jsonObject.getString("id");
instanceIdList.add(instanceId);
// 查询下节点任务
if(returnList.get(0).equals(obj)) {
getNext(roleListFirst, instanceId, taskName);
}
// 推动下一个节点
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "0");
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1 = null;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
getNext(roleListSecond, instanceId, taskName);
} else {
log.error("提交失败");
}
} catch (Exception e) {
log.error("提交失败:{}", e);
}
}
} catch (Exception e) {
log.error("提交失败:{}", e);
}
} }
return new ArrayList<>();
} }
private void convertField(JgTransferNoticeDto model) { private void convertField(JgTransferNoticeDto model) {
// 处理图片 // 处理图片
if(!ValidationUtil.isEmpty(model.getConstructionContractList())) { if (!ValidationUtil.isEmpty(model.getConstructionContractList())) {
model.setConstructionContract(JSON.toJSONString(model.getConstructionContractList())); model.setConstructionContract(JSON.toJSONString(model.getConstructionContractList()));
} }
if(!ValidationUtil.isEmpty(model.getPowerOfAttorneyList())) { if (!ValidationUtil.isEmpty(model.getPowerOfAttorneyList())) {
model.setPowerOfAttorney(JSON.toJSONString(model.getPowerOfAttorneyList())); model.setPowerOfAttorney(JSON.toJSONString(model.getPowerOfAttorneyList()));
} }
...@@ -567,67 +555,23 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -567,67 +555,23 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
} }
} }
private String convertImageUrl(List<Map<String, String>> urlList) {
String urls = "";
if (!CollectionUtils.isEmpty(urlList)) {
urls = urlList.stream().map(map -> map.get("url")).collect(Collectors.joining(","));
}
return urls;
}
public boolean submit(JgTransferNotice notice, String op, String opinion) {
AjaxResult ajaxResult = Workflow.taskClient.getTask(notice.getInstanceId());
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
if (!StringUtils.isEmpty(opinion)) {
dto.setComment(opinion);
}
HashMap<String, Object> map = new HashMap<>();
if(notice.getNoticeStatus().equals("6614") || notice.getNoticeStatus().equals("6615") ) {
map.put("approvalStatus", "提交");
} else {
map.put("approvalStatus", op);
}
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1 = null;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
return true;
} else {
return false;
}
} catch (Exception e) {
log.error("提交失败:{}", e);
return false;
}
}
public void cancel(JgTransferNoticeDto noticeDto) { public void cancel(JgTransferNoticeDto noticeDto) {
String[] taskName = new String[]{"流程结束"};
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
JgTransferNotice jgInstallationNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr()); JgTransferNotice jgInstallationNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr());
ArrayList<String> roleList = new ArrayList<>(); ProcessTaskDTO processTaskDTO = iCmWorkflowService.rollBack(jgInstallationNotice.getInstanceId());
if(ajaxResult.getStatus() == 200) { // 提取节点等信息
getNext(roleList, noticeDto.getInstanceId(),taskName); WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgInstallationNotice.setStatus(taskName[0]); jgInstallationNotice.setPromoter("");
jgInstallationNotice.setPromoter(""); jgInstallationNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
jgInstallationNotice.setNextExecuteIds(String.join(",", roleList)); jgInstallationNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
jgInstallationNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode())); jgTransferNoticeMapper.updateById(jgInstallationNotice);
jgTransferNoticeMapper.updateById(jgInstallationNotice); commonService.deleteTaskModel(jgInstallationNotice.getInstanceId());
} commonService.rollbackTask(jgInstallationNotice.getInstanceId());
} }
@Transactional @Transactional
public void accept(JgTransferNoticeDto dto, String op, String opinion) { public void accept(JgTransferNoticeDto dto, String op, String opinion) {
String[] taskName = new String[]{"流程结束"};
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgTransferNotice jgTransferNotice = this.jgTransferNoticeMapper.selectById(dto.getSequenceNbr()); JgTransferNotice jgTransferNotice = this.jgTransferNoticeMapper.selectById(dto.getSequenceNbr());
// 组装设备注册代码 // 组装设备注册代码
...@@ -639,59 +583,97 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto ...@@ -639,59 +583,97 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
log.error("日期转换失败:{}", e); log.error("日期转换失败:{}", e);
} }
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgTransferNotice, op, opinion); ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
if(submit) { WorkflowResultDto workflowResultDto = new WorkflowResultDto();
getNext(roleList, dto.getInstanceId(), taskName); // 只调用执行API,返回下个节点信息,用于填充业务字段
jgTransferNotice.setPromoter(reginParams.getUserModel().getUserId()); //组装信息
if("0".equals(op)) { TaskResultDTO workDto = new TaskResultDTO();
if (roleList.size() == 0) { workDto.setResultCode("approvalStatus");
LambdaQueryWrapper<JgTransferNoticeEq> queryWrapper = new LambdaQueryWrapper<>(); workDto.setTaskId(jgTransferNotice.getNextTaskId());
queryWrapper.eq(JgTransferNoticeEq::getEquipTransferId, dto.getSequenceNbr()); HashMap<String, Object> commMap = new HashMap<>();
JgTransferNoticeEq jgTransferNoticeEq = jgTransferNoticeEqMapper.selectOne(queryWrapper); if (jgTransferNotice.getNoticeStatus().equals("6614") || jgTransferNotice.getNoticeStatus().equals("6615")) {
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>(); commMap.put("approvalStatus", "提交");
queryWrapper2.eq(RegistrationInfo::getRecord, jgTransferNoticeEq.getEquId()); } else {
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2); commMap.put("approvalStatus", op);
stringBuffer.append(tzsJgRegistrationInfo.getEquCategory()).append(jgTransferNotice.getCity()).append(ym); }
Map<String, Object> map = new HashMap<>(); workDto.setVariable(commMap);
map.put("cityCode", jgTransferNotice.getCity()); processTaskDTO = iCmWorkflowService.complete(jgTransferNotice.getNextTaskId(), workDto);
map.put("countyCode", jgTransferNotice.getCounty()); // 提取节点等信息
map.put("equCategory", tzsJgRegistrationInfo.getEquCategory()); workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgTransferNotice.setPromoter("");
jgTransferNotice.setHandleDate(new Date()); jgTransferNotice.setPromoter(reginParams.getUserModel().getUserId());
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())); TaskV2Model taskV2Model = new TaskV2Model();
this.generateTransferNoticeReport(jgTransferNotice.getSequenceNbr()); if ("0".equals(op)) {
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
LambdaQueryWrapper<JgTransferNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgTransferNoticeEq::getEquipTransferId, dto.getSequenceNbr());
JgTransferNoticeEq jgTransferNoticeEq = jgTransferNoticeEqMapper.selectOne(queryWrapper);
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(RegistrationInfo::getRecord, jgTransferNoticeEq.getEquId());
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2);
stringBuffer.append(tzsJgRegistrationInfo.getEquCategory()).append(jgTransferNotice.getCity()).append(ym);
Map<String, Object> map = new HashMap<>();
map.put("cityCode", jgTransferNotice.getCity());
map.put("countyCode", jgTransferNotice.getCounty());
map.put("equCategory", tzsJgRegistrationInfo.getEquCategory());
jgTransferNotice.setPromoter("");
jgTransferNotice.setHandleDate(new Date());
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
this.generateTransferNoticeReport(jgTransferNotice.getSequenceNbr());
// 上个代办改为已办
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
} else {
jgTransferNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgTransferNotice.getInstanceStatus())) {
jgTransferNotice.setInstanceStatus(jgTransferNotice.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else { } else {
jgTransferNotice.setNextExecuteIds(String.join(",", roleList)); jgTransferNotice.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgTransferNotice.getInstanceStatus())) {
jgTransferNotice.setInstanceStatus(jgTransferNotice.getInstanceStatus() + "," + String.join(",", roleList));
} else {
jgTransferNotice.setInstanceStatus(String.join(",", roleList));
}
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
jgTransferNotice.setInstanceStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
} }
} else { jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
jgTransferNotice.setPromoter(""); // 上个代办改为已办
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode())); HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(jgTransferNotice);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} }
jgTransferNoticeMapper.updateById(jgTransferNotice); } else {
jgTransferNotice.setPromoter("");
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
// 上个代办改为已办
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(jgTransferNotice);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} }
} jgTransferNoticeMapper.updateById(jgTransferNotice);
void getNext(ArrayList<String> roleListFirst, String instanceId, String[] taskName) {
AjaxResult aj = Workflow.taskClient.getTaskNoAuth(instanceId);
JSONObject taskNoAuth = JSON.parseObject(JSON.toJSONString(aj.get("data")));
if (!ObjectUtils.isEmpty(taskNoAuth)) {
String nextTaskId = taskNoAuth.getString("id");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
taskName[0] = taskNoAuth.getString("name");
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleListFirst.add(((Map) datum).get("groupId").toString());
}
}
}
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment