Commit ad997621 authored by suhuiguang's avatar suhuiguang

feat(jyjc): 报检开发调整

1.需求变更,开通消息拆成两个,对接消息、签署承诺书消息
parent 197e3078
package com.yeejoin.amos.boot.module.jyjc.biz.message.factoty;
import com.yeejoin.amos.boot.module.jyjc.biz.message.open.IOpenApplicationMsgHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Component
@RequiredArgsConstructor
@Slf4j
public class OpenAppMsgFactory {
private final List<IOpenApplicationMsgHandler> openAppMsgHandlers;
private final Map<String, IOpenApplicationMsgHandler> msgHandlerMap = new ConcurrentHashMap<>();
public IOpenApplicationMsgHandler getOpenAppMsgHandler(String state) {
return msgHandlerMap.computeIfAbsent(state, k -> {
for (IOpenApplicationMsgHandler handler : openAppMsgHandlers) {
if (handler.supportState().equals(state)) {
return handler;
}
}
return new IOpenApplicationMsgHandler() {
@Override
public String supportState() {
return "";
}
@Override
public void handle(String userId, String relationId, String companyType) {
log.error("no support state:{} ", state);
}
};
});
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
public interface IOpenApplicationMsgHandler {
String supportState();
void handle(String userId, String relationId, String companyType);
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统对接受理已退回-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppConfirmRejectMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getReject();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "2").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* 系统对接通过-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockPassMsgHandler implements IOpenApplicationMsgHandler {
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1954801593064910850&lfrom=studio}")
private String msgDetailPath;
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_REEXAMINE.getPass();
}
@Override
public void handle(String userId, String relationId, String companyType) {
this.send(userId, relationId + "2", companyType);
}
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("签署承诺书");
messageModel.setBody("系统对接已完成,请尽快按照消息详情提示进行签署承诺书!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统对接受理已退回-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockRejectMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getReject();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "1").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 资料校对受理已撤回-处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockRollbackMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getRollBack();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "2").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* 系统对接中-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppReceivePassMsgHandler implements IOpenApplicationMsgHandler {
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1947557820039720961&lfrom=studio}")
private String msgDetailPath;
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getPass();
}
@Override
public void handle(String userId, String relationId, String companyType) {
this.send(userId, relationId + "1", companyType);
}
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("系统对接");
messageModel.setBody("资料校对已通过,请尽快按照消息详情提示进行系统对接!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 资料校对受理已撤回-处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppReceiveRollbackMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getRollBack();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "1").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
......@@ -42,7 +42,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.message.factoty.OpenAppMsgFactory;
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.ymt.api.dto.TzBaseEnterpriseInfoDto;
......@@ -154,12 +154,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Resource
private SnowflakeIdUtil sequence;
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1947557820039720961&lfrom=studio}")
private String msgDetailPath;
@Autowired
private MessageFeignClient messageFeignClient;
@Resource
private OpenAppMsgFactory openAppMsgFactory;
/**
* 编辑、工作台暂存逻辑
......@@ -828,6 +824,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 驳回操作, 驳回时不更新json数据
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getReject());
jyjcOpeningApplication.setPromoter("");
this.sendMsg2User(jyjcOpeningApplication);
// 驳回到发起单位时,恢复原始的开通区域,清空机构分类、核准项目
this.restoreApplicationData(jyjcOpeningApplication, params);
}
......@@ -897,40 +894,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
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);
}
String createUserId = jyjcOpeningApplication.getCreateUserId();
String relationId = jyjcOpeningApplication.getSequenceNbr() + "";
String companyType = this.OpenBizType2CompanyType(jyjcOpeningApplication.getOpenBizType());
openAppMsgFactory.getOpenAppMsgHandler(jyjcOpeningApplication.getStatus()).handle(createUserId, relationId, companyType);
}
private String OpenBizType2CompanyType(String openBizType) {
return Optional.ofNullable(OpenBizTypeEnumV2.getOneByCode(openBizType)).map(OpenBizTypeEnumV2::getUnitType).orElse(null);
}
/**
* 发送消息给发起者
*
* @param userId 接收人员
*/
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("签署承诺书");
messageModel.setBody("资料校对通过,请尽快处理后续环节!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
private void saveLicenseData2Company(JyjcOpeningApplication jyjcOpeningApplication) {
JyjcInspectionHistory history = inspectionHistoryService.getBySSeq(jyjcOpeningApplication.getSequenceNbr());
JSONObject hisData = history.getHistoryData();
......@@ -1097,7 +1070,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(jyjcOpeningApplication.getStatus(), jyjcOpeningApplication.getSequenceNbr());
this.sendMsg2User(jyjcOpeningApplication);
// 撤回到发起单位时,数据恢复到原始提交状态
this.restoreApplicationData(jyjcOpeningApplication);
// 撤回删除代办
......@@ -1132,17 +1105,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}
private void deleteMsg(String status, Long sequenceNbr) {
// 流程到<系统对接受理已退回, 资料校对受理已撤回>时删除之前的消息
if (WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getReject().equals(status) || WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getRollBack().equals(status)) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(sequenceNbr + "").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
private InstanceRuntimeData buildInstanceRuntimeData(JyjcOpeningApplicationModel jyjcOpeningApplication) {
return InstanceRuntimeData.builder()
......
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