Commit 61ef4223 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
parents 79e25f2a 0f078164
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
......@@ -9,6 +12,9 @@ import java.util.Date;
* @author Administrator
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TaskModelDto {
/**
* 工作流创建时间
......
......@@ -150,4 +150,7 @@ public class JgEquipTransfer extends BaseEntity {
*/
@TableField(value = "next_task_id")
private String nextTaskId;
@TableField(value = "create_user_company_name")
private String createUserCompanyName;
}
......@@ -631,7 +631,7 @@ public class CommonServiceImpl implements ICommonService {
}
model.setFlowStatus(obj.getTaskStatus());
model.setFlowCode(obj.getTaskStatusLabel());
model.setTaskType("0");
model.setTaskStatus(0);
model.setFlowInstanceId(model.getRelationId());
model.setTaskTitle(obj.getStartUser() + "发起了" + obj.getTaskName());
model.setTaskSource("workFlow");
......
......@@ -224,6 +224,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get("EQU_LIST").toString());
if (!ValidationUtil.isEmpty(equipParamsMap)) {
// 给技术参数中添加设备种类,标记技术参数属于那个设备
equipParamsMap.put("EQU_LIST",equIpClassMap.get("EQU_LIST").toString());
resultMap.put(EQUIP_PARAMS_FORM_ID, equipParamsMap);
}
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEquipTransferService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.ymt.api.common.BaseException;
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.mapper.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -41,209 +38,199 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* 设备移交服务实现类
*
* @author system_generator
* @author LiuLin
* @date 2023-12-20
*/
@Slf4j
@Service
public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, JgEquipTransfer, JgEquipTransferMapper> implements IJgEquipTransferService {
private static final String EQUIP_TRANSFER_PROCESS_KEY = "equipmentHandover";
private static final String SUBMIT_TYPE_FLOW = "1";
@Autowired
JgEquipTransferEqMapper jgEquipTransferEqMapper;
@Autowired
OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
RedisUtils redisUtils;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
CmWorkflowServiceImpl workflowService;
@Autowired
CommonServiceImpl commonService;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Transactional(rollbackFor = {Exception.class, BaseException.class})
public void saveTransfer(String submitType, JSONObject jsonObjectMap, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"};
JgEquipTransferDto model = BeanUtil.toBeanIgnoreError(jsonObjectMap.get("model"), JgEquipTransferDto.class);
JgEquipTransferDto model = JSON.parseObject(JSONObject.toJSONString(jsonObjectMap), JgEquipTransferDto.class);
// 字段转换
convertField(model);
// 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) {
return;
}
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SBYJ.getCode(), deviceList.size());
if (!org.springframework.util.ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error("告知单获取失败: {}", listResponseModel.getMessage());
throw new BadRequest("告知单生成失败!");
}
handleResponseModel(listResponseModel, "告知单获取失败: ");
List<String> applyNoList = listResponseModel.getResult();
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("告知单返回为空");
throw new BadRequest("告知单生成失败!");
}
handleApplyNoList(applyNoList);
List<WorkflowResultDto> workflowResultList = workFlowInfo(submitType, deviceList);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
ArrayList<String> instanceIdList = new ArrayList<>();
List<JgEquipTransfer> list = new ArrayList<>();
List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i < deviceList.size(); i++
) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(String.valueOf(i));
IntStream.range(0, deviceList.size()).forEach(i -> {
Map<String, Object> obj = deviceList.get(i);
String applyNo = applyNoList.get(i);
JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo);
JgEquipTransfer dto = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
list.add(dto);
}
actWorkflowBatchDTO.setProcess(list);
equipTransferEqList.add(jgEquipTransferEq);
});
try {
FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
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;
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.getMessage());
}
}
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
this.baseMapper.insertBatchSomeColumn(list);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
buildTask(list, workflowResultList);
}
List<JgEquipTransferEq> jgEquipTransferEqList = buildJgEquipTransferEqList(equipTransferEqList, list);
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
}
List<JgEquipTransfer> list = new ArrayList<>();
List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>();
deviceList.forEach(obj -> {
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);
int i = deviceList.indexOf(obj);
String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
WorkflowResultDto workflowResult = workflowResultList.get(i);
dto.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyStatus(taskName[0]);
dto.setNextTaskId(workflowResult.getNextTaskId());
}
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
return dto;
}
list.add(dto);
equipTransferEqList.add(jgEquipTransferEq);
});
this.baseMapper.insertBatchSomeColumn(list);
List<JgEquipTransferEq> jgEquipTransferEqList = equipTransferEqList.stream().map(transferEq -> {
List<JgEquipTransfer> collect = list.stream().filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
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());
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
})
.collect(Collectors.toList());
}
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 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("告知单生成失败!");
}
}
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 (!org.springframework.util.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());
/**
* 插入代办
*/
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);
}
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(commonService.getDictionaryCodeByName(item.getApplyStatus()))
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.startUserId(item.getCreateUserId())
.startUser(item.getCreateUserName())
.startUserCompanyName(item.getCreateUserCompanyName())
.startDate(item.getCreateDate())
.model(item)
.nextExecuteUser(item.getNextExecuteIds())
.build();
}
private List<WorkflowResultDto> workFlowInfo(String submitType, List<Map<String, Object>> deviceList) {
if (!SUBMIT_TYPE_FLOW.equals(submitType)) {
return new ArrayList<>();
}
/**
* 启动工作流
*
* @param businessKey businessKey
* @return s
* @throws Exception e
*/
public String startFlow(String businessKey) throws Exception {
// 重新开启工作流
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = deviceList.stream()
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(StringUtils.defaultString(businessKey, "1"));
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
return dto;
})
.collect(Collectors.toList());
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) {
log.debug("开启工作流结果:{}", ajaxResult);
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]);
}
if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
throw new BaseException("开启工作流错误");
}
return ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
}
@Override
......@@ -303,130 +290,216 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
public void accept(JgEquipTransferDto jgEquipTransferDto, String op) {
String[] taskName = new String[]{"流程结束"};
String userId = RequestContext.getExeUserId();
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgEquipTransfer jgEquipTransfer = this.baseMapper.selectById(jgEquipTransferDto.getSequenceNbr());
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode("approvalStatus");
workDto.setTaskId(jgEquipTransfer.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (jgEquipTransfer.getApplyStatus().equals("6614") || jgEquipTransfer.getApplyStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
workDto.setVariable(commMap);
workDto.setComment(jgEquipTransferDto.getProcessAdvice());
processTaskDTO = cmWorkflowService.complete(jgEquipTransfer.getNextTaskId(), workDto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgEquipTransfer.setPromoter(reginParams.getUserModel().getUserId());
TaskV2Model taskV2Model = new TaskV2Model();
jgEquipTransfer.setProcessAdvice(jgEquipTransferDto.getProcessAdvice());
JgEquipTransferEq jgEquipTransferEq = jgEquipTransferEqMapper.selectOne(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId)
.eq(JgEquipTransferEq::getEquipTransferId, jgEquipTransferDto.getSequenceNbr()));
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgEquipTransfer, op);
if (submit) {
getNext(roleList, jgEquipTransferDto.getInstanceId(), taskName);
jgEquipTransfer.setApplyStatus(taskName[0]);
if ("0".equals(op)) {
if (roleList.isEmpty()) {
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgEquipTransfer.setPromoter("");
if (jgEquipTransferEq != null){
Map<String,Map<String,Object>> resultMap = new HashMap<>();
Map<String,Object> esParamMap =new HashMap<>();
esParamMap.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName());
esParamMap.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitName());
resultMap.put(jgEquipTransferEq.getEquId(),esParamMap);
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(jgEquipTransferEq.getEquId(), MapBuilder.<String, Object>create()
.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName())
.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitName())
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
}
// 上个代办改为已办
taskV2Model = commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
} else {
jgEquipTransfer.setNextExecuteIds(String.join(",", roleList));
jgEquipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) {
jgEquipTransfer.setInstanceStatus(jgEquipTransfer.getInstanceStatus() + "," + String.join(",", roleList));
jgEquipTransfer.setInstanceStatus(jgEquipTransfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
jgEquipTransfer.setInstanceStatus(String.join(",", roleList));
jgEquipTransfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
jgEquipTransfer.setPromoter(userId);
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
// 上个代办改为已办
commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
// 创建新的代办
TaskModelDto taskModelDto = TaskModelDto.builder()
.flowCreateDate(taskV2Model.getFlowCreateDate())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(taskV2Model.getTaskCode())
.taskType(taskV2Model.getTaskType())
.taskTypeLabel(taskV2Model.getTaskTypeLabel())
.relationId(taskV2Model.getRelationId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.startUserId(taskV2Model.getStartUserId())
.startUser(taskV2Model.getStartUser())
.startDate(taskV2Model.getStartDate())
.model(jgEquipTransfer)
.nextExecuteUser(workflowResultDto.getNextExecutorRoleIds())
.build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
} else {
//驳回
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
}
updateById(jgEquipTransfer);
}
}
public boolean submit(JgEquipTransfer transfer, String op) {
AjaxResult ajaxResult = Workflow.taskClient.getTask(transfer.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);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
return ajaxResult1.get("code").equals(200);
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
return false;
// 上个代办改为已办
commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", commonService.getDictionaryCodeByName(jgEquipTransfer.getApplyStatus()))
.put("taskStatusLabel", jgEquipTransfer.getApplyStatus())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(jgEquipTransfer);
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));
}
updateById(jgEquipTransfer);
}
/**
* 撤回
* @param equipTransferInfo equipTransferInfo
*/
public void cancel(JgEquipTransferDto equipTransferInfo) {
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(equipTransferInfo.getInstanceId());
JgEquipTransfer equipTransfer = this.baseMapper.selectById(equipTransferInfo.getSequenceNbr());
if (ajaxResult.getStatus() == 200) {
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(equipTransferInfo.getInstanceId());
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
equipTransfer.setPromoter("");
equipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
this.baseMapper.updateById(equipTransfer);
}
commonService.deleteTaskModel(equipTransfer.getInstanceId());
commonService.rollbackTask(equipTransfer.getInstanceId());
}
public JgEquipTransferDto updateEquipTransfer(String submitType, JgEquipTransferDto equipTransferDto, String op) {
if (Objects.isNull(equipTransferDto) || StringUtils.isEmpty(submitType))
throw new IllegalArgumentException("参数不能为空");
String[] taskName = new String[]{"流程结束"};
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 字段转换
this.convertField(equipTransferDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
equipTransferDto.setPromoter(reginParams.getUserModel().getUserId());
JgEquipTransfer transfer = this.getById(equipTransferDto.getSequenceNbr());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult;
// 发起流程
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("1");
try {
ajaxResult = Workflow.taskClient.startByVariable(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
equipTransferDto.setInstanceId(instanceId);
// 查询下节点任务
getNext(roleListFirst, instanceId, taskName);
equipTransferDto.setInstanceStatus(String.join(",", roleListFirst));
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
throw new RuntimeException(e);
}
}
JgEquipTransfer transfer = new JgEquipTransfer();
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 = new ProcessTaskDTO();
WorkflowResultDto workflowResultDto = new 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);
boolean submit = submit(transfer, op);
if (submit) {
// 查询下节点任务
getNext(roleListSecond, transfer.getInstanceId(), taskName);
transfer.setApplyStatus(taskName[0]);
if (!org.springframework.util.ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + roleListSecond);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
transfer.setInstanceStatus(String.join(",", roleListSecond));
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", roleListSecond));
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(transfer);
// 上个代办改为已办
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", commonService.getDictionaryCodeByName(transfer.getApplyStatus()));
map.put("taskStatusLabel", transfer.getApplyStatus());
map.put("relationId", transfer.getInstanceId());
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(transfer);
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 {
JgEquipTransfer bean = new JgEquipTransfer();
......
......@@ -11,9 +11,12 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
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.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
......@@ -36,15 +39,15 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.InspectionDetectionInfoMapper
import com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import com.yeejoin.amos.feign.workflow.model.*;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -90,6 +93,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
@Autowired
ICommonService commonService;
@Autowired
CommonServiceImpl commonServiceImpl;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
public Page<Map<String, Object>> getList(JgUseRegistrationDto dto, Page<Map<String, Object>> page, List<String> roleIds) {
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page, dto, roleIds);
......@@ -100,7 +107,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return this.baseMapper.getEquipListPage(page, factoryNum, equList, equCategory);
}
public void updateEquipMessage(String currentDocumentId, String useOrgCode){
public void updateEquipMessage(String currentDocumentId, String useOrgCode) {
LambdaQueryWrapper<JgRegistrationHistory> lambdaSelect = new QueryWrapper<JgRegistrationHistory>().lambda();
lambdaSelect.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambdaSelect);
......@@ -122,17 +129,17 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
idxBizJgRegisterInfoMapper.updateUseOrgCodeByEquip(String.valueOf(map.get("equipId")), useOrgCode);
}
public void updateHistory(JSONObject map, String equipId, String currentDocumentId, String supervisoryCode){
public void updateHistory(JSONObject map, String equipId, String currentDocumentId, String supervisoryCode) {
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getEquId, equipId);
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getRegistrationClass, "使用登记");
Integer integer = jgRegistrationHistoryService.getBaseMapper().selectCount(lambda);
if (integer > 0){
if (integer > 0) {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistoryService.update(jgRegistrationHistory, lambda);
}else {
} else {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistory.setStatus("new");
jgRegistrationHistory.setRegistrationClass("使用登记");
......@@ -189,7 +196,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// List<String> applicationFormCode = iCreateCodeServicevice.createApplicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
// jgUseRegistration.setApplyNo(applicationFormCode.get(0));
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
if(!ObjectUtils.isEmpty(listResponseModel)){
if (!ObjectUtils.isEmpty(listResponseModel)) {
jgUseRegistration.setApplyNo(listResponseModel.getResult().get(0));
}
jgUseRegistration.setAuditStatus("待提交");
......@@ -206,19 +213,132 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
instanceId = map.get("instanceId").toString();
} else {
// 启动并执行流程
instanceId = startByVariable();
// jgUseRegistration.setInstanceStatus("1460532889249755137");
// jgUseRegistration.setReceiveCompanyCode("610000");
updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
// instanceId = startByVariable();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ArrayList<ActWorkflowStartDTO> list = new ArrayList<>();
dto.setProcessDefinitionKey("useRegistration");
dto.setBusinessKey("test");
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
JgUseRegistration useRegistration = updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.TRUE);
buildTask(useRegistration, workflowResultDto);
}
// updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 执行流程
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "");
// 更新数据信息
updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
// updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
}
}
}
public JgUseRegistration updateData(Long sequenceNbr, String operate, WorkflowResultDto workflowResultDto, Boolean isFirst) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = workflowResultDto.getNextExecutorRoleIds();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
jgUseRegistration.setNextTaskId(workflowResultDto.getNextTaskId());
if (isFirst) {
jgUseRegistration.setInstanceStatus(workflowResultDto.getExecutorRoleIds());
jgUseRegistration.setInstanceId(workflowResultDto.getInstanceId());
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
jgUseRegistration.setNextExecuteIds(role);
jgUseRegistration.setPromoter(reginParams.getUserModel().getUserId());
if (!ObjectUtils.isEmpty(jgUseRegistration.getInstanceStatus())) {
jgUseRegistration.setInstanceStatus(jgUseRegistration.getInstanceStatus() + "," + role);
} else {
jgUseRegistration.setInstanceStatus(role);
}
if ("0".equals(operate)) {
// 通过操作
jgUseRegistration.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
} else {
// 驳回操作
jgUseRegistration.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgUseRegistration.setPromoter(null);
}
} else {
// 流程结束
jgUseRegistration.setStatus(taskCode);
if (!ObjectUtils.isEmpty(jgUseRegistration.getSupervisoryCode())) {
// 生成使用登记证编号
jgUseRegistration.setUseRegistrationCode(getCode(jgUseRegistration.getSupervisoryCode()));
jgUseRegistration.setAuditPassDate(new Date());
}
// 更新设备信息
updateEquipMessage(String.valueOf(sequenceNbr), jgUseRegistration.getUseRegistrationCode());
}
this.getBaseMapper().updateById(jgUseRegistration);
return jgUseRegistration;
}
public void test() {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ArrayList<ActWorkflowStartDTO> list = new ArrayList<>();
dto.setProcessDefinitionKey("useRegistration");
dto.setBusinessKey("test");
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
StopWatch stopWatch = new StopWatch();
stopWatch.start();
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
stopWatch.stop();
System.out.println("请求耗时:" + stopWatch.getTotalTimeSeconds());
if (!ObjectUtils.isEmpty(processTaskDTOS)) {
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(workflowResultDtos)) {
}
}
}
public void buildTask(JgUseRegistration jgUseRegistration, WorkflowResultDto workflowResultDto) {
// 代办消息
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setTaskType(String.valueOf(BusinessTypeEnum.JG_USAGE_REGISTRATION.getCode()));
dto.setTaskTypeLabel(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName());
dto.setFlowCreateDate(jgUseRegistration.getCreateDate());
dto.setTaskName(workflowResultDto.getNextTaskName());
dto.setTaskCode(workflowResultDto.getNextTaskCode());
dto.setTaskDesc("来自" + "电梯" + "【" + jgUseRegistration.getSupervisoryCode() + "】," + "【申请单号:" + jgUseRegistration.getApplyNo() + "】");
dto.setTaskContent("来自" + "电梯" + "【" + jgUseRegistration.getSupervisoryCode() + "】," + "【申请单号:" + jgUseRegistration.getApplyNo() + "】");
dto.setRelationId(workflowResultDto.getInstanceId());
dto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
dto.setTaskStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass()));
dto.setTaskStatusLabel(workflowResultDto.getNextTaskName());
dto.setStartUser(jgUseRegistration.getCreateUserId());
dto.setStartUser(jgUseRegistration.getRecUserName());
dto.setStartUserCompanyName(jgUseRegistration.getUseUnitName());
dto.setStartDate(new Date());
jgUseRegistration.setInstanceId(workflowResultDto.getInstanceId());
jgUseRegistration.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
dto.setModel(jgUseRegistration);
dto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
list.add(dto);
commonServiceImpl.buildTaskModel(list);
}
public void updateTask() {
HashMap<String, Object> map = new HashMap<>();
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(map);
}
public String startByVariable() {
......@@ -236,49 +356,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return instanceId;
}
// public String flowExecute(Long id,String instanceId, String operate, String comment, Boolean update) {
// String role = "";
// String taskName = "流程结束";
// ArrayList<String> roleList = new ArrayList<>();
// try {
// JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
// JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
// String taskId = taskMessage.getString("id");
// //组装信息
// TaskResultDTO dto = new TaskResultDTO();
// dto.setResultCode("approvalStatus");
// dto.setTaskId(taskId);
// dto.setComment(comment);
// HashMap<String, Object> map = new HashMap<>();
// map.put("approvalStatus", operate);
// dto.setVariable(map);
// //执行流程
// Workflow.taskClient.completeByTask(taskId, dto);
// // 查询下节点任务
// JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
// if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
// JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
// String nextTaskId = nextTask.getString("id");
// taskName = nextTask.getString("name");
// AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
// JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
// for (Object datum : data) {
// if (((Map) datum).containsKey("groupId")) {
// roleList.add(((Map) datum).get("groupId").toString());
// }
// }
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// role= String.join(",", roleList);
// if (update) {
// Boolean rollBack = "1".equals(operate) ? true : false;
// updateStatus(id,instanceId, taskName, role, rollBack);
// }
// return role;
// }
public void updateExecuteIds(String instanceId, Long sequenceNbr, String operate) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = "";
......@@ -342,15 +419,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
public void flowExecute(Long id, String instanceId, String operate, String comment) {
try {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(id);
JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
String taskId = taskMessage.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setTaskId(jgUseRegistration.getNextTaskId());
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
......@@ -358,43 +431,16 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
} catch (Exception e) {
e.printStackTrace();
ProcessTaskDTO complete = cmWorkflowService.complete(jgUseRegistration.getNextTaskId(), dto);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.FALSE);
}
}
// 更新下一步执行人
updateExecuteIds(instanceId, id, operate);
}
// public void updateStatus(Long id , String instanceId, String taskName, String role, Boolean rollBack) {
// ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// LambdaQueryWrapper<JgUseRegistration> lambda = new QueryWrapper<JgUseRegistration>().lambda();
// lambda.eq(JgUseRegistration::getSequenceNbr, id);
// JgUseRegistration jgUseRegistration = this.getBaseMapper().selectOne(lambda);
// if ("流程结束".equals(taskName)) {
// jgUseRegistration.setStatus(taskName);
// jgUseRegistration.setAuditStatus("已完成");
// } else {
// jgUseRegistration.setNextExecuteIds(role);
// jgUseRegistration.setPromoter(reginParams.getUserModel().getUserId());
// if (!ObjectUtils.isEmpty(jgUseRegistration.getInstanceStatus())) {
// jgUseRegistration.setInstanceStatus(jgUseRegistration.getInstanceStatus() + "," + role);
// } else {
// jgUseRegistration.setInstanceStatus(role);
// }
// UseStatusEnum message = UseStatusEnum.getMessage(taskName);
// jgUseRegistration.setStatus(message.getPass());
// }
// if (rollBack){
// this.getBaseMapper().update(jgUseRegistration, lambda);
// this.getBaseMapper().updatePromoter(jgUseRegistration.getSequenceNbr());
// }else {
// this.getBaseMapper().update(jgUseRegistration, lambda);
// }
// }
public void withdraw(String instanceId) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
......@@ -444,23 +490,23 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
public Map<String, Object> getDetail(String id, Long sequenceNbr) {
if (!ObjectUtils.isEmpty(sequenceNbr)){
if (!ObjectUtils.isEmpty(sequenceNbr)) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr);
lambda.eq(JgRegistrationHistory::getEquId, id);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
jsonObject.put("receiveOrgCode", jgUseRegistration.getReceiveCompanyCode()+"_"+jgUseRegistration.getReceiveOrgName());
jsonObject.put("receiveOrgCode", jgUseRegistration.getReceiveCompanyCode() + "_" + jgUseRegistration.getReceiveOrgName());
return jsonObject;
}
Map<String, Object> detail = this.baseMapper.getDetail(id);
Map<String, Object> inspectDetail = this.baseMapper.getInspectDetail(id);
Map<String, Object> useDetail = this.baseMapper.getUseDetail(id);
if (!ObjectUtils.isEmpty(inspectDetail)){
if (!ObjectUtils.isEmpty(inspectDetail)) {
detail.putAll(inspectDetail);
}
if (!ObjectUtils.isEmpty(useDetail)){
if (!ObjectUtils.isEmpty(useDetail)) {
detail.putAll(useDetail);
}
detail.put("proDuctPhoto", JSON.parse(String.valueOf(detail.get("proDuctPhoto"))));
......@@ -500,22 +546,22 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
throw new BadRequest("使用登记证导出失败,请稍后重试!");
}
//登记机关
if(ValidationUtil.isEmpty(useRegistration.getReceiveOrgName())){
if (ValidationUtil.isEmpty(useRegistration.getReceiveOrgName())) {
throw new BadRequest("使用登记证导出失败,登记机关为空!");
}
exportParamsMap.put("receiveOrgName", useRegistration.getReceiveOrgName());
//使用登记证编号
if(ValidationUtil.isEmpty(useRegistration.getUseRegistrationCode())){
if (ValidationUtil.isEmpty(useRegistration.getUseRegistrationCode())) {
throw new BadRequest("使用登记证导出失败,使用登记证编号为空!");
}
exportParamsMap.put("useRegistrationCode", useRegistration.getUseRegistrationCode());
//使用单位名称
if(ValidationUtil.isEmpty(useRegistration.getUseUnitName())){
if (ValidationUtil.isEmpty(useRegistration.getUseUnitName())) {
throw new BadRequest("使用登记证导出失败,使用单位名称为空!");
}
exportParamsMap.put("useUnitName", useRegistration.getUseUnitName());
//监管码
if(ValidationUtil.isEmpty(useRegistration.getSupervisoryCode())){
if (ValidationUtil.isEmpty(useRegistration.getSupervisoryCode())) {
throw new BadRequest("使用登记证导出失败,监管码为空!");
}
exportParamsMap.put("supervisoryCode", useRegistration.getSupervisoryCode());
......@@ -527,7 +573,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
//查询设备注册信息
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("RECORD", useRegistrationEq.getEquId()));
if(!ValidationUtil.isEmpty(registerInfo)){
if (!ValidationUtil.isEmpty(registerInfo)) {
//设备种类、类别、品种
String equList = registerInfo.getEquList();//设备种类
String equCategory = registerInfo.getEquCategory();//设备类别
......@@ -536,39 +582,39 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
List<EquipmentCategory> categoryList1 = commonService.getEquipmentCategoryList(equCategory, null);
List<EquipmentCategory> categoryList2 = commonService.getEquipmentCategoryList(equDefine, null);
if (CollectionUtils.isNotEmpty(categoryList0)) {
if(ValidationUtil.isEmpty(categoryList0.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList0.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备种类为空!");
}
exportParamsMap.put("equList", categoryList0.get(0).getName());
}
if (CollectionUtils.isNotEmpty(categoryList1)) {
if(ValidationUtil.isEmpty(categoryList1.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList1.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备类别为空!");
}
exportParamsMap.put("equCategory", categoryList1.get(0).getName());
}
if (CollectionUtils.isNotEmpty(categoryList2)) {
if(ValidationUtil.isEmpty(categoryList2.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList2.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备品种为空!");
}
exportParamsMap.put("equDefine", categoryList2.get(0).getName());
}
//设备代码
if(ValidationUtil.isEmpty(registerInfo.getEquCode())){
if (ValidationUtil.isEmpty(registerInfo.getEquCode())) {
throw new BadRequest("使用登记证导出失败,设备代码为空!");
}
exportParamsMap.put("equCode", registerInfo.getEquCode());
}
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOneData(useRegistrationEq.getEquId());
if(!ValidationUtil.isEmpty(useInfo)){
if(ValidationUtil.isEmpty(useInfo.getUseInnerCode())){
if (!ValidationUtil.isEmpty(useInfo)) {
if (ValidationUtil.isEmpty(useInfo.getUseInnerCode())) {
throw new BadRequest("使用登记证导出失败,设备单位内部编码为空!");
}
//单位内部编码
exportParamsMap.put("useInnerCode", useInfo.getUseInnerCode());
//设备使用地址
String fullAddress="";
String fullAddress = "";
if (!ObjectUtils.isEmpty(useInfo.getProvinceName())) {
fullAddress += useInfo.getProvinceName();
}
......@@ -584,7 +630,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(useInfo.getAddress())) {
fullAddress += useInfo.getAddress();
}
if(ValidationUtil.isEmpty(fullAddress)){
if (ValidationUtil.isEmpty(fullAddress)) {
throw new BadRequest("使用登记证导出失败,设备使用地址为空!");
}
exportParamsMap.put("fullAddress", fullAddress);
......@@ -592,8 +638,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
IdxBizJgFactoryInfo factoryInfo = idxBizJgFactoryInfoService.getOneData(useRegistrationEq.getEquId());
//产品编号(出厂编号)
if(!ValidationUtil.isEmpty(factoryInfo)){
if(ValidationUtil.isEmpty(factoryInfo.getFactoryNum())){
if (!ValidationUtil.isEmpty(factoryInfo)) {
if (ValidationUtil.isEmpty(factoryInfo.getFactoryNum())) {
throw new BadRequest("使用登记证导出失败,产品编号为空!");
}
exportParamsMap.put("factoryNum", factoryInfo.getFactoryNum());
......
......@@ -75,13 +75,13 @@
"type": "107",
"pageType": "look",
"name": "使用登记",
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=look"
"url": "/mixuap?appId=1742358052905971713&id=1734864899516952578&roleIds={roleIds}&userId={userId}&pageType=look"
},
{
"type": "107",
"pageType": "edit",
"name": "使用登记",
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=edit"
"url": "/mixuap?appId=1742358052905971713&id=1734864899516952578&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "108",
......@@ -123,13 +123,13 @@
"type": "111",
"name": "改造变更登记",
"pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1737415693835464705&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=look&noticeStatus=%s&instanceId=%s"
"url": "/mixuap?appId=1742358052905971713&id=1737415693835464705&roleIds={roleIds}&nextExecuteIds={userId}&pageType=look"
},
{
"type": "111",
"pageType": "edit",
"name": "改造变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1737415710281330690&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=edit&noticeStatus=%s&userId=%s&instanceId=%s"
"url": "/mixuap?appId=1742358052905971713&id=1737415710281330690&roleIds={roleIds}&nextExecuteIds={userId}&pageType=edit"
},
{
"type": "112",
......
......@@ -186,12 +186,12 @@ public class UseInfo extends AbstractEquipBaseEntity {
@TableField(value ="\"IS_NOT_ES\"")
private Integer isNotEs;
@TableField(value = "NEXT_INSPECT_DATE")
@TableField(value = "\"NEXT_INSPECT_DATE\"")
private Date nextInspectDate;
@TableField(value = "LAST_INSPECT_REPORT_NO")
@TableField(value = "\"LAST_INSPECT_REPORT_NO\"")
private String lastInspectReportNo;
@TableField(value = "LAST_INSPECT_TYPE")
@TableField(value = "\"LAST_INSPECT_TYPE\"")
private String lastInspectType;
}
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