@@ -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); | |||
} | |||
} |
@@ -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); |
@@ -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()); | |||
//变更车牌,后面执行完变更卡和签信息 |
@@ -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) { |