Commit 7e63b745 authored by caotao's avatar caotao

改造变更登记接口调整为优化后的接口

parent 87b7aa6b
package com.yeejoin.amos.boot.module.jg.api.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -18,7 +21,7 @@ import java.util.Map;
public interface IJgChangeRegistrationReformService {
Page<Map<String, Object>> getList(JgChangeRegistrationReformDto dto, Page<Map<String, Object>> page, List<String> roleIds);
void save(JSONObject map);
void updateExecuteIds(String instanceId, Long sequenceNbr, String operate);
void updateExecuteIds(String instanceId, JgChangeRegistrationReform jgChangeRegistrationReform, String operate, ProcessTaskDTO processTaskDTO);
void flowExecute(Long id, String instanceId, String operate, String comment);
void withdraw(String instanceId);
void deleteBatch(List<Long> ids);
......
......@@ -9,7 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.TaskModelDto;
import com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto;
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.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
......@@ -17,18 +20,18 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationReformSe
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto;
import com.yeejoin.amos.boot.module.jg.api.service.IJgRegistrationHistoryService;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgUseInfoService;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
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.*;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
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.transaction.annotation.Transactional;
......@@ -61,9 +64,9 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Autowired
RedisUtils redisUtils;
@Autowired
ICommonService commonService;
CommonServiceImpl commonServiceImpl;
@Autowired
private IIdxBizJgUseInfoService useInfoService;
ICmWorkflowService iCmWorkflowService;
@Autowired
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
@Autowired
......@@ -71,10 +74,6 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Autowired
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
@Autowired
private UseInfoMapper useInfoMapper;
@Autowired
private InspectionDetectionInfoMapper inspectionDetectionInfoMapper;
@Autowired
private OtherInfoMapper otherInfoMapper;
//改造登记关系表mapper
@Autowired
......@@ -91,16 +90,12 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
private JgUseRegistrationEqMapper jgUseRegistrationEqMapper;
@Autowired
private IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
@Autowired
private IdxBizJgOtherInfoMapper idxBizJgOtherInfoMapper;
//单位变更登记关系表mapper
@Autowired
private JgChangeRegistrationUnitEqMapper jgChangeRegistrationUnitEqMapper;
//更名变更登记关系表mapper
@Autowired
private JgChangeRegistrationNameEqMapper jgChangeRegistrationNameEqMapper;
@Autowired
private IJgRegistrationHistoryService jgRegistrationHistoryService;
/**
* 分页查询
......@@ -128,8 +123,8 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
String supervisoryCode = otherInfo.getSupervisoryCode();
jgChangeRegistrationReform.setSupervisoryCode(supervisoryCode);
jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName())?reginParams.getCompany().getCompanyName():useInfo.getUseUnitName());
jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode())?reginParams.getCompany().getCompanyCode():useInfo.getUseUnitCreditCode());
jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName()) ? reginParams.getCompany().getCompanyName() : useInfo.getUseUnitName());
jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode()) ? reginParams.getCompany().getCompanyCode() : useInfo.getUseUnitCreditCode());
if (!ObjectUtils.isEmpty(map.get("transformationQualityCertificate"))) {
jgChangeRegistrationReform.setTransformationQualityCertificate(JSONObject.toJSONString(map.get("transformationQualityCertificate")));
......@@ -207,65 +202,64 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
String instanceId = "";
if (!ObjectUtils.isEmpty(map.get("instanceId"))) {
instanceId = map.get("instanceId").toString();
// 如果是旧流程则执行一步
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), instanceId, "0", "");
// updateExecuteIds(instanceId, jgChangeRegistrationReform.getSequenceNbr(), "0");
} else {
// 启动并执行流程
instanceId = startByVariable();
updateExecuteIds(instanceId, jgChangeRegistrationReform.getSequenceNbr(), "0");
}
// 如果是新启动的流程开启自动访问
if (!ObjectUtils.isEmpty(instanceId)) {
// 执行流程
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), instanceId, "0", "");
updateExecuteIds(instanceId, jgChangeRegistrationReform.getSequenceNbr(), "0");
ProcessTaskDTO processTaskDTO = startByVariable();
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
// commonServiceImpl.buildTaskModel(taskModelDtoList);
}
// if (!ObjectUtils.isEmpty(instanceId)) {
// // 执行流程
// flowExecute(jgChangeRegistrationReform.getSequenceNbr(), instanceId, "0", "");
// updateExecuteIds(instanceId, jgChangeRegistrationReform.getSequenceNbr(), "0");
// }
}
}
public String startByVariable() {
String instanceId = "";
public ProcessTaskDTO startByVariable() {
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
//启动流程
try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey("renovationRegistrationReviewNew");
dto.setBusinessKey("submit");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
dto.setCompleteFirstTask(Boolean.TRUE);
List<ActWorkflowStartDTO> actWorkflowStartDTOList = Arrays.asList(dto);
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
actWorkflowBatchDTO.setProcess(actWorkflowStartDTOList);
List<ProcessTaskDTO> result = iCmWorkflowService.startBatch(actWorkflowBatchDTO);
if (!result.isEmpty()) {
processTaskDTO = result.get(0);
}
} catch (Exception e) {
e.printStackTrace();
}
return instanceId;
return processTaskDTO;
}
public void updateExecuteIds(String instanceId, Long sequenceNbr, String operate) {
public void updateExecuteIds(String instanceId, JgChangeRegistrationReform jgChangeRegistrationReform, String operate, ProcessTaskDTO processTaskDTO) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = "";
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
ArrayList<String> roleList = new ArrayList<>();
JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(sequenceNbr);
try {
// 查询下节点任务
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");
FeignClientResult<JSONObject> nodeInfo = workFlowFeginService.getNodeInfo(nextTaskId);
JSONObject result = nodeInfo.getResult();
Map<String, Object> taskInfo = (Map<String, Object>) result.get("taskInfo");
taskCode = String.valueOf(taskInfo.get("taskDefinitionKey"));
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();
WorkflowResultDto workflowResultDto = conveterProcessTaskDTO2WorkflowResultDto(processTaskDTO);
String nextTaskid = Optional.ofNullable(workflowResultDto.getNextTaskId()).orElse("");
String taskCode =FlowStatusEnum.TO_BE_FINISHED.getName();
if(!ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())){
taskCode = Optional.ofNullable(workflowResultDto.getNextTaskCode()).orElse("");
}
String role =Optional.ofNullable(workflowResultDto.getNextExecutorRoleIds()).orElse("");
if(operate.equals("startWorkfow")){
role =Optional.ofNullable(workflowResultDto.getExecutorRoleIds()).orElse("")+","+Optional.ofNullable(workflowResultDto.getNextExecutorRoleIds()).orElse("");
operate = "0";
instanceId =workflowResultDto.getInstanceId();
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
role = String.join(",", roleList);
jgChangeRegistrationReform.setNextTaskId(nextTaskid);
jgChangeRegistrationReform.setNextExecutorIds(role);
jgChangeRegistrationReform.setPromoter(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setInstanceId(instanceId);
......@@ -284,7 +278,6 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgChangeRegistrationReform.setPromoter(null);
}
} else {
jgChangeRegistrationReform.setAuditPassDate(new Date());
jgChangeRegistrationReform.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -298,11 +291,12 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
public void flowExecute(Long id, String instanceId, String operate, String comment) {
try {
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(id);
JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
String taskId = taskMessage.getString("id");
try {
// JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
// JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
String taskId = jgChangeRegistrationReform.getNextTaskId();
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
......@@ -311,56 +305,36 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
//2023年12月27日16点33分 流程状态为起草人撤回或者一级审批驳回时需要将提交时的已同意修改为已提交
if(!ObjectUtils.isEmpty(jgChangeRegistrationReform)&&(jgChangeRegistrationReform.getStatus().equals(WorkFlowStatusEnum.CHANGE_SUBMIT.getRollBack())||jgChangeRegistrationReform.getStatus().equals(WorkFlowStatusEnum.CHANGE_SUBMIT.getReject()))){
if (!ObjectUtils.isEmpty(jgChangeRegistrationReform) && (jgChangeRegistrationReform.getStatus().equals(WorkFlowStatusEnum.CHANGE_SUBMIT.getRollBack()) || jgChangeRegistrationReform.getStatus().equals(WorkFlowStatusEnum.CHANGE_SUBMIT.getReject()))) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
processTaskDTO = iCmWorkflowService.complete(taskId, dto);
} catch (Exception e) {
e.printStackTrace();
}
// 更新下一步执行人
updateExecuteIds(instanceId, id, operate);
updateExecuteIds(instanceId, jgChangeRegistrationReform, operate, processTaskDTO);
}
public void withdraw(String instanceId) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String taskCode = "";
JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
LambdaQueryWrapper<JgChangeRegistrationReform> lambda = new QueryWrapper<JgChangeRegistrationReform>().lambda();
lambda.eq(JgChangeRegistrationReform::getInstanceId, instanceId);
ArrayList<String> roleList = new ArrayList<>();
try {
workFlowFeginService.rollBack(instanceId);
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
String nextTaskId = nextTask.getString("id");
FeignClientResult<JSONObject> nodeInfo = workFlowFeginService.getNodeInfo(nextTaskId);
JSONObject result = nodeInfo.getResult();
Map<String, Object> taskInfo = (Map<String, Object>) result.get("taskInfo");
taskCode = String.valueOf(taskInfo.get("taskDefinitionKey"));
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();
}
ProcessTaskDTO processTaskDTO = iCmWorkflowService.rollBack(instanceId);
WorkflowResultDto workflowResultDto = conveterProcessTaskDTO2WorkflowResultDto(processTaskDTO);
String taskCode = Optional.ofNullable(workflowResultDto.getNextTaskCode()).orElse("");
String role = Optional.ofNullable(workflowResultDto.getNextExecutorRoleIds()).orElse("");
if (!ObjectUtils.isEmpty(taskCode)) {
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
}
String join = String.join(",", roleList);
jgChangeRegistrationReform.setPromoter(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setNextExecutorIds(join);
jgChangeRegistrationReform.setNextExecutorIds(role);
this.update(jgChangeRegistrationReform, lambda);
}
......@@ -540,9 +514,9 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
String equList = registerInfo.getEquList();//设备种类
String equCategory = registerInfo.getEquCategory();//设备类别
String equDefine = registerInfo.getEquDefine();//设备品种
List<EquipmentCategory> categoryList0 = commonService.getEquipmentCategoryList(equList, null);
List<EquipmentCategory> categoryList1 = commonService.getEquipmentCategoryList(equCategory, null);
List<EquipmentCategory> categoryList2 = commonService.getEquipmentCategoryList(equDefine, null);
List<EquipmentCategory> categoryList0 = commonServiceImpl.getEquipmentCategoryList(equList, null);
List<EquipmentCategory> categoryList1 = commonServiceImpl.getEquipmentCategoryList(equCategory, null);
List<EquipmentCategory> categoryList2 = commonServiceImpl.getEquipmentCategoryList(equDefine, null);
if (CollectionUtils.isNotEmpty(categoryList0)) {
if (ValidationUtil.isEmpty(categoryList0.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备种类为空!");
......@@ -611,7 +585,70 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
exportParamsMap.put("factoryNum", factoryInfo.getFactoryNum());
}
//调用生成使用登记证
commonService.generateCertificateReport(exportParamsMap, response);
commonServiceImpl.generateCertificateReport(exportParamsMap, response);
}
/**
* @return String
* @deprecated 动态获取
*/
public String getSummaryInfo(JgChangeRegistrationReform jgChangeRegistrationReform) {
String result = "来自%s【%s】的业务办理,【申请单号:%s】";
return String.format("电梯", jgChangeRegistrationReform.getSupervisoryCode(), jgChangeRegistrationReform.getApplyNo());
}
public TaskModelDto getTaskModelDtoList(JgChangeRegistrationReform jgChangeRegistrationReform, ProcessTaskDTO processTaskDTO) {
List<WorkflowResultDto> workflowResultDtoList = commonServiceImpl.buildWorkFlowInfo(Arrays.asList(processTaskDTO));
WorkflowResultDto workflowResultDto = conveterProcessTaskDTO2WorkflowResultDto(processTaskDTO);
TaskModelDto taskModelDto = new TaskModelDto();
//工作流创建时间
taskModelDto.setFlowCreateDate(jgChangeRegistrationReform.getCreateDate());
//工作流返回节点名称
taskModelDto.setTaskName(processTaskDTO.getNextTask().get(0).getName());
//taskCode 使用申请单编号
taskModelDto.setTaskCode(jgChangeRegistrationReform.getApplyNo());
//摘要
taskModelDto.setTaskContent(getSummaryInfo(jgChangeRegistrationReform));
//任务描述-非必填
taskModelDto.setTaskDesc(null);
//任务类型
taskModelDto.setTaskType(BusinessTypeEnum.JG_RENOVATION_REGISTRATION.getCode());
//任务类型名称
taskModelDto.setTaskType(BusinessTypeEnum.JG_RENOVATION_REGISTRATION.getName());
//工作流实例id
taskModelDto.setRelationId(jgChangeRegistrationReform.getInstanceId());
//执行人id
taskModelDto.setExecuteUserIds(workflowResultDto.getExecutorId());
//任务状态code
// taskModelDto.setTaskStatus();
//任务状态名称
taskModelDto.setTaskStatusLabel(jgChangeRegistrationReform.getStatus());
//任务创建人id
taskModelDto.setStartUserId(jgChangeRegistrationReform.getCreateUserId());
//任务创建人名称
taskModelDto.setStartUser(workflowResultDto.getStartUserName());
//任务发起人所在单位
// taskModelDto.setStartUserCompanyName(startUser.getCompanys().get(0).getCompanyName());
//任务发起人发起时间
taskModelDto.setStartDate(new Date());
//跳转路径
// taskModelDto.setRoutePath();
return taskModelDto;
}
/**
* 将processTaskDTO转换成WorkflowResultDto
*
* @param processTaskDTO
* @return
*/
public WorkflowResultDto conveterProcessTaskDTO2WorkflowResultDto(ProcessTaskDTO processTaskDTO) {
List<WorkflowResultDto> workflowResultDtoList = commonServiceImpl.buildWorkFlowInfo(Arrays.asList(processTaskDTO));
WorkflowResultDto workflowResultDto = new WorkflowResultDto();
if (!workflowResultDtoList.isEmpty()) {
workflowResultDto = workflowResultDtoList.get(0);
}
return workflowResultDto;
}
}
\ 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