Commit f7c30287 authored by suhuiguang's avatar suhuiguang

refact(注册开通):流程调整

1.联调自测修改
parent 687e0540
......@@ -86,8 +86,8 @@ public enum WorkFlowStatusEnum {
* 检验检测业务开通流程
*/
OPENING_APPLICATION_SUBMIT("开通申请提交", "openingApplicationSubmit", "开通申请待提交", "资料校对受理已退回", "申请单位已撤回"),
OPENING_APPLICATION_RECEIVE("资料校对", "openingApplicationReceive", "资料校对待受理", "业务开通确认已退回", "资料校对受理已撤回"),
OPENING_APPLICATION_PRELIMINARY("系统对接", "openingApplicationPreliminary", "系统对接中", "", "系统对接受理已撤回"),
OPENING_APPLICATION_RECEIVE("资料校对", "openingApplicationReceive", "资料校对待受理", "系统对接受理已退回", "资料校对受理已撤回"),
OPENING_APPLICATION_PRELIMINARY("系统对接", "openingApplicationPreliminary", "系统对接中", "业务开通确认已退回", "系统对接受理已撤回"),
OPENING_APPLICATION_REEXAMINE("业务开通确认", "openingApplicationReexamine", "业务开通确认待受理", "", "");
......
......@@ -18,9 +18,9 @@ public enum OpenBizTypeEnumV2 {
JC("jc", "检测机构", "检测业务"),
SYDW("jc-sydw", "使用单位", "使用单位电梯检测"),
AGW("jc-agw", "安装改造维修单位", "安改维电梯检测");
private String code;
private String unitType;
private String description;
......
......@@ -6,6 +6,7 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.model.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
......@@ -82,6 +83,18 @@ public interface WorkflowFeignClient {
@RequestMapping(value = "/v2/task/reject/{taskId}", method = RequestMethod.POST)
FeignClientResult<ProcessTaskDTO> reject(@PathVariable("taskId") String taskId, @RequestBody TaskResultDTO data) throws Exception;
/**
* 任务驳回到指定节点
*
* @param taskId 任务Id
* @param data 业务参数
* @return ProcessTaskDTO
* @throws Exception e
*/
@RequestMapping(value = "/v2/task/reject/specifiedNode/{taskId}", method = RequestMethod.POST)
FeignClientResult<ProcessTaskDTO> specifiedNode(@PathVariable("taskId") String taskId, @RequestBody TaskResultDTO data);
/**
* 工作流完成任务接口
*
......
......@@ -21,4 +21,6 @@ public interface ICmWorkflowService {
ProcessTaskDTO assign(FlowTaskVo taskVo);
ProcessTaskDTO rejectSpecifiedNode(String taskId, TaskResultDTO data);
}
......@@ -69,7 +69,7 @@ public class CmWorkflowServiceImpl implements ICmWorkflowService {
public ProcessTaskDTO reject(String taskId, TaskResultDTO data) {
ProcessTaskDTO processTaskDTO;
try {
log.info("开始请求工作流完成任务接口:/complete/standard/{taskId},请求参数:{},{}", taskId, JSONObject.toJSONString(data));
log.info("开始请求工作流驳回任务接口:/v2/task/reject/{taskId},请求参数:{},{}", taskId, JSONObject.toJSONString(data));
processTaskDTO = workflowFeignClient.reject(taskId, data).getResult();
} catch (InnerInvokException e) {
//拦截无审核人异常信息
......@@ -85,6 +85,25 @@ public class CmWorkflowServiceImpl implements ICmWorkflowService {
}
@Override
public ProcessTaskDTO rejectSpecifiedNode(String taskId, TaskResultDTO data) {
ProcessTaskDTO processTaskDTO;
try {
log.info("开始请求工作流驳回到指定节点接口:/reject/specifiedNode/{taskId},请求参数:{},{}", taskId, JSONObject.toJSONString(data));
processTaskDTO = workflowFeignClient.specifiedNode(taskId, data).getResult();
} catch (InnerInvokException e) {
//拦截无审核人异常信息
String devMessage = e.getDevMessage();
devMessage = devMessage.contains(";") ? devMessage.split(";")[0] : devMessage;
log.error(devMessage);
throw new LocalBadRequest(devMessage);
} catch (Exception e) {
log.error("调用工作流完成任务接口失败", e);
throw new RuntimeException("调用工作流完成任务接口失败");
}
return processTaskDTO;
}
@Override
public ProcessTaskDTO rollBack(String processInstanceId) {
log.info("开始请求工作流撤回接口:/rollBack/standard/{processInstanceId},请求参数:{}", processInstanceId);
return FeignUtil.remoteCall(() -> workflowFeignClient.rollBackTask(processInstanceId));
......
......@@ -346,13 +346,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if (jyjcOpeningApplication == null) {
return false;
}
if (!String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()).equals(jyjcOpeningApplication.getStatus())) {
if (!String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getName()).equals(jyjcOpeningApplication.getStatus())) {
throw new BadRequest("只有已完成的申请单才可以作废!");
}
UpdateWrapper<JyjcOpeningApplication> updateWrapper = new UpdateWrapper<>();
updateWrapper
.set("status", FlowStatusEnum.TO_BE_DISCARD.getCode())
.set("status_name", FlowStatusEnum.TO_BE_DISCARD.getName())
.set("status", FlowStatusEnum.TO_BE_DISCARD.getName())
.set("remark", remark)
.eq("SEQUENCE_NBR", sequenceNbr);
return this.update(updateWrapper);
......@@ -491,7 +490,17 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
private String buildFullAddress(TzBaseEnterpriseInfo baseEnterpriseInfo) {
return baseEnterpriseInfo.getAddress();
if (StringUtils.isEmpty(baseEnterpriseInfo.getAddress())) {
return trimNull(baseEnterpriseInfo.getProvince()) + trimNull(baseEnterpriseInfo.getCity()) + trimNull(baseEnterpriseInfo.getDistrict()) + trimNull(baseEnterpriseInfo.getStreet()) + trimNull(baseEnterpriseInfo.getCommunity());
}
if (baseEnterpriseInfo.getAddress().contains("省") || baseEnterpriseInfo.getAddress().contains("市") || baseEnterpriseInfo.getAddress().contains("自治区")) {
return baseEnterpriseInfo.getAddress();
}
return trimNull(baseEnterpriseInfo.getProvince()) + trimNull(baseEnterpriseInfo.getCity()) + trimNull(baseEnterpriseInfo.getDistrict()) + trimNull(baseEnterpriseInfo.getStreet()) + trimNull(baseEnterpriseInfo.getCommunity()) + trimNull(baseEnterpriseInfo.getAddress());
}
private String trimNull(String str) {
return str == null ? "" : str.trim();
}
private String caseRegionCode2Name(String officeRegion) {
......@@ -681,7 +690,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
complete = cmWorkflowService.complete(jyjcOpeningApplication.getNextTaskId(), dto);
} else {
complete = cmWorkflowService.reject(jyjcOpeningApplication.getNextTaskId(), dto);
}
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
......@@ -697,6 +705,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass());
jyjcOpeningApplication.setExpiryDate(DateUtil.parseDate(params.get("expiryDate").toString()));
jyjcOpeningApplication.setAgencyClassify(params.get("agencyClassify").toString());
jyjcOpeningApplication.setPromoter(RequestContext.getExeUserId());
this.sendMsg2User(jyjcOpeningApplication);
} else {
// 驳回操作
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getReject());
......@@ -749,11 +759,26 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return null;
}
private void sendMsg2User(JyjcOpeningApplication jyjcOpeningApplication) {
// 系统对接中时发送对接消息
if(jyjcOpeningApplication.getStatus().equals(WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getPass())){
String createUserId = jyjcOpeningApplication.getCreateUserId();
String relationId = jyjcOpeningApplication.getSequenceNbr() + "";
String companyType = this.OpenBizType2CompanyType(jyjcOpeningApplication.getOpenBizType());
send(createUserId, relationId, companyType);
}
}
private String OpenBizType2CompanyType(String openBizType) {
return Optional.ofNullable(OpenBizTypeEnumV2.getOneByCode(openBizType)).map(OpenBizTypeEnumV2::getUnitType).orElse(null);
}
/**
* 发送消息给发起者
*
* @param userId 接收人员
*/
private void sendMsg2User(String userId, String relationId, String companyType){
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setUserId(userId);
messageModel.setMsgTypeLabel("检验检验业务开通");
......@@ -763,7 +788,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath);
// messageModel.setCompanyType(companyType);
messageModel.setCompanyType(companyType);
Systemctl.messageClient.create(messageModel);
}
......@@ -788,16 +813,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
.orElseGet(Collections::emptyList)
.stream()
.filter(Objects::nonNull).forEach(itemCode -> {
BaseUnitLicence licence = new BaseUnitLicence();
BeanUtils.copyProperties(e, licence);
licence.setSequenceNbr(sequence.nextId());
licence.setItemCode(itemCode);
licence.setEnterpriseCertSeq(cert.getSequenceNbr().toString());
licences.add(licence);
});
BaseUnitLicence licence = new BaseUnitLicence();
BeanUtils.copyProperties(e, licence);
licence.setSequenceNbr(sequence.nextId());
licence.setItemCode(itemCode);
licence.setEnterpriseCertSeq(cert.getSequenceNbr().toString());
licences.add(licence);
});
certs.add(cert);
});
if(!enterpriseCertSeqs.isEmpty()){
if (!enterpriseCertSeqs.isEmpty()) {
baseUnitLicenceMapper.delete(new LambdaQueryWrapper<BaseUnitLicence>().in(BaseUnitLicence::getEnterpriseCertSeq, enterpriseCertSeqs));
}
if (!certs.isEmpty()) {
......@@ -903,6 +928,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jsonObject.put("taskType", BusinessTypeEnum.JY_OPENING_APPLICATION.getCode());
jsonObject.put("flowStatus", commonService.getDictionaryCodeByName(jyjcOpeningApplication.getStatus()));
jsonObject.put("flowStatusLabel", jyjcOpeningApplication.getStatus());
this.deleteMsg(taskCode, jyjcOpeningApplication.getSequenceNbr());
// 撤回删除代办
taskModelService.rollbackTask(jyjcOpeningApplication.getWorkflowProstanceId(), jsonObject);
// 更新数据
......@@ -920,6 +946,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return null;
}
private void deleteMsg(String taskCode, Long sequenceNbr) {
if(WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getCode().equals(taskCode)){
// 按照relationId查询
// 查询结果删除接口
}
}
private InstanceRuntimeData buildInstanceRuntimeData(JyjcOpeningApplicationModel jyjcOpeningApplication) {
return InstanceRuntimeData.builder()
.nextExecuteUserIds(jyjcOpeningApplication.getNextExecuteUserIds())
......@@ -1009,11 +1042,11 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
private void setPageTypeByFlowStatus(Integer flowStatus, TaskModelDto dto) {
if(flowStatus == 167264){
dto.setPageType("edit");
} else {
dto.setPageType("look");
}
// if(flowStatus == 167264){
dto.setPageType("edit");
// } else {
// dto.setPageType("look");
// }
}
private void updateTask(JyjcOpeningApplication model, WorkflowResultDto workflowResultDto, String operate) {
......@@ -1042,9 +1075,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
taskModelDto.setFlowCode(workflowResultDto.getNextTaskId());
// 退回到发起单位或者在资料校队节点时,可编辑
if (WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getCode().equals(taskCode) && "1".equals(operate) || WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getCode().equals(taskCode)) {
taskModelDto.setPageType("edit");
}
// if (WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getCode().equals(taskCode) && "1".equals(operate) || WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getCode().equals(taskCode)) {
taskModelDto.setPageType("edit");
// }
taskModelService.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
JyjcOpeningApplicationModel applicationModel = new JyjcOpeningApplicationModel();
......
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