Commit 29e82a63 authored by chenzhao's avatar chenzhao

检验业务修改

parent 55b3ceec
package com.yeejoin.amos.boot.module.jyjc.api.enums;
/**
* 业务类型枚举
*
* @author Administrator
*/
public enum BusinessTypeEnum {
/**
* 业务类型枚举
*/
JG_EQUIPMENT_HANDOVER("101", "设备移交"),
JG_INSTALLATION_NOTIFICATION("102", "安装告知"),
JG_MODIFICATION_NOTIFICATION("103", "改造告知"),
JG_MAINTENANCE_NOTIFICATION("104", "维修告知"),
JG_ADVICE_REMOVAL("105", "移装告知"),
JG_MAINTENANCE_RECORD("106", "维保备案"),
JG_USAGE_REGISTRATION("107", "使用登记"),
JG_NAME_CHANGE_REGISTRATION("108", "更名变更登记"),
JG_COMPANY_CHANGE_REGISTRATION("109", "单位变更登记"),
JG_CHANGE_REGISTRATION("110", "移装变更登记"),
JG_RENOVATION_REGISTRATION("111", "改造变更登记"),
JG_EQUIPMENT_START("112-1", "设备启用"),
JG_EQUIPMENT_STOP("112-2", "设备停用"),
JG_EQUIPMENT_MOVE("113-1", "移装报废"),
JG_EQUIPMENT_CANCEL("113-2", "注销报废"),
JY_OPENING_APPLICATION("114", "业务开通"),
JY_INSPECTION_APPLICATION_JD("115", "监督检验"),
JY_INSPECTION_APPLICATION_DS("116", "定(首)检验"),
JY_INSPECTION_APPLICATION_CHECK("117", "检验(含安全阀效验)");
private final String code;
private final String name;
BusinessTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static String getNameByType(String code) {
String name = null;
for (BusinessTypeEnum enumOne : BusinessTypeEnum.values()) {
if (enumOne.getCode().equals(code)) {
name = enumOne.getName();
break;
}
}
return name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
...@@ -165,7 +165,7 @@ public class JyjcInspectionApplicationModel extends BaseModel { ...@@ -165,7 +165,7 @@ public class JyjcInspectionApplicationModel extends BaseModel {
private String nextTaskId; private String nextTaskId;
@ApiModelProperty(value = "下一步执行人Ids") @ApiModelProperty(value = "下一步执行人Ids")
private String nextExcuteUserIds; private String nextExecuteUserIds;
@ApiModelProperty(value = "下一步任务名称") @ApiModelProperty(value = "下一步任务名称")
private String nextTaskName; private String nextTaskName;
......
...@@ -58,4 +58,6 @@ public class TaskMessageDto { ...@@ -58,4 +58,6 @@ public class TaskMessageDto {
* 设备id、使用登记使用 * 设备id、使用登记使用
*/ */
String equipId; String equipId;
String processKey;
} }
...@@ -81,22 +81,6 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -81,22 +81,6 @@ public class JyjcInspectionApplicationController extends BaseController {
} }
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<JyjcInspectionApplicationModel> updateBySequenceNbrJyjcInspectionApplication(@RequestBody JyjcInspectionApplicationModel model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.updateWithModel(model));
}
/** /**
* 根据sequenceNbr删除 * 根据sequenceNbr删除
* *
......
...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey; import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
...@@ -18,6 +19,7 @@ import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; ...@@ -18,6 +19,7 @@ import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil; import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*; import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.DocumentEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.DocumentEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultStatusEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper;
...@@ -26,6 +28,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*; ...@@ -26,6 +28,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionApplicationService; import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionApplicationService;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.JgFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.JgFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.handler.JyjcInspectionApplicationHandlerFactory; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.handler.JyjcInspectionApplicationHandlerFactory;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
...@@ -34,13 +37,12 @@ import com.yeejoin.amos.component.feign.utils.FeignUtil; ...@@ -34,13 +37,12 @@ import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model; import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow; import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO; import com.yeejoin.amos.feign.workflow.model.*;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
...@@ -98,6 +100,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -98,6 +100,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
WorkflowFeignService workflowFeignService; WorkflowFeignService workflowFeignService;
@Autowired @Autowired
CommonserviceImpl commonservice; CommonserviceImpl commonservice;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Value("classpath:/json/bizTypeInfo.json") @Value("classpath:/json/bizTypeInfo.json")
private Resource bizTypeInfo; private Resource bizTypeInfo;
...@@ -109,6 +113,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -109,6 +113,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired @Autowired
private RedisUtils redisUtils; private RedisUtils redisUtils;
@Autowired
TaskModelServiceImpl taskModelService;
public JyjcInspectionApplicationModel save(@RequestBody JSONObject obj) { public JyjcInspectionApplicationModel save(@RequestBody JSONObject obj) {
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);
...@@ -118,37 +125,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -118,37 +125,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model.setOperationType("2"); model.setOperationType("2");
} }
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (!model.getOperationType().equals("2")) { if (!model.getOperationType().equals("2")) {
String taskName = ""; String taskName = "";
if (model.getOperationType().equals("0")) { if (model.getOperationType().equals("0")) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey( model.getProcessKey()); dto.setProcessDefinitionKey(model.getProcessKey());
dto.setBusinessKey(buildOrderNo()); dto.setBusinessKey(String.valueOf(new Date().getTime()));
try { dto.setCompleteFirstTask(true);
//开启报检流程工作流 list.add(dto);
FeignClientResult ajaxResult = Workflow.taskV2Client.startByVariable(dto); actWorkflowBatchDTO.setProcess(list);
String id = JSON.parseObject(JSON.toJSONString(ajaxResult.getResult())) .get("id").toString(); dto.setNextExecuteUserCompanyCode(model.getInspectionUnitCode());
// String id = ((Map) ajaxResult.getResult()).get("id").toString(); processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
model.setProcessInstanceId(id); String instanceId = processTasks.get(0).getProcessInstance().getId();
execueFlow(MapBuilder.<String, Object>create().put("op", "提交").put("instanceId", id).put("comments", "").build()); String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
taskName = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
// region 获取下一个流程节点的数据 List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(processTasks);
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
String role = (String) nextNodeInfo.get("role"); String nextExcuteIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
taskName = (String) nextNodeInfo.get("taskName"); model.setProcessInstanceId(instanceId);
model.setNextExecuteIds(role);
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
model.setWorkflowRole(model.getWorkflowRole() + "," + role); model.setWorkflowRole(model.getWorkflowRole() + "," + nextExcuteIds);
} else { } else {
model.setWorkflowRole(role); model.setWorkflowRole(nextExcuteIds);
} }
} catch (Exception e) { model.setNextExecuteIds(nextExcuteIds);
e.printStackTrace(); model.setNextTaskId(nextTaskId);
} model.setNextTaskName(taskName);
model.setNextExecuteUserIds(nextUserIds);
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理 model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理
} else if (model.getOperationType().equals("1")) { } else if (model.getOperationType().equals("1")) {
model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode())); model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
...@@ -184,48 +193,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -184,48 +193,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
// equipInfo.setApplicationSeq(model.getSequenceNbr()); // equipInfo.setApplicationSeq(model.getSequenceNbr());
equipInfos.add(equipInfo); equipInfos.add(equipInfo);
} }
model.setEquList(model.getEquip().get(0).getOrDefault("EQU_LIST","").toString());
model.setSupervisoryCode(model.getEquip().get(0).getOrDefault("SUPERVISORY_CODE","").toString());
} }
model.setCreateUserId(reginParams.getUserModel().getUserId()); model.setCreateUserId(reginParams.getUserModel().getUserId());
model.setNumberOfEquip(equipInfos.size()); model.setNumberOfEquip(equipInfos.size());
// endregion
if (null == model.getSequenceNbr()){ if (null == model.getSequenceNbr()){
model = this.createWithModel(model); model = this.createWithModel(model);
}else { }else {
model = this.updateWithModel(model); model = this.updateWithModel(model);
} }
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals(model.getBizType() )&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
// Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
// List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
// String roleIds = String.join(",", userOrgRoleList);
String urlParams = null;
try {
model.setEquip(null);
urlParams = commonservice.toQueryParams(model);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (StringUtils.isNotBlank(model.getProcessInstanceId())){ if (StringUtils.isNotBlank(model.getProcessInstanceId())){
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date()) this.createdTaskModel(model);
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId()) }else {
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","") TaskModelDto dto = new TaskModelDto();
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo()) TaskMessageDto ta = new TaskMessageDto();
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId()) ta.setInstanceId(model.getProcessInstanceId());
.put("routePath",url.replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",model.getNextExecuteIds())+"&"+urlParams) ta.setStatus(model.getStatus());
.build()); ta.setPromoter(model.getPromoter());
ta.setNextExecuteUserIds(model.getNextExecuteUserIds());
ta.setSequenceNbr(model.getSequenceNbr());
dto.setModel(ta);
//摘要 按原有规则组装
dto.setTaskContent("来自"+model.getEquList()+"【"+model.getSupervisoryCode()+"】的业务办理,【申请单号:"+model.getApplicationNo()+"】");
//申请单号
dto.setTaskCode(model.getApplicationNo());
//业务类型枚举code值
dto.setTaskType(model.getBizType());
////业务主键
dto.setRelationId(model.getSequenceNbr()+"");
taskModelService.buildTaskModel(Arrays.asList(dto));
} }
//保存报检装备监管码 //保存报检装备监管码
...@@ -273,6 +273,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -273,6 +273,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
equipInfo.setApplicationSeq(model.getSequenceNbr()); equipInfo.setApplicationSeq(model.getSequenceNbr());
jyjcInspectionApplicationEquipService.save(equipInfo); jyjcInspectionApplicationEquipService.save(equipInfo);
} }
model.setEquList(model.getEquip().get(0).getOrDefault("EQU_LIST","").toString());
model.setSupervisoryCode(model.getEquip().get(0).getOrDefault("SUPERVISORY_CODE","").toString());
} }
// Map<String, Object> map = BeanUtil.beanToMap(model); // Map<String, Object> map = BeanUtil.beanToMap(model);
...@@ -291,58 +293,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -291,58 +293,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
} }
} }
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理 model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理
execueFlow(MapBuilder.<String, Object>create().put("op", "提交").put("instanceId", model.getProcessInstanceId()).put("comments", "").build());
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); ArrayList<String> roleList = new ArrayList<>();
String role = (String) nextNodeInfo.get("role"); String taskId = model.getNextTaskId();
String taskName = (String) nextNodeInfo.get("taskName"); //组装信息
model.setNextExecuteIds(role); TaskResultDTO task = new TaskResultDTO();
model.setPromoter(reginParams.getUserModel().getUserId()); task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "提交");
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(model.getInspectionUnitCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.complete(taskId, task);
String taskCode = FlowStatusEnum.TO_SUBMITTED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if(processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() >0){
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
model.setNextExecuteIds(String.join(",", roleList));
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
model.setWorkflowRole(model.getWorkflowRole() + "," + role); model.setWorkflowRole(model.getWorkflowRole() + "," + String.join(",", roleList));
} else { } else {
model.setWorkflowRole(role); model.setWorkflowRole(String.join(",", roleList));
} }
model.setNextTaskId(nextTaskId);
model.setPromoter(RequestContext.getExeUserId());
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode()));
model.setStatusName(FlowStatusEnum.TO_SUBMITTED.getName());
model.setNextTaskName(taskName1);
executeOneStep(model, taskName1, nextUserIds);
model.setNextExecuteIds(nextUserIds);
this.updateWithModel(model); this.updateWithModel(model);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals(model.getBizType() )&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
Map<String,Object> params = new HashMap<>();
params.put("relationId",model.getProcessInstanceId());
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
// Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
// List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
// String roleIds = String.join(",", userOrgRoleList);
String urlParams = null;
try {
model.setEquip(null);
urlParams = commonservice.toQueryParams(model);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date())
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId())
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","")
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo())
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId())
.put("routePath",url.replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",model.getNextExecuteIds())+"&"+urlParams)
// .put("routePath",url.replace("{sequenceNbr}",String.valueOf(model.getSequenceNbr())).replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",roleIds))
.build());
} }
return model; return model;
} }
...@@ -592,21 +581,46 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -592,21 +581,46 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
log.warn("JyjcInspectionApplicationModel Not Found!sequenceNbr => " + sequenceNbr); log.warn("JyjcInspectionApplicationModel Not Found!sequenceNbr => " + sequenceNbr);
return false; return false;
} }
try { String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
// 撤回流程 String[] taskName = new String[]{"流程结束"};
JSONObject jsonObject = workflowHelper.rollBack(inspectionApplicationModel.getProcessInstanceId()); // FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
if (ObjectUtils.isEmpty(jsonObject) || 200 != jsonObject.getInteger("status")) { List<String> roleListNext = new ArrayList<>();
log.error("撤回工作流错误, => {}", jsonObject); List<String> roleListAll = new ArrayList<>();
return false; ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(inspectionApplicationModel.getProcessInstanceId());
} String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
if (!org.springframework.util.ObjectUtils.isEmpty(inspectionApplicationModel.getWorkflowRole())) {
inspectionApplicationModel.setWorkflowRole(inspectionApplicationModel.getWorkflowRole() + "," + roleListAll);
} else {
inspectionApplicationModel.setWorkflowRole(inspectionApplicationModel);
}
// 待调整
taskCode = processTaskDTO.getNextTask().get(0).getKey();
inspectionApplicationModel.setStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
inspectionApplicationModel.setStatusName(FlowStatusEnum.ROLLBACK.getName());
inspectionApplicationModel.setPromoter("");
inspectionApplicationModel.setNextTaskId(nextTaskId);
inspectionApplicationModel.setNextExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
inspectionApplicationModel.setNextExecuteIds(String.join(",", roleListNext));
JyjcInspectionApplication jyjcInspectionApplication = new JyjcInspectionApplication();
BeanUtils.copyProperties(inspectionApplicationModel,jyjcInspectionApplication);
this.getBaseMapper().updateById(jyjcInspectionApplication);
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(inspectionApplicationModel));
jsonObject.put("nextTaskId", inspectionApplicationModel.getNextTaskId());
jsonObject.put("nextExecuteUser", inspectionApplicationModel.getNextExecuteIds());
jsonObject.put("taskType", BusinessTypeEnum.g);
jsonObject.put("flowStatus",FlowStatusEnum.ROLLBACK.getCode());
jsonObject.put("flowStatusLabel",FlowStatusEnum.ROLLBACK.getName());
taskModelService.rollbackTask(inspectionApplicationModel.getProcessInstanceId(), jsonObject);
updateModelByInstanceId(inspectionApplicationModel.getSequenceNbr(), inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.ROLLBACK.getCode() + "").build(), true); updateModelByInstanceId(inspectionApplicationModel.getSequenceNbr(), inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.ROLLBACK.getCode() + "").build(), true);
commonservice.deleteTaskModel(inspectionApplicationModel.getProcessInstanceId());
return true; return true;
} catch (Exception e) {
e.printStackTrace();
log.error("撤回工作流错误, => {}", inspectionApplicationModel.getProcessInstanceId(), e);
return false;
}
} }
public void updateModelByInstanceId(Long sequenceNbr, String instanceId, Map<String, Object> params, Boolean rollBack) { public void updateModelByInstanceId(Long sequenceNbr, String instanceId, Map<String, Object> params, Boolean rollBack) {
...@@ -656,4 +670,96 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -656,4 +670,96 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
this.updateById(entity); this.updateById(entity);
} }
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
processTasks.forEach(p -> {
p.getNextCandidateGroups().values().forEach(e -> {
roleListNext.addAll(e);
roleListAll.addAll(e);
});
roleListAll.addAll(p.getCandidateGroups());
});
}
private void createdTaskModel(JyjcInspectionApplicationModel model){
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
TaskModelDto dto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(model.getProcessInstanceId());
ta.setStatus(model.getStatus());
ta.setPromoter(model.getPromoter());
ta.setNextExecuteUserIds(model.getNextExecuteUserIds());
ta.setSequenceNbr(model.getSequenceNbr());
ta.setProcessKey(model.getProcessKey());
dto.setModel(ta);
dto.setFlowCreateDate(new Date());
dto.setTaskName(model.getNextTaskName());
dto.setFlowCode(model.getNextTaskId());
dto.setTaskContent("来自"+model.getEquList()+"【"+model.getSupervisoryCode()+"】的业务办理,【申请单号:"+model.getApplicationNo()+"】");
dto.setTaskCode(model.getApplicationNo());
dto.setTaskType(model.getBizType());
dto.setTaskTypeLabel(BizTypeEnum.getNameByCode(model.getBizType()));
dto.setRelationId(model.getInstanceId());
dto.setExecuteUserIds(model.getNextExecuteUserIds());
dto.setTaskStatusLabel("未处理");
dto.setFlowStatus(Integer.valueOf(model.getStatus()));
dto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setStartUserId(RequestContext.getExeUserId());
dto.setStartUser(model.getCreateUserId());
dto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
dto.setStartDate(new Date());
dto.setNextExecuteUser(model.getNextExecuteIds());
taskModelService.buildTaskModel(Arrays.asList(dto));
}
private void executeOneStep(JyjcInspectionApplicationModel model, String taskName, String nextUserIds) {
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(model);
taskV2Model.setTaskDesc("");
taskV2Model.setTaskName(taskName);
taskV2Model.setTaskCode(model.getApplicationNo());
taskV2Model.setExecuteUserIds(nextUserIds);
taskV2Model.setRelationId(model.getProcessInstanceId());
taskV2Model.setTaskStatus(Integer.valueOf(model.getStatus()));
taskV2Model.setTaskStatusLabel(model.getStatusName());
taskV2Model.setFlowStatus(Integer.valueOf(model.getStatus()));
taskV2Model.setFlowStatusLabel(model.getStatusName());
// taskV2Model.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
// taskV2Model.setStartUser(jgChangeRegistrationName.getCreateUserName());
// taskV2Model.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
// taskV2Model.setStartDate(jgChangeRegistrationName.getCreateDate());
// taskV2Model.setStartUserId(jgChangeRegistrationName.getCreateUserId());
// taskV2Model.setStartUserCompanyName(jgChangeRegistrationName.getUseUnitName());
taskV2Model.setExecuteUserIds(nextUserIds);
TaskModelDto modelDto = new TaskModelDto();
BeanUtil.copyProperties(taskV2Model, modelDto);
modelDto.setNextExecuteUser(model.getNextExecuteIds());
if (model.getStatus().equals(FlowStatusEnum.REJECTED.getCode())){
modelDto.setPageType("edit");
}
TaskMessageDto obj = new TaskMessageDto();
obj.setInstanceId(model.getProcessInstanceId());
obj.setStatus(model.getStatus());
obj.setPromoter(model.getPromoter());
obj.setNextExecuteUserIds(model.getNextExecuteUserIds());
obj.setSequenceNbr(model.getSequenceNbr());
modelDto.setModel(obj);
// 再插入新代办、数据待定
taskModelService.buildTaskModel(Collections.singletonList(modelDto));
}
private TaskV2Model updateTaskModel(JyjcInspectionApplicationModel model) {
Map<String, Object> params = new HashMap<>();
params.put("relationId",model.getInstanceId());
params.put("taskStatus", model.getStatus());
params.put("taskStatusLabel", model.getStatusName());
params.put("flowStatus",model.getStatus());
params.put("flowStatusLabel",model.getStatusName());
params.put("model",model);
return taskModelService.updateTaskModel(params);
}
} }
\ No newline at end of file
[ [ {
"type":"supervise",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1734576595978448898&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"firstinspect",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1736728282272919554&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"detection",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1736733779709423618&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{ {
"type":"supervise", "type":"supervise",
"pageType": "look", "pageType": "look",
......
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