Commit 70679ed7 authored by 韩桐桐's avatar 韩桐桐

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 017e465c 4ef4ca00
...@@ -106,4 +106,9 @@ public class JgChangeRegistrationNameDto extends BaseDto { ...@@ -106,4 +106,9 @@ public class JgChangeRegistrationNameDto extends BaseDto {
private String nextTaskId; private String nextTaskId;
/**
* 下一节点可执行人
*/
private String nextExecuteUserIds;
} }
...@@ -148,5 +148,10 @@ public class JgChangeRegistrationName extends BaseEntity { ...@@ -148,5 +148,10 @@ public class JgChangeRegistrationName extends BaseEntity {
@TableField("next_task_id") @TableField("next_task_id")
private String nextTaskId; private String nextTaskId;
/**
* 下一节点可执行人
*/
@TableField("next_execute_user_ids")
private String nextExecuteUserIds;
} }
...@@ -109,9 +109,6 @@ ...@@ -109,9 +109,6 @@
jet.instance_status AS instanceStatus, jet.instance_status AS instanceStatus,
jet.accept_date AS acceptDate, jet.accept_date AS acceptDate,
jet.task_name AS taskName, jet.task_name AS taskName,
ri.equ_list AS equList,
ri.equ_category AS equCategory,
ri.equ_define AS equDefine,
ri.product_name AS productName, ri.product_name AS productName,
ri.brand_name AS brandName, ri.brand_name AS brandName,
ri.equ_type AS equType, ri.equ_type AS equType,
......
...@@ -175,6 +175,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -175,6 +175,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
if (!StringUtils.isEmpty(instanceId)) { if (!StringUtils.isEmpty(instanceId)) {
dto.setInstanceId(instanceId); dto.setInstanceId(instanceId);
dto.setNextTaskId(nextTaskId); dto.setNextTaskId(nextTaskId);
dto.setNextExecuteUserIds(nextUserIds);
dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass())); dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass()));
} else { } else {
dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getPass())); dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getPass()));
...@@ -276,6 +277,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -276,6 +277,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setInstanceId(instanceId); jgChangeRegistrationName.setInstanceId(instanceId);
jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext)); jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext));
jgChangeRegistrationName.setNextTaskId(nextTaskId); jgChangeRegistrationName.setNextTaskId(nextTaskId);
jgChangeRegistrationName.setNextExecuteUserIds(nextUserIds);
jgChangeRegistrationName.setAuditStatus(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass()); jgChangeRegistrationName.setAuditStatus(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass());
// 创建待办 // 创建待办
createTaskModel(jgChangeRegistrationName, taskName, "1", nextUserIds); createTaskModel(jgChangeRegistrationName, taskName, "1", nextUserIds);
...@@ -301,6 +303,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -301,6 +303,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext)); jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext));
jgChangeRegistrationName.setAuditStatus(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass()); jgChangeRegistrationName.setAuditStatus(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass());
jgChangeRegistrationName.setNextTaskId(nextTaskId); jgChangeRegistrationName.setNextTaskId(nextTaskId);
// 更新下一步可执行人
jgChangeRegistrationName.setNextExecuteUserIds(nextUserIds);
executeOneStep(jgChangeRegistrationName, taskName, nextUserIds, op); executeOneStep(jgChangeRegistrationName, taskName, nextUserIds, op);
} }
this.updateById(jgChangeRegistrationName); this.updateById(jgChangeRegistrationName);
...@@ -397,6 +401,10 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -397,6 +401,10 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setPromoter(RequestContext.getExeUserId()); jgChangeRegistrationName.setPromoter(RequestContext.getExeUserId());
jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext)); jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext));
jgChangeRegistrationName.setNextTaskId(nextTaskId); jgChangeRegistrationName.setNextTaskId(nextTaskId);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
// 更新下一步可执行人
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
jgChangeRegistrationName.setNextExecuteUserIds(nextUserIds);
this.update(jgChangeRegistrationName, lambda); this.update(jgChangeRegistrationName, lambda);
// 删除待办 // 删除待办
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jgChangeRegistrationName)); JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jgChangeRegistrationName));
...@@ -453,6 +461,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -453,6 +461,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setPromoter(RequestContext.getExeUserId()); jgChangeRegistrationName.setPromoter(RequestContext.getExeUserId());
jgChangeRegistrationName.setInstanceId(instanceId); jgChangeRegistrationName.setInstanceId(instanceId);
jgChangeRegistrationName.setNextTaskId(nextTaskId); jgChangeRegistrationName.setNextTaskId(nextTaskId);
// 更新下一步可执行人
jgChangeRegistrationName.setNextExecuteUserIds(nextUserIds);
if (!ObjectUtils.isEmpty(jgChangeRegistrationName.getInstanceStatus())) { if (!ObjectUtils.isEmpty(jgChangeRegistrationName.getInstanceStatus())) {
jgChangeRegistrationName.setInstanceStatus(jgChangeRegistrationName.getInstanceStatus() + "," + String.join(",", roleListNext)); jgChangeRegistrationName.setInstanceStatus(jgChangeRegistrationName.getInstanceStatus() + "," + String.join(",", roleListNext));
} else { } else {
...@@ -471,6 +481,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg ...@@ -471,6 +481,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
} else { } else {
jgChangeRegistrationName.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName()); jgChangeRegistrationName.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
jgChangeRegistrationName.setAuditPassDate(new Date()); jgChangeRegistrationName.setAuditPassDate(new Date());
// 完成时 下一步骤可执行人清空
jgChangeRegistrationName.setNextExecuteUserIds("");
// 修改业务信息 // 修改业务信息
updateInfoOther(jgChangeRegistrationName); updateInfoOther(jgChangeRegistrationName);
// 更新代办 // 更新代办
......
...@@ -239,8 +239,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang ...@@ -239,8 +239,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
oldTransfer.setReceiveOrgName(receiveOrgName); oldTransfer.setReceiveOrgName(receiveOrgName);
} }
//办理状态 //办理状态
oldTransfer.setAuditStatus(FlowStatusEnum.TO_BE_SUBMITTED.getName()); oldTransfer.setAuditStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
oldTransfer.setStatus(UseStatusEnum.SUBMIT.getPass()); oldTransfer.setStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
//es种查询设备信息 //es种查询设备信息
SearchRequest request = new SearchRequest(); SearchRequest request = new SearchRequest();
......
...@@ -39,6 +39,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel; ...@@ -39,6 +39,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import java.util.stream.Stream;
/** /**
* 设备移交服务实现类 * 设备移交服务实现类
...@@ -68,259 +69,154 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -68,259 +69,154 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
@Autowired @Autowired
CmWorkflowServiceImpl cmWorkflowService; CmWorkflowServiceImpl cmWorkflowService;
/**
* 保存和保存并提交
*
* @param submitType 保存或保存并提交
* @param jsonObjectMap 设备移交和设备信息
* @param reginParams redis信息
*/
@Transactional(rollbackFor = {Exception.class, BaseException.class}) @Transactional(rollbackFor = {Exception.class, BaseException.class})
public void saveTransfer(String submitType, JSONObject jsonObjectMap, ReginParams reginParams) { public void saveTransfer(String submitType, JSONObject jsonObjectMap, ReginParams reginParams) {
JgEquipTransferDto model = JSON.parseObject(JSONObject.toJSONString(jsonObjectMap), JgEquipTransferDto.class); JgEquipTransferDto model = JSON.parseObject(JSONObject.toJSONString(jsonObjectMap), JgEquipTransferDto.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>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SBYJ.getCode(), deviceList.size()); ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SBYJ.getCode(), deviceList.size());
handleResponseModel(listResponseModel, "告知单获取失败: "); this.handleResponseModel(listResponseModel, "告知单获取失败: ");
List<String> applyNoList = listResponseModel.getResult(); List<String> applyNoList = listResponseModel.getResult();
handleApplyNoList(applyNoList); this.handleApplyNoList(applyNoList);
List<WorkflowResultDto> workflowResultList = workFlowInfo(submitType, deviceList); //启动工作流
List<WorkflowResultDto> workflowResultList = this.startWorkFlow(submitType, deviceList);
List<JgEquipTransfer> list = new ArrayList<>(); List<JgEquipTransfer> transferList = new ArrayList<>();
List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>(); List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>();
IntStream.range(0, deviceList.size()).forEach(i -> { IntStream.range(0, deviceList.size()).forEach(i -> {
Map<String, Object> obj = deviceList.get(i); Map<String, Object> obj = deviceList.get(i);
String applyNo = applyNoList.get(i); String applyNo = applyNoList.get(i);
JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo); JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo);
JgEquipTransfer dto = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i); JgEquipTransfer transfer = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
transfer.setSupervisoryCode(String.valueOf(obj.get("SUPERVISORY_CODE")));
dto.setSupervisoryCode(String.valueOf(obj.get("SUPERVISORY_CODE"))); transfer.setEquList(String.valueOf(obj.get("EQU_LIST")));
dto.setEquList(String.valueOf(obj.get("EQU_LIST"))); transferList.add(transfer);
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
list.add(dto);
equipTransferEqList.add(jgEquipTransferEq); equipTransferEqList.add(jgEquipTransferEq);
}); });
this.baseMapper.insertBatchSomeColumn(list); baseMapper.insertBatchSomeColumn(transferList);
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
buildTask(list, workflowResultList); this.buildTask(transferList, workflowResultList);
} }
List<JgEquipTransferEq> jgEquipTransferEqList = buildJgEquipTransferEqList(equipTransferEqList, list); List<JgEquipTransferEq> jgEquipTransferEqList = this.buildJgEquipTransferEqList(equipTransferEqList, transferList);
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList); jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
} }
private JgEquipTransferEq buildJgEquipTransferEq(Map<String, Object> obj, String applyNo) {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq();
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
return jgEquipTransferEq;
}
private JgEquipTransfer buildJgEquipTransfer(JgEquipTransferDto model, String applyNo, ReginParams reginParams,
String submitType, List<WorkflowResultDto> workflowResultList, int i) {
JgEquipTransfer dto = new JgEquipTransfer();
BeanUtils.copyProperties(model, dto);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
WorkflowResultDto workflowResult = workflowResultList.get(i);
dto.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextTaskId(workflowResult.getNextTaskId());
}
if (!CollectionUtils.isEmpty(workflowResultList)) {
dto.setInstanceId(workflowResultList.get(i).getInstanceId());
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
return dto;
}
private List<JgEquipTransferEq> buildJgEquipTransferEqList(List<JgEquipTransferEq> equipTransferEqList, List<JgEquipTransfer> list) {
return equipTransferEqList.stream()
.map(transferEq -> {
Long sequenceNbr = list.stream()
.filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo()))
.findFirst()
.map(JgEquipTransfer::getSequenceNbr)
.orElse(null);
return transferEq.setEquipTransferId(String.valueOf(sequenceNbr));
})
.collect(Collectors.toList());
}
private void handleResponseModel(ResponseModel<List<String>> listResponseModel, String errorMessagePrefix) {
if (listResponseModel == null || listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error(errorMessagePrefix + "{}", listResponseModel != null ? listResponseModel.getMessage() : "null");
throw new BadRequest("告知单生成失败!");
}
}
private void handleApplyNoList(List<String> applyNoList) {
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("告知单返回为空");
throw new BadRequest("告知单生成失败!");
}
}
/** /**
* 插入代办 * 暂存
*/
private void buildTask(List<JgEquipTransfer> list, List<WorkflowResultDto> workflowResultList) {
if (CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(workflowResultList)) {
return;
}
WorkflowResultDto workflowResultDto = workflowResultList.get(0);
List<TaskModelDto> taskModelDtoList = list.stream().map(item -> buildTaskModelDto(item, workflowResultDto)).collect(Collectors.toList());
commonService.buildTaskModel(taskModelDtoList);
}
/**
* 组装代办消息
* *
* @param item 设备移交信息 * @param submitType 保存或保存并提交
* @param workflowResultDto 工作流返回信息 * @param equipTransferDto 设备移交和设备信息
* @return 代办信息 * @param op
* @return 设备信息
*/ */
private TaskModelDto buildTaskModelDto(JgEquipTransfer item, WorkflowResultDto workflowResultDto) { public JgEquipTransferDto updateEquipTransfer(String submitType, JgEquipTransferDto equipTransferDto, String op) {
return TaskModelDto.builder() if (Objects.isNull(equipTransferDto) || StringUtils.isEmpty(submitType))
.flowCreateDate(item.getCreateDate()) throw new IllegalArgumentException("参数不能为空");
.taskName(workflowResultDto.getNextTaskName())
.taskCode(item.getApplyNo())
.taskType(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getCode())
.taskTypeLabel(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName())
.relationId(item.getInstanceId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.taskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), item.getSupervisoryCode(), item.getApplyNo()))
.taskDesc(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), item.getSupervisoryCode(), item.getApplyNo()))
.startUserId(item.getCreateUserId())
.startUser(item.getCreateUserName())
.startUserCompanyName(item.getCreateUserCompanyName())
.startDate(item.getCreateDate())
.model(item)
.nextExecuteUser(item.getNextExecuteIds())
.build();
}
/**
* 启动工作流
* @param submitType 提交类型
* @param deviceList 设备列表
* @return 工作流信息
*/
private List<WorkflowResultDto> workFlowInfo(String submitType, List<Map<String, Object>> deviceList) {
if (!SUBMIT_TYPE_FLOW.equals(submitType)) {
return new ArrayList<>();
}
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = deviceList.stream()
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
return dto;
})
.collect(Collectors.toList());
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
// 组装工作流返回的数据
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
private void convertField(JgEquipTransferDto model) {
if (null == model)
return;
// 分割接收机构
String installUnitId = model.getInstallUnitCreditCode();
if (!ObjectUtils.isEmpty(installUnitId)) {
String[] installUnitIdList = installUnitId.split("_");
if (installUnitIdList.length > 1) {
model.setInstallUnitCreditCode(installUnitIdList[0]);
model.setInstallUnitName(installUnitIdList[1]);
}
}
}
@Override
public Page<JgEquipTransferDto> queryForJgEquipTransferPage(Page<JgEquipTransferDto> page, JgEquipTransferDto dto, String type, ReginParams reginParams) {
Page<JgEquipTransferDto> equipTransferPage = this.baseMapper.queryForPage(page, dto, type, reginParams.getCompany().getCompanyCode());
Page<JgEquipTransferDto> equipTransferDtoPage = new Page<>();
BeanUtils.copyProperties(equipTransferPage, equipTransferDtoPage, "records");
List<JgEquipTransferDto> records = equipTransferPage.getRecords().stream().map(transfer -> {
JgEquipTransferDto equipTransferDto = new JgEquipTransferDto();
BeanUtils.copyProperties(transfer, equipTransferDto);
if (Objects.nonNull(transfer.getApplyStatus())) {
equipTransferDto.setApplyStatusDesc(FlowStatusEnum.getNameByType(Long.valueOf(transfer.getApplyStatus())));
}
return equipTransferDto;
}).collect(Collectors.toList());
equipTransferDtoPage.setRecords(records);
return equipTransferDtoPage;
}
@Override
public Map<String, Object> queryBySequenceNbr(Long sequenceNbr) {
JgEquipTransfer equipTransfer = this.baseMapper.selectById(sequenceNbr);
if (Objects.isNull(equipTransfer)) {
return null;
}
Map<String, Object> equipTransferInfo = new HashMap<>();
String[] fields = {"productPhoto", "designDoc", "designStandard", "factoryStandard", ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(
"productQualityYieldProve", "insUseMaintainExplain", "inspectReport", RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
"proxyStatementAttachment", "installContractAttachment"}; this.convertField(equipTransferDto);
List<Map<String, Object>> equipmentInfos = this.baseMapper.queryEquipInformation(sequenceNbr); equipTransferDto.setPromoter(reginParams.getUserModel().getUserId());
handleJsonArrayFields(equipTransferInfo, fields); JgEquipTransfer transfer = this.getById(equipTransferDto.getSequenceNbr());
handleJsonArrayFields(equipmentInfos.get(0), fields); if (SUBMIT_TYPE_FLOW.equals(submitType)) {
if (!org.springframework.util.StringUtils.hasText(equipTransferDto.getInstanceId())) {
// 发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(equipTransferDto.getSequenceNbr().toString());
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
ProcessTaskDTO processTaskDTO = cmWorkflowService.startBatch(actWorkflowBatchDTO).get(0);
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
transfer.setNextTaskId(workflowResultDto.getNextTaskId());
Map<String, Object> resultMap = new HashMap<>(); updateById(transfer);
resultMap.putAll(equipTransferInfo); // 如果为保存并提交,则创建代办
resultMap.putAll(equipmentInfos.get(0)); this.buildTask(Collections.singletonList(transfer), Collections.singletonList(workflowResultDto));
resultMap.putAll(createEquipTransferInfo(equipTransfer)); } else {
return resultMap; TaskResultDTO dto = new TaskResultDTO();
} dto.setResultCode("approvalStatus");
dto.setTaskId(transfer.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (transfer.getApplyStatus().equals("6614") || transfer.getApplyStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
dto.setVariable(commMap);
ProcessTaskDTO processTaskDTO = cmWorkflowService.complete(transfer.getNextTaskId(), dto);
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
private Map<String, Object> createEquipTransferInfo(JgEquipTransfer equipTransfer) { if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
Map<String, Object> equipTransferInfo = new HashMap<>(BeanUtil.beanToMap(equipTransfer)); transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
equipTransferInfo.put("installUnitCreditCode", equipTransfer.getInstallUnitCreditCode() + "_" + equipTransfer.getInstallUnitName()); } else {
return equipTransferInfo; transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
} }
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
transfer.setNextTaskId(workflowResultDto.getNextTaskId());
private void handleJsonArrayFields(Map<String, Object> map, String[] fields) { updateById(transfer);
for (String field : fields) { // 上个代办改为已办
map.computeIfPresent(field, (key, value) -> JSON.parseArray(value.toString())); TaskV2Model taskV2Model = this.updateLastTodo(transfer, FlowStatusEnum.TO_BE_PROCESSED);
// 创建新的代办
this.createNewTodo(transfer, workflowResultDto, taskV2Model, FlowStatusEnum.TO_BE_PROCESSED);
}
} else {
JgEquipTransfer equipTransfer = new JgEquipTransfer();
BeanUtils.copyProperties(equipTransferDto, equipTransfer);
updateById(equipTransfer);
} }
return equipTransferDto;
} }
/**
* 通过和驳回
*
* @param jgEquipTransferDto 设备信息
* @param op 通过或驳回
*/
public void accept(JgEquipTransferDto jgEquipTransferDto, String op) { public void accept(JgEquipTransferDto jgEquipTransferDto, String op) {
String userId = RequestContext.getExeUserId(); String userId = RequestContext.getExeUserId();
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);
JgEquipTransfer jgEquipTransfer = this.baseMapper.selectById(jgEquipTransferDto.getSequenceNbr()); JgEquipTransfer jgEquipTransfer = baseMapper.selectById(jgEquipTransferDto.getSequenceNbr());
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
TaskResultDTO workDto = new TaskResultDTO(); TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode("approvalStatus"); workDto.setResultCode("approvalStatus");
workDto.setTaskId(jgEquipTransfer.getNextTaskId()); workDto.setTaskId(jgEquipTransfer.getNextTaskId());
...@@ -332,12 +228,12 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -332,12 +228,12 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
} }
workDto.setVariable(commMap); workDto.setVariable(commMap);
workDto.setComment(jgEquipTransferDto.getProcessAdvice()); workDto.setComment(jgEquipTransferDto.getProcessAdvice());
processTaskDTO = cmWorkflowService.complete(jgEquipTransfer.getNextTaskId(), workDto); ProcessTaskDTO processTaskDTO = cmWorkflowService.complete(jgEquipTransfer.getNextTaskId(), workDto);
// 提取节点等信息 // 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0); WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgEquipTransfer.setPromoter(reginParams.getUserModel().getUserId()); jgEquipTransfer.setPromoter(reginParams.getUserModel().getUserId());
TaskV2Model taskV2Model = new TaskV2Model(); TaskV2Model taskV2Model;
jgEquipTransfer.setProcessAdvice(jgEquipTransferDto.getProcessAdvice()); jgEquipTransfer.setProcessAdvice(jgEquipTransferDto.getProcessAdvice());
JgEquipTransferEq jgEquipTransferEq = jgEquipTransferEqMapper.selectOne(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId) JgEquipTransferEq jgEquipTransferEq = jgEquipTransferEqMapper.selectOne(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId)
...@@ -358,13 +254,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -358,13 +254,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap); tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
} }
// 上个代办改为已办 // 上个代办改为已办
taskV2Model = commonService.updateTaskModel(MapBuilder.<String, Object>create() this.updateLastTodo(jgEquipTransfer, FlowStatusEnum.TO_BE_FINISHED);
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
} else { } else {
jgEquipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds()); jgEquipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) { if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) {
...@@ -374,163 +264,96 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -374,163 +264,96 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
} }
jgEquipTransfer.setPromoter(userId); jgEquipTransfer.setPromoter(userId);
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode())); jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
jgEquipTransfer.setNextTaskId(workflowResultDto.getNextTaskId());
// 上个代办改为已办 // 上个代办改为已办
commonService.updateTaskModel(MapBuilder.<String, Object>create() taskV2Model = this.updateLastTodo(jgEquipTransfer, FlowStatusEnum.TO_BE_FINISHED);
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
// 创建新的代办 // 创建新的代办
this.createNewTodo(jgEquipTransfer, workflowResultDto, taskV2Model); this.createNewTodo(jgEquipTransfer, workflowResultDto, taskV2Model, FlowStatusEnum.TO_BE_PROCESSED);
} }
} else { } else {
//驳回 //驳回
jgEquipTransfer.setPromoter(""); jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode())); jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jgEquipTransfer.setSupervisoryCode(jgEquipTransferDto.getSupervisoryCode());
jgEquipTransfer.setEquList(jgEquipTransferDto.getEquList());
jgEquipTransfer.setNextTaskId(workflowResultDto.getNextTaskId());
// 上个代办改为驳回 // 上个代办改为驳回
TaskV2Model taskV2Model1 = this.updateLastTodo(jgEquipTransfer, FlowStatusEnum.REJECTED); taskV2Model = this.updateLastTodo(jgEquipTransfer, FlowStatusEnum.REJECTED);
this.createNewTodo(jgEquipTransfer, workflowResultDto, taskV2Model, FlowStatusEnum.TO_BE_SUBMITTED);
TaskModelDto taskModelDto = TaskModelDto.builder()
.taskName(workflowResultDto.getNextTaskName())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.nextExecuteUser(workflowResultDto.getNextExecutorRoleIds())
.model(jgEquipTransfer)
.startUserId(taskV2Model1.getStartUserId())
.startUser(taskV2Model1.getStartUser())
.startDate(taskV2Model1.getStartDate())
.flowCreateDate(taskV2Model1.getFlowCreateDate())
.taskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", jgEquipTransferDto.getEquList(), jgEquipTransferDto.getSupervisoryCode(), jgEquipTransferDto.getApplyNo()))
.taskDesc(String.format("来自%s【%s】的业务办理,【申请单号:%s】", jgEquipTransferDto.getEquList(), jgEquipTransferDto.getSupervisoryCode(), jgEquipTransferDto.getApplyNo()))
.startUserCompanyName(reginParams.getCompany().getCompanyName())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(taskV2Model1.getTaskCode())
.taskType(taskV2Model1.getTaskType())
.taskTypeLabel(taskV2Model1.getTaskTypeLabel())
.relationId(taskV2Model1.getRelationId())
.build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} }
updateById(jgEquipTransfer); updateById(jgEquipTransfer);
} }
/** /**
* 撤回 * 撤回操作
* *
* @param equipTransferInfo equipTransferInfo * @param equipTransferInfo 设备移交信息
*/ */
public void cancel(JgEquipTransferDto equipTransferInfo) { public void cancel(JgEquipTransferDto equipTransferInfo) {
JgEquipTransfer equipTransfer = this.baseMapper.selectById(equipTransferInfo.getSequenceNbr()); // 查询装备移交信息
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(equipTransferInfo.getInstanceId()); JgEquipTransfer equipTransfer = baseMapper.selectById(equipTransferInfo.getSequenceNbr());
if (equipTransfer != null) {
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0); // 回滚工作流
equipTransfer.setPromoter(""); ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(equipTransferInfo.getInstanceId());
equipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds()); WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode())); equipTransfer.setPromoter("");
this.baseMapper.updateById(equipTransfer); equipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(equipTransfer)); equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
jsonObject.put("nextTaskId", equipTransfer.getNextTaskId()); equipTransfer.setNextTaskId(workflowResultDto.getNextTaskId());
jsonObject.put("nextExecuteUser", equipTransfer.getNextExecuteIds()); baseMapper.updateById(equipTransfer);
jsonObject.put("taskType", BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getCode());
commonService.rollbackTask(equipTransfer.getInstanceId(), jsonObject); commonService.rollbackTask(equipTransfer.getInstanceId(), new JSONObject(MapBuilder.<String, Object>create()
.put("nextTaskId", equipTransfer.getNextTaskId())
.put("nextExecuteUser", equipTransfer.getNextExecuteIds())
.put("taskType", BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getCode())
.build()));
}
} }
public JgEquipTransferDto updateEquipTransfer(String submitType, JgEquipTransferDto equipTransferDto, String op) { @Override
if (Objects.isNull(equipTransferDto) || StringUtils.isEmpty(submitType)) public Page<JgEquipTransferDto> queryForJgEquipTransferPage(Page<JgEquipTransferDto> page, JgEquipTransferDto dto, String type, ReginParams reginParams) {
throw new IllegalArgumentException("参数不能为空"); Page<JgEquipTransferDto> equipTransferPage = this.baseMapper.queryForPage(page, dto, type, reginParams.getCompany().getCompanyCode());
Page<JgEquipTransferDto> equipTransferDtoPage = new Page<>();
BeanUtils.copyProperties(equipTransferPage, equipTransferDtoPage, "records");
List<JgEquipTransferDto> records = equipTransferPage.getRecords().stream().map(transfer -> {
JgEquipTransferDto equipTransferDto = new JgEquipTransferDto();
BeanUtils.copyProperties(transfer, equipTransferDto);
if (Objects.nonNull(transfer.getApplyStatus())) {
equipTransferDto.setApplyStatusDesc(FlowStatusEnum.getNameByType(Long.valueOf(transfer.getApplyStatus())));
}
return equipTransferDto;
}).collect(Collectors.toList());
equipTransferDtoPage.setRecords(records);
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey( return equipTransferDtoPage;
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); }
this.convertField(equipTransferDto);
equipTransferDto.setPromoter(reginParams.getUserModel().getUserId()); @Override
JgEquipTransfer transfer = this.getById(equipTransferDto.getSequenceNbr()); public Map<String, Object> queryBySequenceNbr(Long sequenceNbr) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) { JgEquipTransfer equipTransfer = baseMapper.selectById(sequenceNbr);
if (!org.springframework.util.StringUtils.hasText(equipTransferDto.getInstanceId())) {
// 发起流程
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(equipTransferDto.getSequenceNbr().toString());
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
processTaskDTO = cmWorkflowService.startBatch(actWorkflowBatchDTO).get(0);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(transfer);
// 如果为保存并提交,则创建代办
buildTask(Collections.singletonList(transfer), Collections.singletonList(workflowResultDto));
} else {
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(transfer.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (transfer.getApplyStatus().equals("6614") || transfer.getApplyStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
dto.setVariable(commMap);
processTaskDTO = cmWorkflowService.complete(transfer.getNextTaskId(), dto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) { if (Objects.isNull(equipTransfer))
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds()); return null;
} else { return Stream.concat(
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds()); createEquipTransferInfo(equipTransfer).entrySet().stream(),
} baseMapper.queryEquipInformation(sequenceNbr).get(0).entrySet().stream()
transfer.setPromoter(RequestContext.getExeUserId()); )
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds())); .filter(entry -> entry.getValue() != null)
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode())); .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (existing, replacement) -> existing));
updateById(transfer);
// 上个代办改为已办
TaskV2Model taskV2Model = this.updateLastTodo(transfer,FlowStatusEnum.TO_BE_PROCESSED);
// 创建新的代办
this.createNewTodo(transfer, workflowResultDto, taskV2Model);
}
} else {
JgEquipTransfer bean = new JgEquipTransfer();
BeanUtils.copyProperties(equipTransferDto, bean);
updateById(bean);
}
return equipTransferDto;
} }
/** /**
* 上个代办改为已办 * 上个代办改为已办
*
* @param transfer 设备信息 * @param transfer 设备信息
* @return 代办信息 * @return 代办信息
*/ */
private TaskV2Model updateLastTodo(JgEquipTransfer transfer, FlowStatusEnum statusEnum) { private TaskV2Model updateLastTodo(JgEquipTransfer transfer, FlowStatusEnum statusEnum) {
return commonService.updateTaskModel(MapBuilder.<String, Object>create() return commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", statusEnum.getCode()) .put("taskStatus", statusEnum.getCode())
.put("taskStatusLabel",statusEnum.getName()) .put("taskStatusLabel", statusEnum.getName())
.put("flowStatus", statusEnum.getCode()) .put("flowStatus", statusEnum.getCode())
.put("flowStatusLabel", statusEnum.getName()) .put("flowStatusLabel", statusEnum.getName())
.put("relationId", transfer.getInstanceId()) .put("relationId", transfer.getInstanceId())
...@@ -538,12 +361,57 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -538,12 +361,57 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
} }
/** /**
* 插入代办
*/
private void buildTask(List<JgEquipTransfer> list, List<WorkflowResultDto> workflowResultList) {
if (CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(workflowResultList)) {
return;
}
List<TaskModelDto> taskModelDtoList = list.stream().map(item ->
this.buildTaskModelDto(item, workflowResultList.get(0))).collect(Collectors.toList());
commonService.buildTaskModel(taskModelDtoList);
}
/**
* 组装代办消息
*
* @param item 设备移交信息
* @param workflowResultDto 工作流返回信息
* @return 代办信息
*/
private TaskModelDto buildTaskModelDto(JgEquipTransfer item, WorkflowResultDto workflowResultDto) {
return TaskModelDto.builder()
.flowCreateDate(item.getCreateDate())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(item.getApplyNo())
.taskType(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getCode())
.taskTypeLabel(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName())
.relationId(item.getInstanceId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.taskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), item.getSupervisoryCode(), item.getApplyNo()))
.taskDesc(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), item.getSupervisoryCode(), item.getApplyNo()))
.startUserId(item.getCreateUserId())
.startUser(item.getCreateUserName())
.startUserCompanyName(item.getCreateUserCompanyName())
.startDate(item.getCreateDate())
.model(item)
.nextExecuteUser(item.getNextExecuteIds())
.build();
}
/**
* 创建新代办 * 创建新代办
* @param transfer 设备信息 *
* @param transfer 设备信息
* @param workflowResultDto 工作流信息 * @param workflowResultDto 工作流信息
* @param taskV2Model 代办信息 * @param taskV2Model 代办信息
*/ */
private void createNewTodo(JgEquipTransfer transfer, WorkflowResultDto workflowResultDto, TaskV2Model taskV2Model) { private void createNewTodo(JgEquipTransfer transfer, WorkflowResultDto workflowResultDto, TaskV2Model taskV2Model, FlowStatusEnum statusEnum) {
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);
TaskModelDto taskModelDto = TaskModelDto.builder() TaskModelDto taskModelDto = TaskModelDto.builder()
.flowCreateDate(taskV2Model.getFlowCreateDate()) .flowCreateDate(taskV2Model.getFlowCreateDate())
...@@ -553,9 +421,9 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -553,9 +421,9 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
.taskTypeLabel(taskV2Model.getTaskTypeLabel()) .taskTypeLabel(taskV2Model.getTaskTypeLabel())
.relationId(taskV2Model.getRelationId()) .relationId(taskV2Model.getRelationId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds()) .executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()) .taskStatusLabel(statusEnum.getName())
.flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()) .flowStatus(statusEnum.getCode())
.flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()) .flowStatusLabel(statusEnum.getName())
.taskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getSupervisoryCode(), transfer.getApplyNo())) .taskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getSupervisoryCode(), transfer.getApplyNo()))
.taskDesc(String.format("来自%s【%s】的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getSupervisoryCode(), transfer.getApplyNo())) .taskDesc(String.format("来自%s【%s】的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getSupervisoryCode(), transfer.getApplyNo()))
.startUserCompanyName(reginParams.getCompany().getCompanyName()) .startUserCompanyName(reginParams.getCompany().getCompanyName())
...@@ -567,4 +435,117 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -567,4 +435,117 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
.build(); .build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto)); commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} }
/**
* 启动工作流
*
* @param submitType 提交类型
* @param deviceList 设备列表
* @return 工作流信息
*/
private List<WorkflowResultDto> startWorkFlow(String submitType, List<Map<String, Object>> deviceList) {
if (!SUBMIT_TYPE_FLOW.equals(submitType)) {
return new ArrayList<>();
}
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = deviceList.stream()
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
return dto;
})
.collect(Collectors.toList());
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
// 组装工作流返回的数据
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
/**
* 字段拼接
*
* @param model 设备信息
*/
private void convertField(JgEquipTransferDto model) {
if (null == model)
return;
String installUnitId = model.getInstallUnitCreditCode();
if (!ObjectUtils.isEmpty(installUnitId)) {
String[] installUnitIdList = installUnitId.split("_");
if (installUnitIdList.length > 1) {
model.setInstallUnitCreditCode(installUnitIdList[0]);
model.setInstallUnitName(installUnitIdList[1]);
}
}
}
private JgEquipTransferEq buildJgEquipTransferEq(Map<String, Object> obj, String applyNo) {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq();
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
return jgEquipTransferEq;
}
private JgEquipTransfer buildJgEquipTransfer(JgEquipTransferDto model, String applyNo, ReginParams reginParams,
String submitType, List<WorkflowResultDto> workflowResultList, int i) {
JgEquipTransfer dto = new JgEquipTransfer();
BeanUtils.copyProperties(model, dto);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
WorkflowResultDto workflowResult = workflowResultList.get(i);
dto.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextTaskId(workflowResult.getNextTaskId());
}
if (!CollectionUtils.isEmpty(workflowResultList)) {
dto.setInstanceId(workflowResultList.get(i).getInstanceId());
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
return dto;
}
private List<JgEquipTransferEq> buildJgEquipTransferEqList(List<JgEquipTransferEq> equipTransferEqList, List<JgEquipTransfer> list) {
return equipTransferEqList.stream()
.map(transferEq -> {
Long sequenceNbr = list.stream()
.filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo()))
.findFirst()
.map(JgEquipTransfer::getSequenceNbr)
.orElse(null);
return transferEq.setEquipTransferId(String.valueOf(sequenceNbr));
})
.collect(Collectors.toList());
}
private void handleResponseModel(ResponseModel<List<String>> listResponseModel, String errorMessagePrefix) {
if (listResponseModel == null || listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error(errorMessagePrefix + "{}", listResponseModel != null ? listResponseModel.getMessage() : "null");
throw new BadRequest("告知单生成失败!");
}
}
private void handleApplyNoList(List<String> applyNoList) {
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("告知单返回为空");
throw new BadRequest("告知单生成失败!");
}
}
private Map<String, Object> createEquipTransferInfo(JgEquipTransfer equipTransfer) {
Map<String, Object> equipTransferInfo = new HashMap<>(BeanUtil.beanToMap(equipTransfer));
equipTransferInfo.put("installUnitCreditCode", equipTransfer.getInstallUnitCreditCode() + "_" + equipTransfer.getInstallUnitName());
return equipTransferInfo;
}
} }
\ 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