|
|
@@ -2,10 +2,15 @@ package cn.com.taiji.ias.manager.ass; |
|
|
|
|
|
|
|
import cn.com.taiji.common.manager.net.http.ServiceHandleException; |
|
|
|
import cn.com.taiji.core.entity.ass.AssOrderinfo; |
|
|
|
import cn.com.taiji.core.entity.ass.AssSignChange; |
|
|
|
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; |
|
|
|
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; |
|
|
|
import cn.com.taiji.core.entity.dict.basic.UseUserType; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.ass.SignChangeCollectRequest; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.ass.SignChangeCollectResponse; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; |
|
|
|
import cn.com.taiji.core.repo.jpa.ass.AssSignChangeRepo; |
|
|
|
import cn.com.taiji.ias.dict.DataType; |
|
|
|
import cn.com.taiji.ias.manager.audit.VerificationRuleManager; |
|
|
|
import cn.com.taiji.ias.model.ServiceLogEvent; |
|
|
@@ -24,6 +29,9 @@ import java.util.Map; |
|
|
|
*/ |
|
|
|
@Service |
|
|
|
public class SignChangeCollectManager extends AbstractAssManager<SignChangeCollectRequest>{ |
|
|
|
@Autowired |
|
|
|
private AssSignChangeRepo assSignChangeRepo; |
|
|
|
|
|
|
|
public SignChangeCollectManager() { |
|
|
|
super(DataType.SIGNCHANGE_COLLECT); |
|
|
|
} |
|
|
@@ -45,10 +53,53 @@ public class SignChangeCollectManager extends AbstractAssManager<SignChangeColle |
|
|
|
protected void businessValidateInternal(ErrorMsgBuilder builder, SignChangeCollectRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { |
|
|
|
|
|
|
|
AssOrderinfo assOrderinfo = orderInfoRepo.findByOrderNo(req.getOrderNo()); |
|
|
|
QtkVehicleInfo vehicleInfo = vehicleInfoRepo.findByVehicleId(assOrderinfo.getVehicleId()); |
|
|
|
if (assOrderinfo == null) { |
|
|
|
throw newBusinessException("订单不存在"); |
|
|
|
} |
|
|
|
throwBisExceptionOn(!assOrderinfo.getVehiclePlate().equals(req.getVehiclePlate()),"车牌不匹配"); |
|
|
|
StringBuilder sBuilder = new StringBuilder(); |
|
|
|
//行驶证OCR核验 |
|
|
|
checkCarOcr(req, assOrderinfo, sBuilder); |
|
|
|
//vin码比对 |
|
|
|
if (!vehicleInfo.getVin().equals(req.getVin())){ |
|
|
|
sBuilder.append(",此次车辆VIN码{"+req.getVin()+"}与之前VIN码{"+vehicleInfo.getVin()+"}不一致"); |
|
|
|
} |
|
|
|
if (hasText(sBuilder.toString())) { |
|
|
|
//人工审核 |
|
|
|
assOrderinfo.setOrderStep(AssOrderStep.WAITING_AUDIT); |
|
|
|
} |
|
|
|
dataStream.put(ORDER,assOrderinfo); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void persistInternal(SignChangeCollectRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { |
|
|
|
AssOrderinfo assOrderinfo = (AssOrderinfo) dataStream.get(ORDER); |
|
|
|
//收集信息保存 |
|
|
|
AssSignChange assSignChange = new AssSignChange(); |
|
|
|
assSignChange.setOrderNo(assOrderinfo.getOrderNo()); |
|
|
|
assSignChange.setVehiclePlate(req.getVehiclePlate()); |
|
|
|
assSignChange.setVehPosImgUrl(req.getVehPosImgUrl()); |
|
|
|
assSignChange.setVehNegImgUrl(req.getVehNegImgUrl()); |
|
|
|
assSignChange.setVehicleName(req.getVehicleName()); |
|
|
|
assSignChange.setUseUserType(UseUserType.valueOfCode(req.getUseUserType())); |
|
|
|
assSignChange.setVin(req.getVin()); |
|
|
|
assSignChange.setEngineNum(req.getEngineNum()); |
|
|
|
assSignChange.setVehicleType(req.getVehicleType()); |
|
|
|
assSignChange.setVehicleModel(req.getVehicleModel()); |
|
|
|
assSignChange.setTotalMass(req.getTotalMass()); |
|
|
|
assSignChange.setTotalMass(req.getTotalMass()); |
|
|
|
assSignChange.setMaintenaceMass(req.getMaintenaceMass()); |
|
|
|
assSignChange.setPermittedWeight(req.getPermittedWeight()); |
|
|
|
assSignChange.setPermittedTowWeight(req.getPermittedTowWeight()); |
|
|
|
assSignChange.setVehicleDimensions(req.getVehicleDimensions()); |
|
|
|
assSignChange.setIssueDate(req.getIssueDate()); |
|
|
|
assSignChange.setVehBodyUrl(req.getVehBodyUrl()); |
|
|
|
assSignChange.setRegisterDate(req.getRegisterDate()); |
|
|
|
assSignChangeRepo.persist(assSignChange); |
|
|
|
} |
|
|
|
|
|
|
|
private void checkCarOcr(SignChangeCollectRequest req, AssOrderinfo assOrderinfo, StringBuilder sBuilder) { |
|
|
|
QtkVehicleInfo vehicleInfo = vehicleInfoRepo.findByVehicleId(assOrderinfo.getVehicleId()); |
|
|
|
CarOcrCheck carOcrCheck = new CarOcrCheck(); |
|
|
|
carOcrCheck.setVehiclePlate(req.getVehiclePlate()); |
|
|
@@ -63,11 +114,15 @@ public class SignChangeCollectManager extends AbstractAssManager<SignChangeColle |
|
|
|
carOcrCheck.setTotalMass(req.getTotalMass()); |
|
|
|
carOcrCheck.setVehNegImgUrl(req.getVehNegImgUrl()); |
|
|
|
verificationRuleManager.ocrVarifyVehicle(carOcrCheck, sBuilder); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected AbstractSignTypeResponse getRes(SignChangeCollectRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException { |
|
|
|
return null; |
|
|
|
protected SignChangeCollectResponse getRes(SignChangeCollectRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException { |
|
|
|
AssOrderinfo assOrderinfo = (AssOrderinfo) dataStream.get(ORDER); |
|
|
|
SignChangeCollectResponse response = new SignChangeCollectResponse(); |
|
|
|
response.setId(assOrderinfo.getId()); |
|
|
|
response.setOrderNo(assOrderinfo.getOrderNo()); |
|
|
|
response.setReceiveTime(getReceiveTimeStr(event)); |
|
|
|
return response; |
|
|
|
} |
|
|
|
} |