@@ -3,6 +3,7 @@ package cn.com.taiji.core.model.comm.protocol.ias; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
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.bill.*; | |||
public enum IasServiceCmd implements SignServiceCommand { | |||
BILLRAISEINSERT("发票抬头添加","billRaiseInsert", BillRaiseInsertRequest.class), |
@@ -4,6 +4,7 @@ import cn.com.taiji.core.manager.comm.client.CommServiceCommand; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceSystem; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceType; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.ProvinceCmd; | |||
import lombok.Getter; | |||
import java.util.Arrays; | |||
@@ -12,6 +13,7 @@ import java.util.regex.Pattern; | |||
public enum IasServiceType implements SignServiceType { | |||
BILL("发票操作", "^BILL_\\S+\\.json$", IasServiceCmd.values()), | |||
PROVINCE("省中心","^REFUNDPROVINCE\\S+\\.json$", ProvinceCmd.values()), | |||
; | |||
@Getter |
@@ -0,0 +1,30 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.time.LocalDate; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:11 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class GetOriginListRequest extends AbstractSignTypeRequest<GetOriginListResponse> { | |||
/** 车牌号 */ | |||
private String exVehPlate; | |||
/** 交易开始时间 */ | |||
private LocalDate start; | |||
/** 交易结束时间 */ | |||
private LocalDate end; | |||
public GetOriginListRequest() { | |||
super(ProvinceCmd.GET_ORIGIN_LIST); | |||
} | |||
} |
@@ -0,0 +1,23 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.GetOriginListResModel; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:12 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class GetOriginListResponse extends AbstractSignTypeResponse { | |||
private List<GetOriginListResModel> modelList; | |||
} |
@@ -0,0 +1,27 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.OrderPushReqModel; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:11 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderPushRequest extends AbstractSignTypeRequest<OrderPushResponse> { | |||
public OrderPushRequest() { | |||
super(ProvinceCmd.ORDER_PUSH); | |||
} | |||
List<OrderPushReqModel> orderPushReqModels; | |||
} |
@@ -0,0 +1,23 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.OrderPushResModel; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:12 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderPushResponse extends AbstractSignTypeResponse { | |||
private List<OrderPushResModel> resModelList; | |||
} |
@@ -0,0 +1,30 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.time.LocalDate; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:11 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderSaveRequest extends AbstractSignTypeRequest<OrderSaveResponse> { | |||
/** 车牌号 */ | |||
private String exVehPlate; | |||
/** 交易开始时间 */ | |||
private LocalDate start; | |||
/** 交易结束时间 */ | |||
private LocalDate end; | |||
public OrderSaveRequest() { | |||
super(ProvinceCmd.ORDER_SAVE); | |||
} | |||
} |
@@ -0,0 +1,19 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:12 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderSaveResponse extends AbstractSignTypeResponse { | |||
} |
@@ -0,0 +1,56 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
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; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 15:40 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
public enum ProvinceCmd implements SignServiceCommand { | |||
GET_ORIGIN_LIST("省中心出口流水查询", GetOriginListRequest.class), | |||
ORDER_PUSH("省中心工单创建", OrderPushRequest.class), | |||
QUERY_NEW_REFUND("省中心工单查询", QueryNewRefundRequest.class), | |||
QUERY_HANDLE_RECORD("省中心工单处理记录查询", QueryHandleRecordsRequest.class), | |||
ORDER_SAVE("省中心工单更新", OrderSaveRequest.class), | |||
; | |||
private final String value; | |||
private final Class<? extends AbstractSignTypeRequest<?>> reqClass; | |||
ProvinceCmd(String value, Class<? extends AbstractSignTypeRequest<?>> reqClass) { | |||
this.value = value; | |||
this.reqClass = reqClass; | |||
} | |||
@Override | |||
public SignServiceType getServiceType() { | |||
return IasServiceType.PROVINCE; | |||
} | |||
public static ProvinceCmd fromIfCode(String ifCode) { | |||
return SignServiceCommand.fromName(ProvinceCmd.class, SignServiceCommand.getCmdStr(ifCode)); | |||
} | |||
@Override | |||
public boolean isMyCommand(String ifCode) { | |||
return this == fromIfCode(ifCode); | |||
} | |||
@Override | |||
public String getValue() { | |||
return value; | |||
} | |||
@Override | |||
public Class<? extends AbstractSignTypeRequest<?>> getProtocolClass() { | |||
return reqClass; | |||
} | |||
} |
@@ -0,0 +1,30 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.time.LocalDate; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:11 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class QueryHandleRecordsRequest extends AbstractSignTypeRequest<QueryHandleRecordsResponse> { | |||
/** 车牌号 */ | |||
private String exVehPlate; | |||
/** 交易开始时间 */ | |||
private LocalDate start; | |||
/** 交易结束时间 */ | |||
private LocalDate end; | |||
public QueryHandleRecordsRequest() { | |||
super(ProvinceCmd.QUERY_HANDLE_RECORD); | |||
} | |||
} |
@@ -0,0 +1,19 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:12 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class QueryHandleRecordsResponse extends AbstractSignTypeResponse { | |||
} |
@@ -0,0 +1,58 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.time.LocalDate; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:11 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class QueryNewRefundRequest extends AbstractSignTypeRequest<QueryNewRefundResponse> { | |||
public QueryNewRefundRequest() { | |||
super(ProvinceCmd.QUERY_NEW_REFUND); | |||
} | |||
/** 工单类型 */ | |||
private String formType; | |||
/** 当前页数 */ | |||
private Integer pi; | |||
/** 每页显示条数 */ | |||
private Integer ps; | |||
/** 工单中passid */ | |||
private String passId; | |||
/** 出口车牌,支持模糊搜索*/ | |||
private String exVehPlate; | |||
/** 工单号 */ | |||
private String formNo; | |||
/** 工单状态,多状态查询使用英文逗号分隔*/ | |||
private String status; | |||
/** 退费状态,多状态查询使用英文逗号分隔 */ | |||
private String handleStatus; | |||
/** 工单创建日期,yyyy-MM-dd */ | |||
private LocalDate startTime; | |||
/** 工单创建日期,yyyy-MM-dd */ | |||
private LocalDate endTime; | |||
/** 排序字段 */ | |||
private String sorter; | |||
/** 退费类型,多个退费类型查询使用英文逗号分隔 */ | |||
private String refundType; | |||
} |
@@ -0,0 +1,23 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.QueryNewRefundResModel; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/4/29 16:12 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class QueryNewRefundResponse extends AbstractSignTypeResponse { | |||
private List<QueryNewRefundResModel> resModelList; | |||
} |
@@ -0,0 +1,98 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province.model; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.math.BigDecimal; | |||
import java.time.LocalDateTime; | |||
@Getter | |||
@Setter | |||
public class GetOriginListResModel extends BaseEntity { | |||
/** 交易通行 ID */ | |||
private String passId; | |||
/** 营改增交易编号 */ | |||
private String ygzListNo; | |||
/** 卡号 */ | |||
private String cardId; | |||
/** 入口车牌 */ | |||
private String enVehPlate; | |||
/** 出口车牌 */ | |||
private String exVehPlate; | |||
/** 入口时间(格式:yyyy-MM-dd HH:mm:ss) */ | |||
private LocalDateTime enTime; | |||
/** 出口时间(格式:yyyy-MM-dd HH:mm:ss) */ | |||
private LocalDateTime exTime; | |||
/** 入口收费站名称 */ | |||
private String enTollStationName; | |||
/** 出口收费站名称 */ | |||
private String exTollStationName; | |||
/** 支付类型(银联交易标识) */ | |||
private Integer unionPayTransFlag; | |||
/** 车型(出口车辆类型) */ | |||
private Integer exVehClass; | |||
/** 收费金额(单位:元,精确到小数点后 2 位) */ | |||
private BigDecimal tollAmount; | |||
/** 交易类型 */ | |||
private Integer recordType; | |||
/** 业主 ID */ | |||
private Integer ownerId; | |||
/** 业主名称 */ | |||
private String ownerName; | |||
/** 道路名称 */ | |||
private String roadName; | |||
/** 道路编号 */ | |||
private Integer road; | |||
/** 业主管理单位名称 */ | |||
private String manageName; | |||
/** 业主管理单位编号 */ | |||
private Integer manageUnit; | |||
/** 16 进制卡号 */ | |||
private String hexCardId; | |||
/** 是否为多省通行(出口流水字段) */ | |||
private Integer multiProvince; | |||
/** 是否已找到交易(出口流水字段) */ | |||
private Integer isFind; | |||
/** 退费类型(1: 多收退费, 2: 重复扣费, 3: 应免未免, 4: 其他) */ | |||
private Integer refundType; | |||
/** 业主单位处理时限(单位:小时,12 普通工单,4 加急工单) */ | |||
private Integer roadTime; | |||
/** 工单描述(不超过 200 字) */ | |||
private String handleMessage; | |||
/** 工单处理结果(0 代表未处理) */ | |||
private Integer handleResult; | |||
/** 操作类型(3 代表操作类别) */ | |||
private Integer handlerType; | |||
/** 当前提交账户名称 */ | |||
private String submitAccount; | |||
} |
@@ -0,0 +1,78 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province.model; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.io.InputStream; | |||
import java.math.BigDecimal; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/5/6 20:22 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderPushReqModel extends BaseEntity { | |||
private String passId; | |||
private String ygzListNo; | |||
private String cardId; | |||
private String enVehPlate; | |||
private String exVehPlate; | |||
private LocalDateTime enTime; | |||
private LocalDateTime exTime; | |||
private String enTollStationName; | |||
private String exTollStationName; | |||
private Integer unionPayTransFlag; | |||
private Integer exVehClass; | |||
private BigDecimal tollAmount; | |||
private Integer ownerId; | |||
private String ownerName; | |||
private String roadName; | |||
private Integer road; | |||
private String manageName; | |||
private Integer manageUnit; | |||
private String hexCardId; | |||
private Integer multiProvince; | |||
private Integer isFind; | |||
private Integer refundType; | |||
private Integer roadTime; | |||
private String handleMessage; | |||
private Integer handleResult; | |||
private Integer handlerType; | |||
private String submitAccount; | |||
private List<InputStream> file; // 附件二进制流 | |||
} |
@@ -0,0 +1,24 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province.model; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/5/6 20:22 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class OrderPushResModel extends BaseEntity { | |||
/** 通行 PassId */ | |||
private String passId; | |||
/** 工单号 */ | |||
private String formNo; | |||
} |
@@ -0,0 +1,90 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.province.model; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.math.BigDecimal; | |||
import java.time.LocalDateTime; | |||
/** | |||
* @Auther: humh | |||
* @Description: | |||
* @Date: 2025/5/8 10:45 | |||
* @email: huminghao@mail.taiji.com.cn | |||
* @version: 1.0 | |||
*/ | |||
@Getter | |||
@Setter | |||
public class QueryNewRefundResModel extends BaseEntity { | |||
/** 业主 */ | |||
private String ownerName; | |||
/** 管理所 */ | |||
private String manageName; | |||
/** 工单号 */ | |||
private String formNo; | |||
/** 交易编号 */ | |||
private String ygzListNo; | |||
/** 通行 PassId */ | |||
private String passId; | |||
/** 卡号(十进制) */ | |||
private String cardId; | |||
/** 卡号(十六进制) */ | |||
private String hexCardId; | |||
/** 车牌号 */ | |||
private String exVehPlate; | |||
/** 入口站名称 */ | |||
private String enTollStationName; | |||
/** 入口时间 */ | |||
private LocalDateTime enTime; | |||
/** 出口站名称 */ | |||
private String exTollStationName; | |||
/** 出口时间 */ | |||
private LocalDateTime exTime; | |||
/** 收费金额(元,精确到小数点后两位) */ | |||
private BigDecimal tollAmount; | |||
/** 退费金额(元,精确到小数点后两位) */ | |||
private BigDecimal refundFee; | |||
/** 车型 */ | |||
private Integer exVehClass; | |||
/** 支付类型(银联交易标识) */ | |||
private Integer unionPayTransFlag; | |||
/** 退费类型(1: 多收退费, 2: 重复扣费, 3: 应免未免, 4: 其他) */ | |||
private Integer refundType; | |||
/** 开票单位 */ | |||
private String printName; | |||
/** 工单类型 */ | |||
private Integer formType; | |||
/** 工单下发时间 */ | |||
private LocalDateTime createTime; | |||
/** 工单状态(10: 省中心退回, 1: 待路方处理, 2: 业主退回待处理, 3: 待省中心裁决, 4: 待发行方确认, 5: 待上传部中心, 6: 上传中, 7: 上传完成, 8: 上传部中心失败, 9: 待省中心确认, 0: 待处理, 11: 省中心已确认, 12: 待客户回访, 13: 客户拒绝退费) */ | |||
private Integer status; | |||
/** 处理结果(0: 争议中, 1: 同意退款, 2: 拒绝退款, 3: 工单废弃, 4: 省中心已确认) */ | |||
private Integer handleStatus; | |||
/** 工单最后更新时间 */ | |||
private LocalDateTime handleTime; | |||
} |
@@ -2,6 +2,9 @@ package cn.com.taiji.ias.manager.handler; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.model.file.FileProtocolSystemError; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest; | |||
import cn.com.taiji.ias.manager.refund.*; | |||
import com.zgglyun.common.model.AbstractHttpRequestInfo; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
@@ -23,12 +26,12 @@ public class RefundProvinceHandler extends AbstractIssuesServiceHandler<RefundPr | |||
public RefundProvinceHandler() { | |||
super(IssuesServiceType.REFUNDPROVINCE); | |||
super(IasServiceType.PROVINCE); | |||
} | |||
@Override | |||
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, | |||
SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { | |||
SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { | |||
RefundProvinceCmd cmd = RefundProvinceCmd.fromIfCode(jsonReq.getIfCode()); | |||
switch (cmd) { | |||
case GET_ORIGIN_LIST: |