Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

master
huminghao 2 settimane fa
parent
commit
f0aa44ff55
21 ha cambiato i file con 422 aggiunte e 43 eliminazioni
  1. 3
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/AssVehicleRelieve.java
  2. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceOrder.java
  3. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceStaffRecord.java
  4. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceUserRecord.java
  5. 5
    3
      gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeAfterSaleAudit.java
  6. 5
    5
      gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeBusinessInfo.java
  7. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeFileInfo.java
  8. 5
    3
      gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeWorkOrderProcess.java
  9. 11
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/ReleasePlateApplyRequest.java
  10. 13
    0
      gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/ass/AssVehicleRelieveRepo.java
  11. 0
    9
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/DeviceQueryRequestDTO.java
  12. 9
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/DeviceQueryRecordManagerImpl.java
  13. 4
    3
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/KnowledgeBaseManagerImpl.java
  14. 1
    1
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/issue/IssueOrderManageImpl.java
  15. 1
    1
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/product/product/ProductDetailResponseDTO.java
  16. 7
    6
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/knowledgeBase/KnowledgeBaseManagerImpl.java
  17. 3
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java
  18. 69
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AbstractAssManager.java
  19. 253
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/releasePlate/ReleasePlateApplyManager.java
  20. 6
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/AssServiceHandler.java
  21. 19
    8
      zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/oqs/issue/IssueCommManagerImpl.java

+ 3
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/AssVehicleRelieve.java Vedi File

@@ -1,6 +1,7 @@
package cn.com.taiji.core.entity.ass;

import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity;
import cn.com.taiji.core.entity.dict.ass.AssVehicleRealseStep;
import cn.com.taiji.core.entity.dict.ass.RelieveStatus;
import cn.com.taiji.core.entity.dict.basic.IdType;
import lombok.Getter;
@@ -83,6 +84,8 @@ public class AssVehicleRelieve extends AbstractStringPropertyUUIDEntity {
private String ownerName;//车主身份证上名
@Column(name = "OWNER_ID_NUM")
private String ownerIdNum;//车主身份证证件号
@Column(name = "STEP")
private AssVehicleRealseStep step;




+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceOrder.java Vedi File

@@ -6,6 +6,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import lombok.Getter;
@@ -20,7 +21,7 @@ import lombok.Setter;
@Getter
@Setter
@Table(name ="ASS_SELF_SERVICE_ORDER")
public class SelfServiceOrder extends StringUUIDEntity{
public class SelfServiceOrder extends StringPropertyUUIDEntity {

/** 问题类型 */
@Column(name ="QUESTION_TYPE")

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceStaffRecord.java Vedi File

@@ -6,6 +6,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import lombok.Getter;
import lombok.Setter;
@@ -19,7 +20,7 @@ import lombok.Setter;
@Getter
@Setter
@Table(name ="ASS_SELF_SERVICE_STAFF_RECORD")
public class SelfServiceStaffRecord extends StringUUIDEntity{
public class SelfServiceStaffRecord extends StringPropertyUUIDEntity {

/** 自助工单id */
@Column(name ="SERVICE_ORDER_ID")

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/selfService/SelfServiceUserRecord.java Vedi File

@@ -6,6 +6,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import lombok.Getter;
import lombok.Setter;
@@ -19,7 +20,7 @@ import lombok.Setter;
@Getter
@Setter
@Table(name ="ASS_SELF_SERVICE_USER_RECORD")
public class SelfServiceUserRecord extends StringUUIDEntity{
public class SelfServiceUserRecord extends StringPropertyUUIDEntity {

/** 自助工单id */
@Column(name ="SERVICE_ORDER_ID")

+ 5
- 3
gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeAfterSaleAudit.java Vedi File

@@ -1,9 +1,11 @@
package cn.com.taiji.core.entity.managew;

import java.time.LocalDate;
import java.time.LocalDateTime;

import javax.persistence.*;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import cn.com.taiji.core.entity.dict.EnableStatus;
import lombok.Getter;
@@ -18,15 +20,15 @@ import lombok.Setter;
@Table(name ="KNOWLEDGE_AFTER_SALE_AUDIT")
@Getter
@Setter
public class KnowledgeAfterSaleAudit extends StringUUIDEntity{
public class KnowledgeAfterSaleAudit extends StringPropertyUUIDEntity {

/** 更新时间 */
@Column(name ="UPDATE_TIME")
private LocalDate updateTime = LocalDate.now();
private LocalDateTime updateTime;

/** 创建时间 */
@Column(name ="INSERT_TIME")
private LocalDate insertTime = LocalDate.now();
private LocalDateTime insertTime;

/** 涉及人员 */
@Column(name ="STAFF")

+ 5
- 5
gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeBusinessInfo.java Vedi File

@@ -1,9 +1,11 @@
package cn.com.taiji.core.entity.managew;

import java.time.LocalDate;
import java.time.LocalDateTime;

import javax.persistence.*;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import cn.com.taiji.core.entity.dict.EnableStatus;
import lombok.Getter;
@@ -18,16 +20,15 @@ import lombok.Setter;
@Table(name ="KNOWLEDGE_BUSINESS_INFO")
@Getter
@Setter
public class KnowledgeBusinessInfo extends StringUUIDEntity{
public class KnowledgeBusinessInfo extends StringPropertyUUIDEntity {

/** 更新时间 */
@Column(name ="UPDATE_TIME")

private LocalDate updateTime = LocalDate.now();
private LocalDateTime updateTime;

/** 创建时间 */
@Column(name ="INSERT_TIME")
private LocalDate insertTime = LocalDate.now();
private LocalDateTime insertTime;

/** 业务类型 */
@Column(name ="BUSINESS_TYPE")
@@ -80,7 +81,6 @@ public class KnowledgeBusinessInfo extends StringUUIDEntity{

/** 不适用原因 */
@Column(name ="APPLICABLE_REASON")

private String applicableReason;

/** 反馈人 */

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeFileInfo.java Vedi File

@@ -4,6 +4,7 @@ import java.time.LocalDate;

import javax.persistence.*;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import cn.com.taiji.core.entity.dict.KnowlegdeType;
import lombok.Getter;
@@ -18,7 +19,7 @@ import lombok.Setter;
@Table(name = "KNOWLEDGE_FILE_INFO")
@Getter
@Setter
public class KnowledgeFileInfo extends StringUUIDEntity {
public class KnowledgeFileInfo extends StringPropertyUUIDEntity {

/** 创建时间 */
@Column(name = "INSERT_TIME")

+ 5
- 3
gly-base-core/src/main/java/cn/com/taiji/core/entity/managew/KnowledgeWorkOrderProcess.java Vedi File

@@ -1,9 +1,11 @@
package cn.com.taiji.core.entity.managew;

import java.time.LocalDate;
import java.time.LocalDateTime;

import javax.persistence.*;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import cn.com.taiji.core.entity.dict.EnableStatus;
import lombok.Getter;
@@ -18,15 +20,15 @@ import lombok.Setter;
@Table(name ="KNOWLEDGE_WORK_ORDER_PROCESS")
@Getter
@Setter
public class KnowledgeWorkOrderProcess extends StringUUIDEntity{
public class KnowledgeWorkOrderProcess extends StringPropertyUUIDEntity {

/** 更新时间 */
@Column(name ="UPDATE_TIME")
private LocalDate updateTime = LocalDate.now();
private LocalDateTime updateTime;

/** 创建时间 */
@Column(name ="INSERT_TIME")
private LocalDate insertTime = LocalDate.now();
private LocalDateTime insertTime;

/** 一级工单类型 */
@Column(name ="LEVEL1")

+ 11
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/ReleasePlateApplyRequest.java Vedi File

@@ -3,6 +3,7 @@ package cn.com.taiji.core.model.comm.protocol.ias.ass;
import cn.com.taiji.common.pub.validation.PatternFactory;
import cn.com.taiji.core.entity.dict.basic.IdType;
import cn.com.taiji.core.entity.dict.basic.PlateColorType;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
@@ -71,7 +72,17 @@ public class ReleasePlateApplyRequest extends AbstractSignTypeRequest<ReleasePla
private String orgImagesUrl1;//营业执照图片地址
private String authorizeImagesUrl1;//授权书图片地址

@NotBlank
private SourceType sourceType;//来源
@NotBlank
private String agencyId;//渠道
@NotBlank
private String channelId;//网点
@NotBlank
private String OpenId;

public void relatedValid(ErrorMsgBuilder builder) {
builder.validFieldTrue("sourceType", sourceType == SourceType.ALI || sourceType == SourceType.WECHAT || sourceType == SourceType.WEB || sourceType == SourceType.SERVICE_HALL, "申请来源不正确");
if (applyType == 2){
builder.validFieldNotBlank("orgName",orgName);
builder.validFieldNotNull("orgIdClass",orgIdClass);

+ 13
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/ass/AssVehicleRelieveRepo.java Vedi File

@@ -0,0 +1,13 @@
package cn.com.taiji.core.repo.jpa.ass;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.ass.AssVehicleRelieve;

/**
* @Author:ChenChao
* @Date:2025/8/8 20:47
* @Filename:AssVehicleRelieveRepo
* @description:
*/
public interface AssVehicleRelieveRepo extends AbstractJpaRepo<AssVehicleRelieve, String> {
}

+ 0
- 9
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/DeviceQueryRequestDTO.java Vedi File

@@ -57,12 +57,6 @@ public class DeviceQueryRequestDTO extends AbstractBizRequestDTO {
@NotBlank
@ApiModelProperty(value = "卡签绑定完成状态")
private String bindingFinishStatus;//卡签绑定完成状态;
@NotNull
@ApiModelProperty(value = "卡状态")
private CardStatus cardStatus;
@NotNull
@ApiModelProperty(value = "卡类型")
private CardType cardType;
@ApiModelProperty(value = "卡余额")
private Long cardBalance;
// 签信息
@@ -118,7 +112,4 @@ public class DeviceQueryRequestDTO extends AbstractBizRequestDTO {
@NotBlank
@ApiModelProperty(value = "obu版本号")
private String obuVersion;// obu版本号;
@NotNull
@ApiModelProperty(value = "OBU状态")
private ObuStatus obuStatus;
}

+ 9
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/DeviceQueryRecordManagerImpl.java Vedi File

@@ -43,6 +43,15 @@ public class DeviceQueryRecordManagerImpl extends AbstractCommManager implements
record.setOpenId(findOpenIdByToken(requestDTO.getAccessToken()));
record.setSourceType(requestDTO.getOrderSource());
record.setQueryTime(LocalDateTime.now());
QtkCardInfo cardInfo = cardInfoRepo.findByCardId(requestDTO.getCardId());
if (cardInfo != null) {
record.setCardType(cardInfo.getCardTypeNew());
record.setCardStatus(cardInfo.getCardStatus());
}
QtkObuInfo obuInfo = obuInfoRepo.findByObuId(requestDTO.getObuId());
if (obuInfo != null) {
record.setObuStatus(obuInfo.getObuStatus());
}
recordRepo.save(record);
DeviceQueryResponseDTO resDTO = new DeviceQueryResponseDTO();
resDTO.setId(record.getId());

+ 4
- 3
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/KnowledgeBaseManagerImpl.java Vedi File

@@ -1,6 +1,7 @@
package cn.com.taiji.iaw.manager.ass;

import java.time.LocalDate;
import java.time.LocalDateTime;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -67,7 +68,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
orderProcess.setStatus(reqDto.getStatus());
orderProcess.setApplicableReason(reqDto.getApplicableReason());
orderProcess.setApplicablePerson(openId);
orderProcess.setUpdateTime(LocalDate.now());
orderProcess.setUpdateTime(LocalDateTime.now());
workOrderProcessRepo.merge(orderProcess);
responseDTO.setMsg("反馈成功!");
return responseDTO;
@@ -105,7 +106,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
businessInfo.setStatus(reqDto.getStatus());
businessInfo.setApplicableReason(reqDto.getApplicableReason());
businessInfo.setApplicablePerson(openId);
businessInfo.setUpdateTime(LocalDate.now());
businessInfo.setUpdateTime(LocalDateTime.now());
businessInfoRepo.merge(businessInfo);
responseDTO.setMsg("反馈成功!");
return responseDTO;
@@ -143,7 +144,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
afterSaleAudit.setStatus(reqDto.getStatus());
afterSaleAudit.setApplicableReason(reqDto.getApplicableReason());
afterSaleAudit.setApplicablePerson(openId);
afterSaleAudit.setUpdateTime(LocalDate.now());
afterSaleAudit.setUpdateTime(LocalDateTime.now());
afterSaleAuditRepo.merge(afterSaleAudit);
responseDTO.setMsg("反馈成功!");
return responseDTO;

+ 1
- 1
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/issue/IssueOrderManageImpl.java Vedi File

@@ -547,7 +547,7 @@ public class IssueOrderManageImpl extends AbstractIawManager implements IssueOrd
@Override
public ListQrCodeResDTO listQRcode(ListQrCodeReqDTO reqDto) throws ManagerException {
IssueOrderinfo order = checkOrder(reqDto.getOrderNo());
String context = "https://qtzl.etcjz.cn/default-bucket/order.html";
String context = "https://qtzl.etcjz.cn/zhywpt-issuer/order.html";
int qrSize = 300;
int qrMargin = 3;
// 创建二维码配置

+ 1
- 1
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/product/product/ProductDetailResponseDTO.java Vedi File

@@ -103,7 +103,7 @@ public class ProductDetailResponseDTO {
private Long amount;//办理费总金额

@ApiModelProperty(value = "欠费月收比例")
private Integer monthlyRate;
private Double monthlyRate;

@ApiModelProperty(value = "是否支付true是false否")
private Boolean needPay;

+ 7
- 6
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/knowledgeBase/KnowledgeBaseManagerImpl.java Vedi File

@@ -7,6 +7,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@@ -91,7 +92,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
orderProcess.setStatus(reqDto.getStatus());
orderProcess.setApplicableReason(reqDto.getApplicableReason());
orderProcess.setApplicablePerson(openId);
orderProcess.setUpdateTime(LocalDate.now());
orderProcess.setUpdateTime(LocalDateTime.now());
workOrderProcessRepo.merge(orderProcess);
responseDTO.setMsg("反馈成功!");
return responseDTO;
@@ -107,7 +108,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
throw new ManagerException("没找到该条知识库信息");
}
BeanTools.copyProperties(reqDto, orderProcess);
orderProcess.setUpdateTime(LocalDate.now());
orderProcess.setUpdateTime(LocalDateTime.now());
orderProcess.setStatus(EnableStatus.ENABLE);
orderProcess.setApplicableReason(null);
orderProcess.setApplicablePerson(null);
@@ -213,7 +214,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
businessInfo.setStatus(reqDto.getStatus());
businessInfo.setApplicableReason(reqDto.getApplicableReason());
businessInfo.setApplicablePerson(openId);
businessInfo.setUpdateTime(LocalDate.now());
businessInfo.setUpdateTime(LocalDateTime.now());
businessInfoRepo.merge(businessInfo);
responseDTO.setMsg("反馈成功!");
return responseDTO;
@@ -229,7 +230,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
throw new ManagerException("没找到该条知识库信息");
}
BeanTools.copyProperties(reqDto, businessInfo);
businessInfo.setUpdateTime(LocalDate.now());
businessInfo.setUpdateTime(LocalDateTime.now());
businessInfo.setStatus(EnableStatus.ENABLE);
businessInfo.setApplicableReason(null);
businessInfo.setApplicablePerson(null);
@@ -335,7 +336,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
afterSaleAudit.setStatus(reqDto.getStatus());
afterSaleAudit.setApplicableReason(reqDto.getApplicableReason());
afterSaleAudit.setApplicablePerson(openId);
afterSaleAudit.setUpdateTime(LocalDate.now());
afterSaleAudit.setUpdateTime(LocalDateTime.now());
afterSaleAuditRepo.merge(afterSaleAudit);
responseDTO.setMsg("反馈成功!");
return responseDTO;
@@ -352,7 +353,7 @@ public class KnowledgeBaseManagerImpl extends AbstractCommManager implements Kno
}
BeanTools.copyProperties(reqDto, afterSaleAudit);
afterSaleAudit.setOrderSource(reqDto.getOrderSource1());
afterSaleAudit.setUpdateTime(LocalDate.now());
afterSaleAudit.setUpdateTime(LocalDateTime.now());
afterSaleAudit.setStatus(EnableStatus.ENABLE);
afterSaleAudit.setApplicableReason(null);
afterSaleAudit.setApplicablePerson(null);

+ 3
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java Vedi File

@@ -3,6 +3,7 @@ package cn.com.taiji.ias.dict;
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;
import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ias.issue.IssueServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderServiceCmd;

@@ -30,6 +31,8 @@ public enum DataType {

GET_H5_URL("getH5Url", IasServiceType.ISSUE, IssueServiceCmd.GETH5URL),

RELEASE_PLATE_APPLY("releasePlateApply", IasServiceType.ISSUE, AssServiceCmd.RELEASEPLATEAPPLY),


;
private final String value;

+ 69
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AbstractAssManager.java Vedi File

@@ -0,0 +1,69 @@
package cn.com.taiji.ias.manager.ass;


import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.basic.*;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.ods.oqs.issue.*;
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.AbstractHandleManager;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;

public abstract class AbstractAssManager<T extends AbstractSignTypeRequest<?>> extends AbstractHandleManager<T> {

public AbstractAssManager(DataType dataType) {
super(dataType);
}

@Autowired
protected AssOrderinfoRepo assOrderinfoRepo;
// 双系统通过车牌id查询在用卡
protected List<QtkCardInfo> queryCardInUse(String vehicleId) throws ServiceHandleException {
OqsCardQueryRequest req = new OqsCardQueryRequest();
req.setVehicleId(vehicleId);
OqsCardQueryResponse res = jsonPostRepeat(req);
return res.getQtkCardInfos();
}

// 双系统通过车牌id查询在用签
protected List<QtkObuInfo> queryObuInUse(String vehicleId) throws ServiceHandleException {
OqsObuQueryRequest oqsObuQueryRequest = new OqsObuQueryRequest();
oqsObuQueryRequest.setVehicleId(vehicleId);
OqsObuQueryResponse res = jsonPostRepeat(oqsObuQueryRequest);
return res.getQtkObuInfos();
}

//双系统通过车牌id查询车辆信息
protected QtkVehicleInfo queryVehicleInfo(String vehicleId) throws ServiceHandleException {
OqsVehicleQueryRequest oqsVehicleQueryRequest = new OqsVehicleQueryRequest();
oqsVehicleQueryRequest.setVehicleId(vehicleId);
OqsVehicleQueryResponse res = jsonPostRepeat(oqsVehicleQueryRequest);
return res.getQtkVehicleInfo();
}
//双系统通过customerId查ETC用户
protected QtkCustomerInfo queryCustomerInfo(String customerId) throws ServiceHandleException {
OqsUserQueryRequest request = new OqsUserQueryRequest();
request.setCustomerId(customerId);
OqsUserQueryResponse response = jsonPostRepeat(request);
return response.getQtkCustomerInfo();
}

// 双系统查询卡黑名单
protected List<QtkBlackCard> queryBlackCard(String cardId) throws ServiceHandleException {
OqsCardBlackRequest oqsCardBlackRequest = new OqsCardBlackRequest();
oqsCardBlackRequest.setCardId(cardId);
OqsCardBlackResponse oqsCardBlackResponse = jsonPostRepeat(oqsCardBlackRequest);
return oqsCardBlackResponse.getQtkBlackCards();
}
//双系统查询签黑名单
protected List<QtkBlackObu> queryBlackObu(String obuId) throws ServiceHandleException {
OqsObuBlackRequest oqsObuBlackRequest = new OqsObuBlackRequest();
oqsObuBlackRequest.setObuId(obuId);
OqsObuBlackResponse oqsObuBlackResponse = jsonPostRepeat(oqsObuBlackRequest);
return oqsObuBlackResponse.getQtkBlackObus();
}


}

+ 253
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/releasePlate/ReleasePlateApplyManager.java Vedi File

@@ -0,0 +1,253 @@
package cn.com.taiji.ias.manager.ass.releasePlate;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.ass.AssVehicleRelieve;
import cn.com.taiji.core.entity.basic.*;
import cn.com.taiji.core.entity.dict.AuditStatus;
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus;
import cn.com.taiji.core.entity.dict.ass.AssOrderType;
import cn.com.taiji.core.entity.dict.ass.AssVehicleRealseStep;
import cn.com.taiji.core.entity.dict.ass.RelieveStatus;
import cn.com.taiji.core.entity.dict.basic.*;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.ias.ass.ReleasePlateApplyRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.ReleasePlateApplyResponse;
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckRequest;
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.repo.jpa.ass.AssVehicleRelieveRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.ass.AbstractAssManager;
import cn.com.taiji.ias.manager.valid.VehiclePlateCheckManager;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
* @Author:ChenChao
* @Date:2025/8/6 22:02
* @Filename:ReleasePlateApplyManager
* @description:
*/
@Service
public class ReleasePlateApplyManager extends AbstractAssManager<ReleasePlateApplyRequest> {

public ReleasePlateApplyManager() {
super(DataType.RELEASE_PLATE_APPLY);
}

public static final String CARD_INFO = "cardInfo";
public static final String OBU_INFO = "obuInfo";

@Autowired
private VehiclePlateCheckManager vehiclePlateCheckManager;
@Autowired
private AssVehicleRelieveRepo assVehicleRelieveRepo;

@Override
protected String getDataId(ReleasePlateApplyRequest req) {
return "";
}

@Override
protected void formatValidateInternal(ErrorMsgBuilder builder, ReleasePlateApplyRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
req.relatedValid(builder);
}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, ReleasePlateApplyRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
if (req.getApplyType() == 1) {
//个人申请
if (!req.getName().equals(req.getVehicleOwnerName()) && req.getIsSelf() == 1) {
throw newBusinessException("车主不符,请重新申请");
}else if (!req.getPersonName().equals(req.getVehicleOwnerName()) && req.getIsSelf() == 2){
throw newBusinessException("车主不符,请重新申请");
}
} else if (!req.getOrgName().equals(req.getVehicleOwnerName())){
//单位申请
throw newBusinessException("行驶证和营业执照车主不符,请重新申请");
}
String vehicleId = req.getVehiclePlate() + "_" + req.getVehiclePlateColor();
// 双系统查询在用卡
QtkCardInfo qtkCardInfo = null;
List<QtkCardInfo> qtkCardInfos = queryCardInUse(vehicleId);
if (!isEmpty(qtkCardInfos)){
qtkCardInfo = qtkCardInfos.get(0);
if (CardType.PRE_CHARGE_CARD == qtkCardInfo.getCardTypeNew()) throw newBusinessException("预存卡不可解除车牌占用");
}
// 双系统查询在用签
QtkObuInfo qtkObuInfo = null;
List<QtkObuInfo> qtkObuInfos = queryObuInUse(vehicleId);
if (!isEmpty(qtkObuInfos)){
qtkObuInfo = qtkObuInfos.get(0);
}
//当前车辆牌照是否被占用(1-发行方已办理 2-统一平台办理 3-未关联 4-未办理 5办理中)
VehiclePlateCheckResponse res = checkVehiclePlate(req.getVehiclePlate(), req.getVehiclePlateColor());
//部中心校验本地系统也校验
if (res.getResult() == 4 && qtkCardInfo == null && qtkObuInfo == null) {
throw newBusinessException("该车牌号未被占用,无需申请");
}
//外省发行方占用
if (!res.getInfo().contains("贵州")) {
throw newBusinessException(res.getInfo());
}
dataStream.put(CARD_INFO, qtkCardInfo);
dataStream.put(OBU_INFO, qtkObuInfo);
//申请人和车主是同一人引导走其他流程
applyCheckApplyAndOwner(req,dataStream);
//申请人和车主不是同一人,直接进入处理业务,创建售后订单,人工处理
}

private VehiclePlateCheckResponse checkVehiclePlate(String vehiclePlate, Integer vehiclePlateColor) throws ServiceHandleException {
VehiclePlateCheckRequest req = new VehiclePlateCheckRequest();
req.setVehiclePlate(vehiclePlate);
req.setVehiclePlateColor(vehiclePlateColor);
// 1-发行方已办理 2-统一平台办理 3-未关联 4-未办理 5办理中
VehiclePlateCheckResponse res = vehiclePlateCheckManager.serviceHandle(req);
return res;
}

private void applyCheckApplyAndOwner(ReleasePlateApplyRequest req,Map<String, Object> dataStream) throws ServiceHandleException {
//双系统查找占用的车辆
QtkVehicleInfo qtkVehicleInfo = queryVehicleInfo(req.getVehiclePlate() + "_" + req.getVehiclePlateColor());
//双系统查询ETC用户信息
QtkCustomerInfo customerInfo = queryCustomerInfo(qtkVehicleInfo.getCustomerId());
//占用用户和申请用户一致
if(req.getCustomerIdNum().equals(customerInfo.getCustomerIdNum())){
//校验卡
validCard(dataStream);
//校验签
validObu(dataStream);
}
}

private void validCard(Map<String, Object> dataStream) throws ServiceHandleException {
QtkCardInfo qtkCardInfo = (QtkCardInfo) dataStream.get(CARD_INFO);
if (qtkCardInfo == null){
//没有在用卡签,可以申请解除车牌占用
return;
}
//双系统查卡黑名单
List<QtkBlackCard> qtkBlackCards = queryBlackCard(qtkCardInfo.getCardId());
//卡状态正常和挂失状态引导走正常注销流程
//2、没有数据即卡状态正常
//3、有数据看是否是挂失
if (qtkBlackCards == null || qtkBlackCards.isEmpty()){
throw newBusinessException("请先注销");
} else {
//下黑的所有类型
List<CardBlackType> types = qtkBlackCards.stream().map(QtkBlackCard::getType).collect(Collectors.toList());
if (types.contains(CardBlackType.LOSS)){
//包含有挂失类型
throw newBusinessException("请先注销");
}else {
//黑名单状态检测黑名单表有除了挂失黑名单以外的黑名单,进入黑名单流程
throw newBusinessException("进入黑名单操作流程");
}
}
}

private void validObu(Map<String, Object> dataStream) throws ServiceHandleException {
QtkObuInfo qtkObuInfo = (QtkObuInfo) dataStream.get(OBU_INFO);
if (qtkObuInfo == null){
//没有在用卡签,可以申请解除车牌占用
return;
}
// 双系统查签黑名单
List<QtkBlackObu> qtkBlackObus = queryBlackObu(qtkObuInfo.getObuId());
//签状态正常和挂失状态引导走正常注销流程
//2、没有数据即卡状态正常
//3、有数据看是否是挂失
if (qtkBlackObus == null || qtkBlackObus.isEmpty()){
throw newBusinessException("请先注销");
} else {
//下黑的所有类型
List<ObuBlackType> types = qtkBlackObus.stream().map(QtkBlackObu::getType).collect(Collectors.toList());
if (types.contains(ObuBlackType.LOSS)){
//包含有挂失类型
throw newBusinessException("请先注销");
}else {
//黑名单状态检测黑名单表有除了挂失黑名单以外的黑名单,进入黑名单流程
throw newBusinessException("进入黑名单操作流程");
}
}
}

@Override
protected void persistInternal(ReleasePlateApplyRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
LocalDateTime now = LocalDateTime.now();
//保存售后表
AssOrderinfo assOrderinfo = new AssOrderinfo();
assOrderinfo.setOrderType(AssOrderType.RELEASE_VEHICLE);
assOrderinfo.setOrderNo(createOrderNo(req.getAgencyId()));
assOrderinfo.setOrderSource(req.getSourceType());
assOrderinfo.setOrderStatus(AssOrderStatus.NORMAL);
assOrderinfo.setApplyTime(now);
assOrderinfo.setAgencyId(req.getAgencyId());
assOrderinfo.setChannelId(req.getChannelId());
// FIXME: 业务员申请的单子,用户怎么查看
if (SourceType.SERVICE_HALL == req.getSourceType() || SourceType.WEB == req.getSourceType()){
assOrderinfo.setStaffOpenId(req.getOpenId());

}
if (SourceType.ALI == req.getSourceType() || SourceType.WECHAT == req.getSourceType()){
assOrderinfo.setOpenId(req.getOpenId());
// // 自营工具 和 管理端
// assOrderinfo.setAgencyId("52001106004");// 黔通智联(自营)
// assOrderinfo.setChannelId("5201010600401150002"); // 黔通智联售后服务
}
assOrderinfo.setCustomerTel(req.getMobile());
assOrderinfo.setCustomerName(req.getName());
assOrderinfo.setCustomerIdType(IdType.SFZ);
assOrderinfo.setCustomerIdNum(req.getCustomerIdNum());
assOrderinfo.setAuditStatus(AuditStatus.AUDIT);
//保存解除车牌占用明细表
AssVehicleRelieve assVehicleRelieve = new AssVehicleRelieve();
assVehicleRelieve.setStep(AssVehicleRealseStep.SUBMIT_AUDIT);
assVehicleRelieve.setOrderNo(assOrderinfo.getOrderNo());
assVehicleRelieve.setUserPosImagesUrl(req.getUserImagesUrl1());//身份证人像图片地址
assVehicleRelieve.setUserNegImagesUrl(req.getUserImagesUrl2());
assVehicleRelieve.setUserType(IdType.SFZ);
assVehicleRelieve.setVehPosImgUrl(req.getVehicleImagesUrl1());////行驶证正页图片地址
assVehicleRelieve.setVehNegImgUrl(req.getVehicleImagesUrl2());
assVehicleRelieve.setRelieveStatus(RelieveStatus.UNHANDLED);
if (req.getApplyType() == 2) {
assVehicleRelieve.setUnitImagesUrl(req.getOrgImagesUrl1());
assVehicleRelieve.setProxyUrl(req.getAuthorizeImagesUrl1());
assVehicleRelieve.setUnitIdType(IdType.YYZZ);
assVehicleRelieve.setUnitName(req.getOrgName());
assVehicleRelieve.setUnitId(req.getOrgId());
}
if (req.getApplyType() == 1 && req.getIsSelf() == 2){
assVehicleRelieve.setOwnerName(req.getPersonName());
assVehicleRelieve.setOwnerIdNum(req.getPersonIdNum());
assVehicleRelieve.setOwnerPosImgUrl(req.getPersonFrontUrl());
assVehicleRelieve.setOwnerNegImgUrl(req.getPersonBackUrl());
}
QtkCardInfo qtkCardInfo = (QtkCardInfo) dataStream.get(CARD_INFO);
QtkObuInfo qtkObuInfo = (QtkObuInfo) dataStream.get(OBU_INFO);
if (qtkCardInfo != null) {
assVehicleRelieve.setRelieveCardId(qtkCardInfo.getCardId());
assOrderinfo.setCardId(qtkCardInfo.getCardId());
}
if (qtkObuInfo != null) {
assVehicleRelieve.setRelieveObuId(qtkObuInfo.getObuId());
assOrderinfo.setObuId(qtkObuInfo.getObuId());
}
assVehicleRelieve.setInsertTime(now);
assVehicleRelieve.setUpdateTime(now);
assOrderinfoRepo.persist(assOrderinfo);
assVehicleRelieveRepo.persist(assVehicleRelieve);
}

@Override
protected ReleasePlateApplyResponse getRes(ReleasePlateApplyRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException {
return new ReleasePlateApplyResponse();
}
}

+ 6
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/AssServiceHandler.java Vedi File

@@ -1,9 +1,11 @@
package cn.com.taiji.ias.manager.handler;

import cn.com.taiji.core.model.comm.protocol.ias.ass.ReleasePlateApplyRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.DeviceLossRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.ResignRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleChangeArtificialRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleChangeCancelRequest;
import cn.com.taiji.ias.manager.ass.releasePlate.ReleasePlateApplyManager;
import cn.com.taiji.ias.manager.ass.resign.ResignManager;
import cn.com.taiji.ias.manager.device.DeviceLossManager;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +41,8 @@ public class AssServiceHandler extends AbstractIasServiceHandler<AssServiceCmd>
private VehicleChangeArtificialManager vehicleInfoChangeArtificialManager;
@Autowired
private VehicleChangeCancelManager vehicleInfoChangeCancelManager;
@Autowired
private ReleasePlateApplyManager releasePlateApplyManager;

public AssServiceHandler() {
super(IasServiceType.ASS);
@@ -50,6 +54,8 @@ public class AssServiceHandler extends AbstractIasServiceHandler<AssServiceCmd>
switch (cmd) {
case RESIGN:
return resignManager.serviceHandle((ResignRequest) request);
case RELEASEPLATEAPPLY:
return releasePlateApplyManager.serviceHandle((ReleasePlateApplyRequest) request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
case LOSS:
return deviceLossManager.serviceHandle((DeviceLossRequest) request);
case VEHICLEINFOCHANGE:

+ 19
- 8
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/oqs/issue/IssueCommManagerImpl.java Vedi File

@@ -178,17 +178,28 @@ public abstract class IssueCommManagerImpl {
// cardInfo.setUploadStatus(dsiCardInfo.getUploadStatus());
// cardInfo.setAccountOrganization(dsiCardInfo.getAccountOrganization());
// cardInfo.setAccountCardNo(dsiCardInfo.getAccountCardNo());
if (dsiCardInfo.getCustomer() != null) {
QtkCustomerInfo customerInfo = new QtkCustomerInfo();
enc(dsiCardInfo.getCustomer(), customerInfo);
// if (dsiCardInfo.getCustomer() != null) {
// QtkCustomerInfo customerInfo = new QtkCustomerInfo();
// enc(dsiCardInfo.getCustomer(), customerInfo);
// cardInfo.setCustomer(customerInfo);
}
if (dsiCardInfo.getVehicle() != null) {
QtkVehicleInfo vehicleInfo = new QtkVehicleInfo();
enc(dsiCardInfo.getVehicle(), vehicleInfo);
// }
// if (dsiCardInfo.getVehicle() != null) {
// QtkVehicleInfo vehicleInfo = new QtkVehicleInfo();
// enc(dsiCardInfo.getVehicle(), vehicleInfo);
// cardInfo.setVehicle(vehicleInfo);
}
// }
cardInfo.setDebitType(dsiCardInfo.getDebitType());
if (dsiCardInfo.getCardType().equals(211)){
//储值卡
cardInfo.setCardTypeNew(CardType.STORED_VALUE_CARD);
}else {
if (0 == dsiCardInfo.getDebitType()){
cardInfo.setCardTypeNew(CardType.CHARGE_CARD);
}
if (1 == dsiCardInfo.getDebitType()){
cardInfo.setCardTypeNew(CardType.PRE_CHARGE_CARD);
}
}
}

public static void enc(DsiOBUInfo dsiOBUInfo, QtkObuInfo obuInfo) {

Loading…
Annulla
Salva