private String transCertUrl;//道路运输证图片地址 | private String transCertUrl;//道路运输证图片地址 | ||||
@Column(name = "INSERT_TIME") | @Column(name = "INSERT_TIME") | ||||
private LocalDateTime insertTime; | |||||
private LocalDateTime insertTime = LocalDateTime.now(); | |||||
@Column(name = "UPDATE_TIME") | @Column(name = "UPDATE_TIME") | ||||
private LocalDateTime updateTime; | |||||
private LocalDateTime updateTime = LocalDateTime.now(); | |||||
} | } |
package cn.com.taiji.core.model.comm.protocol.ias.order; | |||||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import lombok.experimental.Accessors; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | |||||
@Getter | |||||
@Setter | |||||
@Accessors(chain = true) | |||||
public class IssueOrderNormalRequest extends AbstractSignTypeRequest<IssueOrderNormalResponse> { | |||||
public IssueOrderNormalRequest() { | |||||
super(OrderServiceCmd.FINDNORMALORDER); | |||||
} | |||||
@NotBlank | |||||
private String vehicleId; | |||||
public void relatedValid(ErrorMsgBuilder builder) { | |||||
} | |||||
} |
package cn.com.taiji.core.model.comm.protocol.ias.order; | |||||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import lombok.experimental.Accessors; | |||||
@Getter | |||||
@Setter | |||||
@Accessors(chain = true) | |||||
public class IssueOrderNormalResponse extends AbstractSignTypeResponse { | |||||
private String orderNo; | |||||
} |
ORDERAUDIT("订单审核", OrderAuditRequest.class),// | ORDERAUDIT("订单审核", OrderAuditRequest.class),// | ||||
PUSHAGREEMENT("协议提交接口", PushAgreementRequest.class), | PUSHAGREEMENT("协议提交接口", PushAgreementRequest.class), | ||||
CONSIGNEE("收货信息", OrderConsigneeRequest.class), | CONSIGNEE("收货信息", OrderConsigneeRequest.class), | ||||
FINDNORMALORDER("查询正常订单", IssueOrderNormalRequest.class), | |||||
; | ; | ||||
private final String value; | private final String value; |
@Query(" from AssOrderinfo where customerId = ?1 and vehicleId = ?2 and obuId = ?3 and orderType = ?4 order by updateTime desc") | @Query(" from AssOrderinfo where customerId = ?1 and vehicleId = ?2 and obuId = ?3 and orderType = ?4 order by updateTime desc") | ||||
List<AssOrderinfo> findByCusIdAndObuId(String customerId, String vehicleId, String obuId, AssOrderType orderType); | List<AssOrderinfo> findByCusIdAndObuId(String customerId, String vehicleId, String obuId, AssOrderType orderType); | ||||
@Query(" from AssOrderinfo where vehicleId = ?1 and orderStatus = ?2 and orderType in ?3") | |||||
List<AssOrderinfo> listByVehicleIdAndStatusAndTypeList(String vehicleId, AssOrderStatus orderStatus ,AssOrderType[] typeList); | |||||
} | } |
@Query("from IssueOrderinfo where vehicleId = ?1 and orderStatus = 'NORMAL'") | @Query("from IssueOrderinfo where vehicleId = ?1 and orderStatus = 'NORMAL'") | ||||
IssueOrderinfo findNormalByVehicleId(String vehicleId); | IssueOrderinfo findNormalByVehicleId(String vehicleId); | ||||
@Query("from IssueOrderinfo where vehicleId = ?1 and orderStatus IN ('NORMAL','ACTIVE') order by updateTime desc") | |||||
List<IssueOrderinfo> queryNormalOrActiveByVehicleId(String vehicleId); | |||||
IssueOrderinfo findByOrderNo(String orderNo); | IssueOrderinfo findByOrderNo(String orderNo); | ||||
@Query("from IssueOrderinfo where customerId = ?1 and orderStatus = 'NORMAL' and orderStep = 'WAITING_ACTIVE'") | @Query("from IssueOrderinfo where customerId = ?1 and orderStatus = 'NORMAL' and orderStep = 'WAITING_ACTIVE'") | ||||
List<IssueOrderinfo> listByCustomerId(String customerId); | List<IssueOrderinfo> listByCustomerId(String customerId); | ||||
import cn.com.taiji.common.valid.ViolationValidator; | import cn.com.taiji.common.valid.ViolationValidator; | ||||
import cn.com.taiji.core.dto.AbstractBizRequestDTO; | import cn.com.taiji.core.dto.AbstractBizRequestDTO; | ||||
import cn.com.taiji.core.entity.dict.basic.IdType; | import cn.com.taiji.core.entity.dict.basic.IdType; | ||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
@NotBlank | @NotBlank | ||||
private String vehNegImgUrl; | private String vehNegImgUrl; | ||||
@ApiModelProperty(value = "行驶证的所有人") | |||||
@NotBlank | |||||
private String ownerName; | |||||
@ApiModelProperty(value = "办理人姓名") | @ApiModelProperty(value = "办理人姓名") | ||||
private String agentName; | private String agentName; | ||||
protected void validate(ViolationValidator validator){ | protected void validate(ViolationValidator validator){ | ||||
// validator.validFieldNotBlank("passId",passId); | |||||
if (getOrderSource() == SourceType.SERVICE_HALL){ | |||||
validator.validFieldNotBlank("agentName",agentName); | |||||
validator.validFieldNotNull("agentIdType",agentIdType); | |||||
validator.validFieldNotBlank("agentIdNum",agentIdNum); | |||||
validator.validFieldNotBlank("agentTel",agentTel); | |||||
validator.validFieldNotBlank("agentAddress",agentAddress); | |||||
validator.validFieldNotBlank("agentIdVld",agentIdVld); | |||||
validator.validFieldNotBlank("agentPosImgUrl",agentPosImgUrl); | |||||
validator.validFieldNotBlank("agentNegImgUrl",agentNegImgUrl); | |||||
if (!agentName.equals(ownerName)){ | |||||
validator.validFieldNotBlank("proxyUrl",proxyUrl); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo; | import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo; | ||||
import cn.com.taiji.core.repo.jpa.log.OperateLogRepo; | import cn.com.taiji.core.repo.jpa.log.OperateLogRepo; | ||||
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo; | import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||||
import cn.com.taiji.iaw.model.MyFinals; | import cn.com.taiji.iaw.model.MyFinals; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.web.context.request.RequestContextHolder; | import org.springframework.web.context.request.RequestContextHolder; |
package cn.com.taiji.iaw.manager.ass; | package cn.com.taiji.iaw.manager.ass; | ||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyRequestDTO; | import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyRequestDTO; | ||||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyResponseDTO; | import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyResponseDTO; | ||||
*/ | */ | ||||
public interface AssObuSupplyManager { | public interface AssObuSupplyManager { | ||||
AssObuSupplyApplyResponseDTO apply(AssObuSupplyApplyRequestDTO dto); | |||||
AssObuSupplyApplyResponseDTO apply(AssObuSupplyApplyRequestDTO dto) throws ManagerException; | |||||
} | } |
package cn.com.taiji.iaw.manager.ass; | package cn.com.taiji.iaw.manager.ass; | ||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.ass.AssObuSupply; | |||||
import cn.com.taiji.core.entity.ass.AssOrderinfo; | |||||
import cn.com.taiji.core.entity.basic.QtkCustomerInfo; | |||||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||||
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus; | |||||
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; | |||||
import cn.com.taiji.core.entity.dict.ass.AssOrderType; | |||||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||||
import cn.com.taiji.core.repo.jpa.ass.AssObuSupplyRepo; | import cn.com.taiji.core.repo.jpa.ass.AssObuSupplyRepo; | ||||
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo; | import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkCustomerInfoRepo; | |||||
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; | |||||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyRequestDTO; | import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyRequestDTO; | ||||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyResponseDTO; | import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyResponseDTO; | ||||
import cn.com.taiji.iaw.manager.AbstractIawManager; | import cn.com.taiji.iaw.manager.AbstractIawManager; | ||||
import cn.com.taiji.iaw.manager.comm.VehicleInfoManagerImpl; | |||||
import cn.com.taiji.iaw.model.MyFinals; | |||||
import cn.com.taiji.iaw.model.base.VehicleInfoQueryDeviceModel; | |||||
import org.apache.commons.lang.StringUtils; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
/** | /** | ||||
* @Auther: humh | * @Auther: humh | ||||
private AssObuSupplyRepo obuSupplyRepo; | private AssObuSupplyRepo obuSupplyRepo; | ||||
@Autowired | @Autowired | ||||
private AssOrderinfoRepo orderinfoRepo; | private AssOrderinfoRepo orderinfoRepo; | ||||
@Autowired | |||||
private QtkVehicleInfoRepo vehicleInfoRepo; | |||||
@Autowired | |||||
private VehicleInfoManagerImpl vehicleInfoManagerImpl; | |||||
@Autowired | |||||
private QtkCustomerInfoRepo customerInfoRepo; | |||||
@Override | @Override | ||||
public AssObuSupplyApplyResponseDTO apply(AssObuSupplyApplyRequestDTO dto) { | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public AssObuSupplyApplyResponseDTO apply(AssObuSupplyApplyRequestDTO dto) throws ManagerException { | |||||
dto.validate(); | |||||
if (dto.getOrderSource() == SourceType.WECHAT){ | |||||
if (StringUtils.isEmpty(dto.getCustomerId())){ | |||||
throw new ManagerException("用户编号不能为空"); | |||||
} | |||||
} | |||||
QtkVehicleInfo vehicleInfo = vehicleInfoRepo.findByVehicleId(dto.getVehicleId()); | |||||
if (vehicleInfo == null){ | |||||
throw new ManagerException("未获取到车辆信息"); | |||||
} | |||||
VehicleInfoQueryDeviceModel model = validVehicleInfo(vehicleInfo, dto); | |||||
String orderNo = createOrderNo(MyFinals.QTZL_AGENCY_ID); | |||||
AssObuSupply obuSupply = copyProperties(dto, new AssObuSupply()); | |||||
obuSupply.setOrderNo(orderNo); | |||||
obuSupply.setPayee(1);//todo 先默认1-黔通 | |||||
obuSupply.setFee(2000);//todo 默认20 | |||||
obuSupplyRepo.save(obuSupply); | |||||
//生成售后订单 | |||||
createAssOrderinfo(vehicleInfo, orderNo, dto, model); | |||||
return new AssObuSupplyApplyResponseDTO(); | |||||
} | |||||
private void createAssOrderinfo(QtkVehicleInfo vehicleInfo, String orderNo, AssObuSupplyApplyRequestDTO dto, VehicleInfoQueryDeviceModel model) throws ServiceHandleException { | |||||
AssOrderinfo orderinfo = new AssOrderinfo(); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
orderinfo.setOrderNo(orderNo); | |||||
orderinfo.setOrderType(AssOrderType.OBU_SUPPLY); | |||||
orderinfo.setVehicleId(vehicleInfo.getVehicleId()); | |||||
orderinfo.setVehiclePlate(vehicleInfo.getVehiclePlate()); | |||||
orderinfo.setVehiclePlateColor(vehicleInfo.getVehiclePlateColor()); | |||||
orderinfo.setCardId(model.getCardId()); | |||||
orderinfo.setCardType(CardType.fromCode(model.getCardType())); | |||||
orderinfo.setOrderSource(dto.getOrderSource()); | |||||
orderinfo.setAgencyId(MyFinals.QTZL_AGENCY_ID); | |||||
orderinfo.setOrderStatus(AssOrderStatus.NORMAL); | |||||
orderinfo.setOrderStep(AssOrderStep.WAITING_PAY); | |||||
orderinfo.setApplyTime(now); | |||||
orderinfo.setStaffOpenId(findOpenIdByToken(dto.getAccessToken())); | |||||
orderinfo.setOpenId(findOpenIdByToken(dto.getAccessToken())); | |||||
if (!StringUtils.isEmpty(dto.getCustomerId())){ | |||||
QtkCustomerInfo customerInfo = customerInfoRepo.findByCustomerId(dto.getCustomerId()); | |||||
orderinfo.setCustomerId(dto.getCustomerId()); | |||||
orderinfo.setCustomerTel(customerInfo.getCustomerTel()); | |||||
orderinfo.setCustomerName(customerInfo.getCustomerName()); | |||||
orderinfo.setCustomerIdType(customerInfo.getCustomerIdType()); | |||||
orderinfo.setUserType(customerInfo.getUserType()); | |||||
} | |||||
if ((vehicleInfo.getType() > 10 && vehicleInfo.getType() <= 20) || !dto.getOwnerName().equals(vehicleInfo.getOwnerName())){ | |||||
//客车或者 行驶证上所有人的信息和系统中保存的所有人的信息是不一致 | |||||
orderinfo.setArtificialStatus(1); | |||||
}else { | |||||
orderinfo.setArtificialStatus(2); | |||||
} | |||||
orderinfoRepo.save(orderinfo); | |||||
} | |||||
private VehicleInfoQueryDeviceModel validVehicleInfo(QtkVehicleInfo vehicleInfo, AssObuSupplyApplyRequestDTO dto) throws ManagerException { | |||||
if (!dto.getOwnerName().equals(vehicleInfo.getOwnerName())){ | |||||
throw new ManagerException("行驶证所有人与车辆所有不一致!"); | |||||
} | |||||
if (vehicleInfo.getType() > 10 && vehicleInfo.getType() <= 20){ | |||||
if (StringUtils.isEmpty(dto.getVehHeadUrl())){ | |||||
throw new ManagerException("货车必须上传车头照!"); | |||||
} | |||||
if (StringUtils.isEmpty(dto.getVehBodyUrl())){ | |||||
throw new ManagerException("货车必须上传车身照!"); | |||||
} | |||||
if (StringUtils.isEmpty(dto.getVehAndPersonUrl())){ | |||||
throw new ManagerException("货车必须上传人车合影照!"); | |||||
} | |||||
if (StringUtils.isEmpty(dto.getTransCertUrl())){ | |||||
throw new ManagerException("货车必须上传道路运输证图片!"); | |||||
} | |||||
} | |||||
VehicleInfoQueryDeviceModel model = vehicleInfoManagerImpl.getDevice(dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()), vehicleInfo); | |||||
if (model == null){ | |||||
throw new ManagerException("没有获取到正常状态的卡,不能进行增补OBU"); | |||||
} | |||||
if (!StringUtils.isEmpty(model.getObuId())){ | |||||
throw new ManagerException("查询到该车辆有正常状态的OBU,无需增补OBU"); | |||||
} | |||||
return null; | |||||
List<AssOrderinfo> assOrderinfos = orderinfoRepo.listByVehicleIdAndStatusAndTypeList(vehicleInfo.getVehicleId(), AssOrderStatus.NORMAL, new AssOrderType[]{AssOrderType.OBU_SUPPLY}); | |||||
if (!CollectionTools.isEmpty(assOrderinfos)){ | |||||
throw new ManagerException("查询到该OBU有在途的订单,不能进行增补OBU"); | |||||
} | |||||
return model; | |||||
} | } | ||||
} | } |
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | import cn.com.taiji.core.repo.jpa.user.StaffRepo; | ||||
import cn.com.taiji.core.repo.request.basic.QtkVehicleInfoPageRequest; | import cn.com.taiji.core.repo.request.basic.QtkVehicleInfoPageRequest; | ||||
import cn.com.taiji.iaw.dto.comm.*; | import cn.com.taiji.iaw.dto.comm.*; | ||||
import cn.com.taiji.iaw.manager.AbstractCommManager; | |||||
import cn.com.taiji.iaw.manager.AbstractIawManager; | import cn.com.taiji.iaw.manager.AbstractIawManager; | ||||
import cn.com.taiji.iaw.model.MyFinals; | |||||
import cn.com.taiji.iaw.model.base.CardInfoModel; | import cn.com.taiji.iaw.model.base.CardInfoModel; | ||||
import cn.com.taiji.iaw.model.base.VehicleInfoQueryDeviceModel; | |||||
import cn.com.taiji.iaw.tools.WxLoginUserUtil; | import cn.com.taiji.iaw.tools.WxLoginUserUtil; | ||||
import org.apache.commons.compress.utils.Lists; | import org.apache.commons.compress.utils.Lists; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.ArrayList; | |||||
import java.util.List; | import java.util.List; | ||||
copyProperties(customerInfo, resDTO); | copyProperties(customerInfo, resDTO); | ||||
resDTO.setCustomerIdType(customerInfo.getCustomerIdType().getCode()); | resDTO.setCustomerIdType(customerInfo.getCustomerIdType().getCode()); | ||||
VehicleInfoQueryDeviceModel model = getDevice(dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()), vehicleInfo); | |||||
BeanTools.copyProperties(model, resDTO); | |||||
return resDTO; | |||||
} | |||||
public VehicleInfoQueryDeviceModel getDevice(SourceType sourceType, String openId, String agencyId, QtkVehicleInfo vehicleInfo) throws ManagerException { | |||||
//查询卡签信息 | //查询卡签信息 | ||||
List<QtkCardInfo> cardInfos = Lists.newArrayList(); | List<QtkCardInfo> cardInfos = Lists.newArrayList(); | ||||
List<QtkObuInfo> obuInfos = Lists.newArrayList(); | List<QtkObuInfo> obuInfos = Lists.newArrayList(); | ||||
if (SourceType.SERVICE_HALL.equals(dto.getOrderSource())) { | |||||
if (SourceType.SERVICE_HALL.equals(sourceType)) { | |||||
//判断是否是黔通智联 | //判断是否是黔通智联 | ||||
Staff staff = staffRepo.findByOpenId(findOpenIdByToken(dto.getAccessToken())); | |||||
Staff staff = staffRepo.findByOpenId(findOpenIdByToken(openId)); | |||||
if (staff == null){ | if (staff == null){ | ||||
throw new ManagerException("为获取到当前员工账号!"); | throw new ManagerException("为获取到当前员工账号!"); | ||||
} | } | ||||
if (isManager(staff.getIdentityType(), staff.getAgencyId())){ | if (isManager(staff.getIdentityType(), staff.getAgencyId())){ | ||||
cardInfos = cardInfoRepo.listByVehicleId(dto.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByVehicleId(dto.getVehicleId()); | |||||
cardInfos = cardInfoRepo.listByVehicleId(vehicleInfo.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByVehicleId(vehicleInfo.getVehicleId()); | |||||
}else { | }else { | ||||
cardInfos = cardInfoRepo.listByAgencyIdAndVehicleId(findAgencyIdByToken(dto.getAccessToken()),dto.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByAgencyIdAndVehicleId(findAgencyIdByToken(dto.getAccessToken()),dto.getVehicleId()); | |||||
cardInfos = cardInfoRepo.listByAgencyIdAndVehicleId(agencyId,vehicleInfo.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByAgencyIdAndVehicleId(agencyId,vehicleInfo.getVehicleId()); | |||||
} | } | ||||
} | } | ||||
else { | else { | ||||
cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | |||||
cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), vehicleInfo.getVehicleId()); | |||||
obuInfos = obuInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), vehicleInfo.getVehicleId()); | |||||
} | } | ||||
//处理卡签信息 | //处理卡签信息 | ||||
handleDevice(resDTO, cardInfos, obuInfos); | |||||
return resDTO; | |||||
return handleDevice(cardInfos, obuInfos); | |||||
} | } | ||||
@Override | @Override | ||||
return resDTO; | return resDTO; | ||||
} | } | ||||
private void handleDevice(VehicleInfoQueryDeviceResponseDTO resDTO,List<QtkCardInfo> cardInfos, List<QtkObuInfo> obuInfos) { | |||||
private VehicleInfoQueryDeviceModel handleDevice(List<QtkCardInfo> cardInfos, List<QtkObuInfo> obuInfos) { | |||||
VehicleInfoQueryDeviceModel model = new VehicleInfoQueryDeviceModel(); | |||||
//卡 | //卡 | ||||
if (!CollectionTools.isEmpty(cardInfos)){ | if (!CollectionTools.isEmpty(cardInfos)){ | ||||
QtkCardInfo qtkCardInfo = cardInfos.stream() | QtkCardInfo qtkCardInfo = cardInfos.stream() | ||||
.filter(cardInfo -> cardInfo.getCardStatus() == CardStatus.ZC) | .filter(cardInfo -> cardInfo.getCardStatus() == CardStatus.ZC) | ||||
.findFirst() | .findFirst() | ||||
.orElse(cardInfos.isEmpty() ? null : cardInfos.get(0)); | .orElse(cardInfos.isEmpty() ? null : cardInfos.get(0)); | ||||
copyProperties(qtkCardInfo , resDTO); | |||||
copyProperties(qtkCardInfo , model); | |||||
} | } | ||||
//签 | //签 | ||||
.filter(obuInfo -> obuInfo.getObuStatus() == ObuStatus.ZC) | .filter(obuInfo -> obuInfo.getObuStatus() == ObuStatus.ZC) | ||||
.findFirst() | .findFirst() | ||||
.orElse(obuInfos.isEmpty() ? null : obuInfos.get(0)); | .orElse(obuInfos.isEmpty() ? null : obuInfos.get(0)); | ||||
copyProperties(qtkObuInfo , resDTO,"cardId"); | |||||
copyProperties(qtkObuInfo , model,"cardId"); | |||||
} | } | ||||
return model; | |||||
} | } | ||||
package cn.com.taiji.iaw.model.base; | |||||
import cn.com.taiji.common.model.BaseModel; | |||||
import cn.com.taiji.core.entity.dict.basic.CardStatus; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuStatus; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* @Auther: humh | |||||
* @Description: | |||||
* @Date: 2025/9/11 22:11 | |||||
* @email: huminghao@mail.taiji.com.cn | |||||
* @version: 1.0 | |||||
*/ | |||||
@Getter | |||||
@Setter | |||||
public class VehicleInfoQueryDeviceModel extends BaseModel { | |||||
@ApiModelProperty(value = "卡号") | |||||
private String cardId; | |||||
@ApiModelProperty(value = "卡类型") | |||||
private Integer cardType; | |||||
@ApiModelProperty(value = "卡状态") | |||||
private CardStatus cardStatus; | |||||
@ApiModelProperty(value = "卡过期时间") | |||||
private LocalDateTime cardExpireTime; | |||||
@ApiModelProperty(value = "签号") | |||||
private String obuId; | |||||
@ApiModelProperty(value = "签状态") | |||||
private ObuStatus obuStatus; | |||||
@ApiModelProperty(value = "签过期时间") | |||||
private LocalDateTime obuExpireTime; | |||||
} |
PUSH_AGREEMENT("pushAgreement", IasServiceType.ORDER, OrderServiceCmd.PUSHAGREEMENT), | PUSH_AGREEMENT("pushAgreement", IasServiceType.ORDER, OrderServiceCmd.PUSHAGREEMENT), | ||||
ORDERSIGNCHECK("orderSignCheck", IasServiceType.ORDER, OrderServiceCmd.SIGNCHECK), | ORDERSIGNCHECK("orderSignCheck", IasServiceType.ORDER, OrderServiceCmd.SIGNCHECK), | ||||
CONSIGNEE("consignee", IasServiceType.ORDER, OrderServiceCmd.CONSIGNEE), | CONSIGNEE("consignee", IasServiceType.ORDER, OrderServiceCmd.CONSIGNEE), | ||||
FIND_NORMAL_ORDER("findNormalOrder", IasServiceType.ORDER, OrderServiceCmd.FINDNORMALORDER), | |||||
GET_H5_URL("getH5Url", IasServiceType.ISSUE, IssueServiceCmd.GETH5URL), | GET_H5_URL("getH5Url", IasServiceType.ISSUE, IssueServiceCmd.GETH5URL), | ||||
private GetCarSignManager getCarSignManager; | private GetCarSignManager getCarSignManager; | ||||
@Autowired | @Autowired | ||||
private PushAgreementManager pushAgreementManager; | private PushAgreementManager pushAgreementManager; | ||||
@Autowired | |||||
private IssueOrderNormalManager issueOrderNormalManager; | |||||
@Override | @Override | ||||
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { | protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { | ||||
return orderConsigneeManager.serviceHandle((OrderConsigneeRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | return orderConsigneeManager.serviceHandle((OrderConsigneeRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | ||||
case PUSHAGREEMENT: | case PUSHAGREEMENT: | ||||
return pushAgreementManager.serviceHandle((PushAgreementRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | return pushAgreementManager.serviceHandle((PushAgreementRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | ||||
case FINDNORMALORDER: | |||||
return issueOrderNormalManager.serviceHandle((IssueOrderNormalRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||||
default: | default: | ||||
throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode()); | throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode()); | ||||
} | } |
package cn.com.taiji.ias.manager.order; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.issue.IssueOrderinfo; | |||||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.ias.order.IssueOrderNormalRequest; | |||||
import cn.com.taiji.core.model.comm.protocol.ias.order.IssueOrderNormalResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; | |||||
import cn.com.taiji.ias.dict.DataType; | |||||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
/** | |||||
* 查询正常订单 | |||||
* | |||||
*/ | |||||
@Service | |||||
public class IssueOrderNormalManager extends AbstractOrderManager<IssueOrderNormalRequest> { | |||||
@Autowired | |||||
private IssueOrderinfoRepo orderinfoRepo; | |||||
public IssueOrderNormalManager() { | |||||
super(DataType.FIND_NORMAL_ORDER); | |||||
} | |||||
@Override | |||||
protected String getDataId(IssueOrderNormalRequest req) { | |||||
return req.getVehicleId(); | |||||
} | |||||
@Override | |||||
protected void formatValidateInternal(ErrorMsgBuilder builder, IssueOrderNormalRequest req, | |||||
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { | |||||
} | |||||
@Override | |||||
protected void businessValidateInternal(ErrorMsgBuilder builder, IssueOrderNormalRequest req, | |||||
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { | |||||
} | |||||
@Override | |||||
protected void persistInternal(IssueOrderNormalRequest req, ServiceLogEvent event, | |||||
Map<String, Object> dataStream) throws ServiceHandleException { | |||||
} | |||||
@Override | |||||
protected AbstractSignTypeResponse getRes(IssueOrderNormalRequest req, ServiceLogEvent event, | |||||
Map<String, Object> dataStream) throws ServiceHandleException { | |||||
IssueOrderNormalResponse response = new IssueOrderNormalResponse(); | |||||
List<IssueOrderinfo> issueOrderinfos = orderinfoRepo.queryNormalOrActiveByVehicleId(req.getVehicleId()); | |||||
if (CollectionTools.isEmpty(issueOrderinfos)){ | |||||
return response; | |||||
} | |||||
IssueOrderinfo issueOrderinfo = CollectionTools.extractOne(issueOrderinfos); | |||||
response.setOrderNo(issueOrderinfo.getOrderNo()); | |||||
return response; | |||||
} | |||||
} |