| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package com.ydtech.modules.xxl.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.ins.model.InsOrder;
- import com.ydtech.modules.ins.model.guoren.InsOrderStatusResp;
- import com.ydtech.modules.order.components.ConfigureParametersComponents;
- import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
- import com.ydtech.modules.order.components.huatai.HuaTaiRequestApiComponents;
- import com.ydtech.modules.order.entity.api.guoren.constants.PlatformInterfaceCode;
- import com.ydtech.modules.order.entity.api.guoren.request.ApplicationDetailsRequest;
- import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseRequestHead;
- import com.ydtech.modules.order.entity.api.huatai.constants.HuaTaiSubmitCommon;
- import com.ydtech.modules.order.entity.api.huatai.request.HuaTaiSubmitStatusQueryRequest;
- import com.ydtech.modules.order.entity.api.huatai.response.HuaTaiSubmitStatusQueryResponse;
- import com.ydtech.modules.order.entity.config.HuaTaiConfigureParameters;
- import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
- import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
- import com.ydtech.modules.xxl.model.InsAreaCompany;
- import com.ydtech.modules.xxl.model.QueryStatusResult;
- import com.ydtech.modules.xxl.service.BaseQueryStatusService;
- import lombok.RequiredArgsConstructor;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Component;
- import org.springframework.stereotype.Service;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- @Service
- @RequiredArgsConstructor
- public class HuaTaiQueryStatusService implements BaseQueryStatusService {
- private final ConfigureParametersComponents configureParametersComponents;
- private final HuaTaiRequestApiComponents huaTaiRequestApiComponents;
- private final PtlAgreementAttributionService ptlAgreementAttributionService;
- public HuaTaiSubmitStatusQueryResponse submitStatus(InsAreaCompany insAreaCompany,
- HuaTaiConfigureParameters huaTaiConfigureParameters,
- String operateType) {
- com.ydtech.modules.order.entity.InsAreaCompany insAreaCompanyParam = JSONObject.parseObject(
- JSONObject.toJSONString(insAreaCompany),
- com.ydtech.modules.order.entity.InsAreaCompany.class);
- HuaTaiSubmitStatusQueryRequest huaTaiSubmitStatusQueryRequest =
- new HuaTaiSubmitStatusQueryRequest(insAreaCompanyParam,
- huaTaiConfigureParameters, operateType);
- huaTaiSubmitStatusQueryRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
- HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse =
- huaTaiRequestApiComponents.submitStatus(huaTaiSubmitStatusQueryRequest,
- HuaTaiSubmitStatusQueryResponse.class, huaTaiConfigureParameters.getInsuredCode());
- return submitStatusQueryResponse;
- }
- private HuaTaiSubmitCommon getSubmitStatus(InsAreaCompany insAreaCompany,
- HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse) {
- HuaTaiSubmitCommon huaTaiSubmitCommon = new HuaTaiSubmitCommon();
- boolean haveJQFlag = false;
- boolean haveSYFlag = false;
- String jqStatus = "";
- String syStatus = "";
- StringBuffer jqNotion = new StringBuffer();
- StringBuffer syNotion = new StringBuffer();
- for (HuaTaiSubmitStatusQueryResponse.AppliResult appliResult : submitStatusQueryResponse.getAppliResult()) {
- if (org.apache.commons.lang3.StringUtils.isNotEmpty(insAreaCompany.getJqapplyno())) {
- haveJQFlag = true;
- if (insAreaCompany.getJqapplyno().equals(appliResult.getContractNo())) {
- jqStatus = appliResult.getUnderWriteFlag();
- for (HuaTaiSubmitStatusQueryResponse.Notion notion : appliResult.getNotion()) {
- jqNotion.append(notion.getUWNotion() + ",");
- }
- }
- }
- if (org.apache.commons.lang3.StringUtils.isNotEmpty(insAreaCompany.getSyapplyno()) && insAreaCompany.getSyapplyno().equals(appliResult.getContractNo())) {
- haveSYFlag = true;
- syStatus = appliResult.getUnderWriteFlag();
- for (HuaTaiSubmitStatusQueryResponse.Notion notion : appliResult.getNotion()) {
- syNotion.append(notion.getUWNotion() + ",");
- }
- }
- }
- /**
- * 0 初始状态默认值
- * 1 已通过核保已实收
- * 2 待修改
- * 4 主动撤回(出单员撤回)
- * 6 下发修改(核保员下发)
- * 8 已通过核保未实收
- * 9 待核保
- */
- String totalUnderWriteInd = "";
- //同保交商
- if (haveJQFlag && haveSYFlag) {
- //已通过核保未实收
- if ("8".contains(jqStatus) && "8".contains(syStatus)) {
- totalUnderWriteInd = "8";
- } else if ("1".contains(jqStatus) || "1".contains(syStatus)) {
- totalUnderWriteInd = "1";
- } else if ("9".contains(jqStatus) || "9".contains(syStatus)) {
- totalUnderWriteInd = "9";
- } else {
- totalUnderWriteInd = "6";
- }
- } else {//单保交强或单保商业
- String status = jqStatus;
- if (StringUtils.isNotEmpty(syStatus)) {
- status = syStatus;
- }
- if ("8".contains(status)) {
- totalUnderWriteInd = "8";
- } else if ("1".contains(status)) {
- totalUnderWriteInd = "1";
- } else if ("9".contains(status)) {
- totalUnderWriteInd = "9";
- } else {
- totalUnderWriteInd = "6";
- }
- }
- huaTaiSubmitCommon.setTotalUnderWriteInd(totalUnderWriteInd);
- huaTaiSubmitCommon.setNotion(jqNotion.toString() + syNotion.toString());
- return huaTaiSubmitCommon;
- }
- /**
- *
- * @param insAreaCompany 业务订单
- * @return
- */
- @Override
- public QueryStatusResult queryStatus(InsAreaCompany insAreaCompany) {
- QueryStatusResult queryStatusResult = new QueryStatusResult();
- queryStatusResult.setStatus(false);
- // 获取协议配置信息
- // 1. 协议id获取配置实体
- PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
- if(ptlAgreementAttribution == null) {
- return queryStatusResult;
- }
- HuaTaiConfigureParameters huaTaiConfigureParameters =
- configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
- ptlAgreementAttribution);
- // 2. 组装请求体
- HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(insAreaCompany,
- huaTaiConfigureParameters, "2");
- HuaTaiSubmitCommon huaTaiSubmitCommon = getSubmitStatus(insAreaCompany, submitStatusQueryResponse);
- // 3. 通过返回核保状态修改状态
- if ("1".equals(huaTaiSubmitCommon.getTotalUnderWriteInd())) {//已通过核保已实收
- queryStatusResult.setStatus(true);
- queryStatusResult.setPayTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- }
- return queryStatusResult;
- }
- }
|