chenchaod hace 1 día
padre
commit
07d3b19378

+ 167
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/AbstCallBackCommManager.java Ver fichero

@@ -0,0 +1,167 @@
package cn.com.taiji.inss.manager;

import cn.com.taiji.core.entity.basic.QtkCardInfo;
import cn.com.taiji.core.entity.basic.QtkCustomerInfo;
import cn.com.taiji.core.entity.basic.QtkObuInfo;
import cn.com.taiji.core.entity.basic.QtkVehicleInfo;
import cn.com.taiji.core.entity.dict.issue.TransactionBizType;
import cn.com.taiji.core.entity.dict.ygz.DataSourceEnum;
import cn.com.taiji.core.entity.dict.ygz.NioTransferType;
import cn.com.taiji.core.entity.dict.ygz.Operation;
import cn.com.taiji.core.entity.issue.TransactionStatus;
import cn.com.taiji.core.entity.ygz.DaspYgzHasSend;
import cn.com.taiji.core.model.comm.protocol.ias.ygz.*;
import cn.com.taiji.core.repo.jpa.issue.TransactionStatusRepo;
import cn.com.taiji.core.repo.jpa.ygz.DaspYgzHasSendRepo;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;

/**
* @Author:ChenChao
* @Date:2025/9/28 21:46
* @Filename:AbstCallBackCommManager
* @description:
*/
public abstract class AbstCallBackCommManager extends AbstractCommManager{

@Autowired
protected DaspYgzHasSendRepo ygzHasSendRepo;
@Autowired
protected TransactionStatusRepo transactionStatusRepo;

protected YgzUserUploadRequest handleUser(QtkCustomerInfo customerInfo,Operation operation) {
YgzUserUploadRequest request = new YgzUserUploadRequest();
request.setDataSource(DataSourceEnum.DSI_INTERFACE);
request.setCustomer(customerInfo);
request.setStatusChangeTime(LocalDateTime.now());
request.setSync(false);
request.setOperation(operation);
return request;
}
protected DaspYgzHasSend userUploadYgz(YgzUserUploadRequest ygzRequest) {
DaspYgzHasSend data = newDaspYgzData(ygzRequest.toJson(), ygzRequest.getCustomer().getCustomerId(), ygzRequest.getOperation(), NioTransferType.USERUPLOAD);
try {
YgzUserUploadResponse response = jsonPostRepeat(ygzRequest);
if (response == null) {
ygzHasSendRepo.save(data.setYgzSendResult("返回值为空").setSuccess(false));
} else if (response.isSuccess()) {
data.setCurrentSendStatus(1);
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(true));
} else {
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(false));
}
} catch (Exception e) {
logger.error("营改增错误-个人上传:", e);
ygzHasSendRepo.save(data.setYgzSendResult(e.getMessage()).setSuccess(false));
}
return data;
}
protected YgzVehicleUploadRequest handleVehicle(QtkVehicleInfo vehicleInfo, Operation operation) {
YgzVehicleUploadRequest request = new YgzVehicleUploadRequest();
request.setDataSource(DataSourceEnum.DSI_INTERFACE);
request.setVehicle(vehicleInfo);
request.setSync(false);
request.setOperation(operation);
return request;
}

protected DaspYgzHasSend vehicleUploadYgz(YgzVehicleUploadRequest ygzRequest) {
DaspYgzHasSend data = newDaspYgzData(ygzRequest.toJson(), ygzRequest.getVehicle().getVehicleId(), ygzRequest.getOperation(), NioTransferType.VEHICLEUPLOAD);
try {
YgzVehicleUploadResponse response = jsonPostRepeat(ygzRequest);
if (response == null) {
ygzHasSendRepo.save(data.setYgzSendResult("返回值为空").setSuccess(false));
} else if (response.isSuccess()) {
data.setCurrentSendStatus(1);
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(true));
} else {
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(false));
}
} catch (Exception e) {
logger.error("营改增错误-车辆上传:", e);
ygzHasSendRepo.save(data.setYgzSendResult(e.getMessage()).setSuccess(false));
}
return data;
}

protected YgzCardUploadRequest handleCard(QtkCardInfo card,Operation operation) {
YgzCardUploadRequest request = new YgzCardUploadRequest();
request.setDataSource(DataSourceEnum.DSI_INTERFACE);
request.setCard(card);
request.setSync(false);
request.setOperation(operation);
return request;
}

protected DaspYgzHasSend cardUploadYgz(YgzCardUploadRequest ygzRequest) {
DaspYgzHasSend data = newDaspYgzData(ygzRequest.toJson(), ygzRequest.getCard().getCardId(), ygzRequest.getOperation(), NioTransferType.CARDUPLOAD);
try {
YgzCardUploadResponse response = jsonPostRepeat(ygzRequest);
if (response == null) {
ygzHasSendRepo.save(data.setYgzSendResult("返回值为空").setSuccess(false));
} else if (response.isSuccess()) {
data.setCurrentSendStatus(1);
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(true));
} else {
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(false));
}
} catch (Exception e) {
logger.error("营改增错误-卡上传:", e);
ygzHasSendRepo.save(data.setYgzSendResult(e.getMessage()).setSuccess(false));
}
return data;
}
protected YgzObuUploadRequest handleObu(QtkObuInfo obuInfo,Operation operation) {
YgzObuUploadRequest request = new YgzObuUploadRequest();
request.setDataSource(DataSourceEnum.DSI_INTERFACE);
request.setObu(obuInfo);
request.setSync(false);
request.setOperation(operation);
return request;
}
protected DaspYgzHasSend obuUploadYgz(YgzObuUploadRequest ygzRequest) {
DaspYgzHasSend data = newDaspYgzData(ygzRequest.toJson(), ygzRequest.getObu().getObuId(), ygzRequest.getOperation(), NioTransferType.OBUUPLOAD);
try {
YgzObuUploadResponse response = jsonPostRepeat(ygzRequest);
if (response == null) {
ygzHasSendRepo.save(data.setYgzSendResult("返回值为空").setSuccess(false));
} else if (response.isSuccess()) {
data.setCurrentSendStatus(1);
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(true));
} else {
ygzHasSendRepo.save(data.setYgzSendResult(response.getMsg()).setSuccess(false));
}
} catch (Exception e) {
logger.error("营改增错误-OBU上传:", e);
ygzHasSendRepo.save(data.setYgzSendResult(e.getMessage()).setSuccess(false));
}
return data;
}

protected DaspYgzHasSend newDaspYgzData(String json, String id, final Operation operation, NioTransferType sendType) {
DaspYgzHasSend hasSend = ygzHasSendRepo.findBy(id, sendType);
if (hasSend == null)
hasSend = new DaspYgzHasSend();
hasSend.setYgzRequestStr(json);
hasSend.setYgzOperation(operation);
hasSend.setCurrentSendStatus(0);
hasSend.setSendTimes(0);
hasSend.setId(id);
hasSend.setYgzSendType(sendType);
hasSend.setCreateTime(LocalDateTime.now());
hasSend.setUpdateTime(LocalDateTime.now());
return hasSend;
}


protected void persistTransaction(TransactionBizType businessType, String businessId, String info) {
TransactionStatus tx = new TransactionStatus();
tx.setBusinessType(businessType);
tx.setBusinessId(businessId);
tx.setStatus(0);
tx.setInsertTime(LocalDateTime.now());
tx.setInfo(info);
transactionStatusRepo.persist(tx);
}

}

+ 3
- 2
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/handler/CarChangeServiceHandler.java Ver fichero

@@ -8,6 +8,7 @@ import cn.com.taiji.core.model.comm.protocol.SignJsonRequest;
import cn.com.taiji.core.model.comm.protocol.inss.InssServiceType;
import cn.com.taiji.core.model.comm.protocol.inss.carChange.CarChangeApplyRequest;
import cn.com.taiji.core.model.comm.protocol.inss.carChange.CarChangeCallBackRequest;
import cn.com.taiji.core.model.comm.protocol.inss.carChange.CarChangeServiceCmd;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstServiceCmd;
import cn.com.taiji.inss.manager.vehicleChange.CarChangeApplyManager;
import cn.com.taiji.inss.manager.vehicleChange.CarChangeCallBackManager;
@@ -16,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class CarChangeServiceHandler extends AbstractInssServiceHandler<InstServiceCmd> {
public class CarChangeServiceHandler extends AbstractInssServiceHandler<CarChangeServiceCmd> {
public CarChangeServiceHandler() {
super(InssServiceType.INST);
}
@@ -28,7 +29,7 @@ public class CarChangeServiceHandler extends AbstractInssServiceHandler<InstServ

@Override
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException {
InstServiceCmd cmd = InstServiceCmd.fromIfCode(jsonReq.getIfCode());
CarChangeServiceCmd cmd = CarChangeServiceCmd.fromIfCode(jsonReq.getIfCode());
switch (cmd) {
case APPLY:
return carChangeApplyManager.serviceHandle((CarChangeApplyRequest) request);

+ 1
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vehicleChange/CarChangeApplyManager.java Ver fichero

@@ -59,6 +59,7 @@ public class CarChangeApplyManager extends RedisCacheManager implements LogManag
IssueOrderVO vo = new IssueOrderVO();
vo.setTransOrderId(transOrderId);
vo.setVehicleId(vehiceleId);
vo.setOrderId(orderinfo.getOrderNo());
vo.setCardId(request.getCardId());
vo.setObuId(request.getObuId());
//变更车牌,后面执行完变更卡和签信息

+ 32
- 20
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vehicleChange/CarChangeCallBackManager.java Ver fichero

@@ -3,9 +3,8 @@ package cn.com.taiji.inss.manager.vehicleChange;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.basic.QtkCardInfo;
import cn.com.taiji.core.entity.basic.QtkObuInfo;
import cn.com.taiji.core.entity.basic.QtkVehicleInfo;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.issue.TransactionBizType;
import cn.com.taiji.core.entity.issue.TransactionStatus;
import cn.com.taiji.core.entity.log.InssInterfaceLog;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.model.comm.protocol.bls.AbstractBlsResponse;
@@ -15,19 +14,18 @@ import cn.com.taiji.core.model.comm.protocol.inss.carChange.CarChangeCallBackRes
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkObuInfoRepo;
import cn.com.taiji.core.repo.jpa.issue.TransactionStatusRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo;
import cn.com.taiji.core.repo.jpa.log.InssInterfaceLogRepo;
import cn.com.taiji.inss.manager.AbstractCommManager;
import cn.com.taiji.inss.manager.AbstCallBackCommManager;
import cn.com.taiji.inss.manager.cache.RedisWrapManager;
import cn.com.taiji.inss.manager.model.MyFinals;
import cn.com.taiji.inss.manager.model.inst.IssueOrderVO;
import cn.com.taiji.core.entity.dict.ygz.Operation;
import com.google.common.collect.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.PostConstruct;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@@ -35,12 +33,10 @@ import static cn.com.taiji.core.entity.dict.issue.TransactionBizType.*;
import static cn.com.taiji.inss.manager.model.inst.InstConstant.CMD_SUCCESS;

@Service
public class CarChangeCallBackManager extends AbstractCommManager implements LogManager<CarChangeCallBackRequest, CarChangeCallBackResponse, InssInterfaceLog> {
public class CarChangeCallBackManager extends AbstCallBackCommManager implements LogManager<CarChangeCallBackRequest, CarChangeCallBackResponse, InssInterfaceLog> {
@Autowired
private RedisWrapManager redisWrapManager;
@Autowired
private TransactionStatusRepo transactionStatusRepo;
@Autowired
private InssInterfaceLogRepo logRepo;
@Autowired
private CarChangeCard0015ReadHandler instCard0015ReadHandler;
@@ -56,6 +52,8 @@ public class CarChangeCallBackManager extends AbstractCommManager implements Log
private QtkCardInfoRepo cardInfoRepo;
@Autowired
private QtkObuInfoRepo obuInfoRepo;
@Autowired
private QtkVehicleInfoRepo vehicleInfoRepo;

protected Map<Integer, AbstractCarChangeCommandHandler> cmdHandlers = Maps.newHashMap();
@PostConstruct
@@ -109,13 +107,15 @@ public class CarChangeCallBackManager extends AbstractCommManager implements Log
@Transactional(rollbackFor = Exception.class)
private void saveData(CarChangeCallBackRequest request,IssueOrderVO vo) throws ServiceHandleException{
if (request.getStepNo() == 5) {
QtkCardInfo cardInfo = null;
QtkObuInfo obuInfo = null;
if (vo.isSaveCard() || vo.isSaveObu()) {
//卡
QtkCardInfo cardInfo = cardInfoRepo.findByCardId(vo.getCardId());
cardInfo = cardInfoRepo.findByCardId(vo.getCardId());
cardInfo.setVehicleId(vo.getVehicleId());
cardInfoRepo.merge(cardInfo);
//签
QtkObuInfo obuInfo = obuInfoRepo.findByObuId(vo.getObuId());
obuInfo = obuInfoRepo.findByObuId(vo.getObuId());
obuInfo.setVehicleId(vo.getVehicleId());
obuInfoRepo.merge(obuInfo);

@@ -138,6 +138,26 @@ public class CarChangeCallBackManager extends AbstractCommManager implements Log
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("卡反白失败");
}
//todo 车上传不中心

//营改增
executor.execute(() -> {
try {
logger.info("车辆信息变更营改增同步----开始");
//同步营改增
QtkVehicleInfo vehicleInfo = vehicleInfoRepo.findByVehicleId(vo.getVehicleId());
if (vo.isSaveCard() || vo.isSaveObu()) {//车牌变更
vehicleUploadYgz(handleVehicle(vehicleInfo, Operation.ADD));
// cardUploadYgz(handleCard(cardInfo,Operation.UPDATE));
// obuUploadYgz(handleObu(obuInfo,Operation.UPDATE));
}else {
vehicleUploadYgz(handleVehicle(vehicleInfo, Operation.UPDATE));
}
logger.info("车辆信息变更营改增同步----结束");
} catch (Exception e) {
logger.error("订单[{}]车辆信息变更调用营改增接口失败:{}", vo.getOrderId(), e.getMessage());
logger.error("", e);
}
});
}
}

@@ -173,15 +193,7 @@ public class CarChangeCallBackManager extends AbstractCommManager implements Log
// return validInternal(request, vo);
}

private void persistTransaction(TransactionBizType businessType, String businessId, String info) {
TransactionStatus tx = new TransactionStatus();
tx.setBusinessType(businessType);
tx.setBusinessId(businessId);
tx.setStatus(0);
tx.setInsertTime(LocalDateTime.now());
tx.setInfo(info);
transactionStatusRepo.persist(tx);
}


@Override
public void doSaveLog(CarChangeCallBackRequest request, CarChangeCallBackResponse response, InssInterfaceLog log) {

Cargando…
Cancelar
Guardar