瀏覽代碼

无车api接口规范

xusonglin 5 年之前
父節點
當前提交
c1ee69c738
共有 24 個文件被更改,包括 603 次插入133 次删除
  1. 10 1
      src/main/java/com/jkcredit/invoice/hub/constant/CommonConstant.java
  2. 2 1
      src/main/java/com/jkcredit/invoice/hub/constant/ExceptionMessage.java
  3. 22 5
      src/main/java/com/jkcredit/invoice/hub/controller/rest/forward/ForwardResource.java
  4. 1 0
      src/main/java/com/jkcredit/invoice/hub/enums/ApiResponseCodeEnum.java
  5. 13 0
      src/main/java/com/jkcredit/invoice/hub/mapper/CarFreeCarrierBillEndMapper.java
  6. 3 1
      src/main/java/com/jkcredit/invoice/hub/mapper/carFreeCarrierBillStartMapper.java
  7. 43 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/carFreeCarrierBillEnd/CarFreeCarrierBillEndDto.java
  8. 19 2
      src/main/java/com/jkcredit/invoice/hub/model/dto/carFreeCarrierBillStart/CarFreeCarrierBillStartDto.java
  9. 59 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/company/CompanyAddDto.java
  10. 21 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/company/CompanyQueryDto.java
  11. 23 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/vehicleRegister/VehicleRegisterDto.java
  12. 56 0
      src/main/java/com/jkcredit/invoice/hub/model/po/carFreeCarrierBillEnd/CarFreeCarrierBillEndPo.java
  13. 1 1
      src/main/java/com/jkcredit/invoice/hub/model/po/carFreeCarrierBillStart/CarFreeCarrierBillStartPo.java
  14. 141 81
      src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeServiceImpl.java
  15. 1 1
      src/main/java/com/jkcredit/invoice/hub/service/apiCompany/ApiCompanyService.java
  16. 47 30
      src/main/java/com/jkcredit/invoice/hub/service/apiCompany/ApiCompanyServiceImpl.java
  17. 3 1
      src/main/java/com/jkcredit/invoice/hub/service/apiUser/ApiUserService.java
  18. 11 4
      src/main/java/com/jkcredit/invoice/hub/service/apiUser/ApiUserServiceImpl.java
  19. 1 4
      src/main/java/com/jkcredit/invoice/hub/service/base/BaseService.java
  20. 13 0
      src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillEnd/CarFreeCarrierBillEndService.java
  21. 40 0
      src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillEnd/CarFreeCarrierBillEndServiceImpl.java
  22. 4 0
      src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartService.java
  23. 41 1
      src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartServiceImpl.java
  24. 28 0
      src/main/resources/mapper/CarFreeCarrierBillStartMapper.xml

+ 10 - 1
src/main/java/com/jkcredit/invoice/hub/constant/CommonConstant.java

@@ -41,5 +41,14 @@ public class CommonConstant {
 
     // 备案来源 无车承运人
     public static Integer WAYBILL_SOURCE_1 = 1;
-
+    // 实时运单标记
+    public static Integer REALTIME_WAY_BILL = 1;
+    // 历史运单标记
+    public static Integer HISTORY_WAY_BILL = 2;
+    // 成功code
+    public static Integer SUCCESS_CODE = 1;
+    // 失败code
+    public static Integer ERROR_CODE = 2;
+    // 运单状态-已结束
+    public static Integer STATUS_OVER = 2;
 }

+ 2 - 1
src/main/java/com/jkcredit/invoice/hub/constant/ExceptionMessage.java

@@ -8,5 +8,6 @@ package com.jkcredit.invoice.hub.constant;
  **/
 public class ExceptionMessage {
     public static String USER_NOT_EXIST = "用户不存在";
-    public static String ROLE_NOT_EXIST = "用户不存在";
+    public static String ROLE_NOT_EXIST = "角色不存在";
+    public static String DATA_NOT_EXIST = "数据不存在";
 }

+ 22 - 5
src/main/java/com/jkcredit/invoice/hub/controller/rest/forward/ForwardResource.java

@@ -1,11 +1,11 @@
 package com.jkcredit.invoice.hub.controller.rest.forward;
 
+import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
-import com.jkcredit.invoice.hub.constant.ResponseStatus;
 import com.jkcredit.invoice.hub.controller.base.RestResource;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+import com.jkcredit.invoice.hub.service.apiCarFree.ApiCarFreeService;
 import com.jkcredit.invoice.hub.service.apiCompany.ApiCompanyService;
 import com.jkcredit.invoice.hub.service.apiUser.ApiUserService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
@@ -31,6 +31,8 @@ public class ForwardResource extends RestResource {
     ApiUserService apiUserService;
     @Autowired
     ApiCompanyService apiCompanyService;
+    @Autowired
+    ApiCarFreeService apiCarFreeService;
 
     @PostMapping("/rest")
     public ApiResponseData forwardRequest(@RequestBody ApiRequestParam param) {
@@ -44,7 +46,7 @@ public class ForwardResource extends RestResource {
 
         try {
             // 校验用户key secret, 权限,余额
-            Integer validateUserResult = apiUserService.validateUser(param.getAppKey(), param.getAppSecret(), param.getApi());
+            Integer validateUserResult = apiUserService.validateUser(param);
             if (!validateUserResult.equals(ApiResponseCodeEnum.CODE_200.getValue())) {
                 return ApiResponseData.failure(validateUserResult, EnumStatusUtils.getStatusByValue(ApiResponseCodeEnum.class, validateUserResult).getDesc());
             }
@@ -52,13 +54,28 @@ public class ForwardResource extends RestResource {
             if (param.getApi().equals(CommonConstant.COMPANY_QUERY_V1)) {
                 return apiCompanyService.companyQuery(JSON.parseObject(JSON.toJSONString(param.getData())));
             } else if (param.getApi().equals(CommonConstant.COMPANY_ADD_V1)) {
-                return apiCompanyService.queryAdd(JSON.parseObject(JSON.toJSONString(param.getData())));
+                return apiCompanyService.companyAdd(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.VEHICLE_REGISTER_QUERY)) {
+                return apiCarFreeService.vehicleRegisterQuery(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.VEHICLE_REGISTER)) {
+                return apiCarFreeService.vehicleRegister(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.WAY_BILL_START)) {
+                return apiCarFreeService.wayBillStart(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.WAY_BILL_END)) {
+                return apiCarFreeService.wayBillEnd(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.WAY_BILL_HISTORY_START)) {
+                return apiCarFreeService.wayBillHistoryStart(JSON.parseObject(JSON.toJSONString(param.getData())));
+            } else if (param.getApi().equals(CommonConstant.WAY_BILL_HISTORY_END)) {
+                return apiCarFreeService.wayBillHistoryEnd(JSON.parseObject(JSON.toJSONString(param.getData())));
             } else {
                 return ApiResponseData.failure(ApiResponseCodeEnum.CODE_1080.getValue(), ApiResponseCodeEnum.CODE_1080.getDesc());
             }
         } catch (ServiceException se) {
             log.error("接口调用失败,失败原因:{}", se.getMessage());
-            return ApiResponseData.failure(ApiResponseCodeEnum.CODE_9999.getValue(), CommonConstant.QUERY_FAILED);
+            return ApiResponseData.failure(ApiResponseCodeEnum.CODE_9998.getValue(), ApiResponseCodeEnum.CODE_9998.getDesc());
+        } catch (ApiRequestException ae) {
+            log.error("接口业务失败,失败原因:{}", ae.getMessage());
+            return ApiResponseData.failure(ae.getErrCode(), ae.getMessage());
         }
     }
 }

+ 1 - 0
src/main/java/com/jkcredit/invoice/hub/enums/ApiResponseCodeEnum.java

@@ -19,6 +19,7 @@ public enum ApiResponseCodeEnum implements EnumStatus {
     CODE_1090(1090, "商户余额不足!"),
     CODE_1100(1100, "请求的API模块不存在!"),
     CODE_1110(1110, "商户单位时间内请求超过限制!"),
+    CODE_9998(9998, "查询错误"),
     CODE_9999(9999, "其他异常-"),
     CODE_200(200, "成功");
 

+ 13 - 0
src/main/java/com/jkcredit/invoice/hub/mapper/CarFreeCarrierBillEndMapper.java

@@ -0,0 +1,13 @@
+package com.jkcredit.invoice.hub.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillEnd.CarFreeCarrierBillEndPo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 16:13
+ * @version: V1.0
+ **/
+public interface CarFreeCarrierBillEndMapper extends BaseMapper<CarFreeCarrierBillEndPo> {
+}

+ 3 - 1
src/main/java/com/jkcredit/invoice/hub/mapper/carFreeCarrierBillStartMapper.java

@@ -9,5 +9,7 @@ import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierB
  * @create: 2020/1/16 23:22
  * @version: V1.0
  **/
-public interface carFreeCarrierBillStartMapper extends BaseMapper<CarFreeCarrierBillStartPo> {
+public interface CarFreeCarrierBillStartMapper extends BaseMapper<CarFreeCarrierBillStartPo> {
+    // 根据运单编号查询运单开始记录
+    CarFreeCarrierBillStartPo getBillStartByNum(String num);
 }

+ 43 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/carFreeCarrierBillEnd/CarFreeCarrierBillEndDto.java

@@ -0,0 +1,43 @@
+package com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 16:08
+ * @version: V1.0
+ **/
+@Data
+public class CarFreeCarrierBillEndDto implements Serializable {
+    private static final long serialVersionUID = 6773276823284930748L;
+    // 运单编号
+    @NotNull(message = "运单编号不能为空")
+    @NotBlank(message = "运单编号不能为空")
+    private String num;
+
+    // 运单实际目的地址
+    @NotNull(message = "运单实际目的地址不能为空")
+    @NotBlank(message = "运单实际目的地址不能为空")
+    private String realDestAddr;
+
+    // 结束时间
+    @NotNull(message = "结束时间不能为空")
+    @NotBlank(message = "结束时间不能为空")
+    private String endTime;
+
+    // 开票时长
+    @NotNull(message = "开票时长不能为空")
+    private Integer invoiceTime;
+
+    // 是否为历史运单
+    private Integer isHistory;
+
+    // 用户id
+    private Long userId;
+}

+ 19 - 2
src/main/java/com/jkcredit/invoice/hub/model/dto/carFreeCarrierBillStart/CarFreeCarrierBillStartDto.java

@@ -2,8 +2,10 @@ package com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart;
 
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
-import java.math.BigDecimal;
 
 /**
  * @description:
@@ -15,22 +17,37 @@ import java.math.BigDecimal;
 public class CarFreeCarrierBillStartDto implements Serializable {
     private static final long serialVersionUID = 5285252486932628307L;
     // 运单编号
+    @NotNull(message = "运单编号不能为空")
+    @NotBlank(message = "运单编号不能为空")
     private String num;
     // 车牌号
+    @NotNull(message = "车牌号不能为空")
+    @NotBlank(message = "车牌号不能为空")
     private String plateNumber;
     // 车牌颜色
+    @NotNull(message = "车牌颜色不能为空")
     private Integer plateColor;
     // 运单开始时间
+    @NotNull(message = "运单开始时间不能为空")
+    @NotBlank(message = "运单开始时间不能为空")
     private String startTime;
     // 运单开始地址
+    @NotNull(message = "运单开始地址不能为空")
+    @NotBlank(message = "运单开始地址不能为空")
     private String sourceAddr;
     // 运单目的地址
+    @NotNull(message = "运单目的地址不能为空")
+    @NotBlank(message = "运单目的地址不能为空")
     private String destAddr;
     // 运单预计完成时间
+    @NotNull(message = "运单预计完成时间不能为空")
+    @NotBlank(message = "运单预计完成时间不能为空")
     private String predictEndTime;
     // 运单费用
-    private BigDecimal fee;
+    @NotNull(message = "运单费用不能为空")
+    private Long fee;
     // 发票抬头类型
+    @NotNull(message = "发票抬头类型不能为空")
     private Integer titleType;
     // 税号
     private String taxPlayerCode;

+ 59 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/company/CompanyAddDto.java

@@ -0,0 +1,59 @@
+package com.jkcredit.invoice.hub.model.dto.company;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 22:20
+ * @version: V1.0
+ **/
+@Data
+public class CompanyAddDto implements Serializable {
+    private static final long serialVersionUID = -6186404166498526540L;
+
+    @NotNull(message = "客户名称")
+    private String name;
+
+    @NotNull(message = "公司类型")
+    private Integer companyType;
+
+    @NotNull(message = "纳税人识别号")
+    private String taxplayerCode;
+
+    @NotNull(message = "运营范围")
+    private Integer operatingRangeType;
+
+    @NotNull(message = "联系人")
+    private String contact;
+
+    @NotNull(message = "联系人电话")
+    private String tel;
+
+    @NotNull(message = "紧急联系人")
+    private String emergencyContact;
+
+    @NotNull(message = "紧急联系人电话")
+    private String emergencyTel;
+
+    @NotNull(message = "购方客户名称")
+    private String buyerName;
+
+    @NotNull(message = "购方税号")
+    private String buyerTaxpayerCode;
+
+    @NotNull(message = "购方单位地址")
+    private String buyerAddr;
+
+    @NotNull(message = "购方电话")
+    private String buyerTel;
+
+    @NotNull(message = "购方开户行")
+    private String buyerBank;
+
+    @NotNull(message = "购方银行账号")
+    private String buyerBankAccount;
+}

+ 21 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/company/CompanyQueryDto.java

@@ -0,0 +1,21 @@
+package com.jkcredit.invoice.hub.model.dto.company;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 22:15
+ * @version: V1.0
+ **/
+@Data
+public class CompanyQueryDto implements Serializable {
+    private static final long serialVersionUID = -3452378531580247904L;
+    @NotNull(message = "公司名称不能为空")
+    private String companyName;
+    @NotNull(message = "公司税号不能为空")
+    private String taxplayerCode;
+}

+ 23 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/vehicleRegister/VehicleRegisterDto.java

@@ -0,0 +1,23 @@
+package com.jkcredit.invoice.hub.model.dto.vehicleRegister;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 22:03
+ * @version: V1.0
+ **/
+@Data
+public class VehicleRegisterDto implements Serializable {
+    private static final long serialVersionUID = 185499201504337124L;
+
+    @NotNull(message = "车牌号不能为空")
+    private String plateNumber;
+
+    @NotNull(message = "车牌颜色不能为空")
+    private Integer plateColor;
+}

+ 56 - 0
src/main/java/com/jkcredit/invoice/hub/model/po/carFreeCarrierBillEnd/CarFreeCarrierBillEndPo.java

@@ -0,0 +1,56 @@
+package com.jkcredit.invoice.hub.model.po.carFreeCarrierBillEnd;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.ToString;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 15:56
+ * @version: V1.0
+ **/
+@Entity
+@Data
+@ToString
+@TableName("h_car_free_carrier_bill_end")
+public class CarFreeCarrierBillEndPo implements Serializable {
+    private static final long serialVersionUID = -8472145911373573999L;
+    @Id
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    // 运单编号
+    private String num;
+
+    // 运单实际目的地址
+    private String realDestAddr;
+
+    // 结束时间
+    private String endTime;
+
+    // 开票时长
+    private Integer invoiceTime;
+
+    // 是否为历史运单
+    private Integer isHistory;
+
+    // 用户id
+    private Long userId;
+
+    // 创建时间
+    private Date createTime;
+
+    // 更新时间
+    private Date updateTime;
+
+    // 删除标记
+    private Integer activated;
+}

+ 1 - 1
src/main/java/com/jkcredit/invoice/hub/model/po/carFreeCarrierBillStart/CarFreeCarrierBillStartPo.java

@@ -43,7 +43,7 @@ public class CarFreeCarrierBillStartPo implements Serializable {
     // 运单预计完成时间
     private String predictEndTime;
     // 运单费用
-    private BigDecimal fee;
+    private Long fee;
     // 发票抬头类型
     private Integer titleType;
     // 税号

+ 141 - 81
src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeServiceImpl.java

@@ -1,21 +1,29 @@
 package com.jkcredit.invoice.hub.service.apiCarFree;
 
+import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
 import cn.com.taiji.sdk.comm.ETCCommHelper;
-import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryRequest;
-import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
+import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrierBillStartDto;
+import com.jkcredit.invoice.hub.model.dto.vehicleRegister.VehicleRegisterDto;
 import com.jkcredit.invoice.hub.service.base.BaseService;
+import com.jkcredit.invoice.hub.service.carFreeCarrierBillEnd.CarFreeCarrierBillEndService;
+import com.jkcredit.invoice.hub.service.carFreeCarrierBillStart.CarFreeCarrierBillStartService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
 import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 
@@ -28,19 +36,27 @@ import java.io.IOException;
 @Service
 @Slf4j
 public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeService {
+    @Autowired
+    CarFreeCarrierBillStartService wayBillStartService;
+    @Autowired
+    CarFreeCarrierBillEndService wayBillEndService;
+
     @Override
     public ApiResponseData vehicleRegisterQuery(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
         String result;
 
-        VehicleQueryRequest request = new VehicleQueryRequest();
-        request.setPlateNum(param.getString("plateNumber").trim());
-        request.setPlateColor(param.getInteger("PlateColor"));
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        request.setWaybillSource(CommonConstant.WAYBILL_SOURCE_1);
-        String fileName = request.getFilename();
-
         try {
+            VehicleRegisterDto dto = JSON.toJavaObject(param, VehicleRegisterDto.class);
+            validate(dto);
+
+            VehicleQueryRequest request = new VehicleQueryRequest();
+            request.setPlateNum(dto.getPlateNumber());
+            request.setPlateColor(dto.getPlateColor());
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            request.setWaybillSource(CommonConstant.WAYBILL_SOURCE_1);
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             VehicleQueryResponse response = ETCCommHelper.upload(fileName, request, VehicleQueryResponse.class);
 
@@ -52,9 +68,12 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         } catch (IOException e) {
             log.error("[-vehicleRegisterQuery-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-vehicleRegisterQuery-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-vehicleRegisterQuery-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
@@ -64,13 +83,16 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         long costTimeStart = System.currentTimeMillis();
         String result;
 
-        VehicleRegisterRequest request = new VehicleRegisterRequest();
-        request.setPlateNum(param.getString("plateNumber").trim());
-        request.setPlateColor(param.getInteger("PlateColor"));
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        String fileName = request.getFilename();
-
         try {
+            VehicleRegisterDto dto = JSON.toJavaObject(param, VehicleRegisterDto.class);
+            validate(dto);
+
+            VehicleRegisterRequest request = new VehicleRegisterRequest();
+            request.setPlateNum(dto.getPlateNumber());
+            request.setPlateColor(dto.getPlateColor());
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             VehicleRegisterResponse response = ETCCommHelper.upload(fileName, request, VehicleRegisterResponse.class);
 
@@ -82,9 +104,12 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         } catch (IOException e) {
             log.error("[-vehicleRegister-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-vehicleRegister-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-vehicleRegister-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
@@ -92,30 +117,35 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
     @Override
     public ApiResponseData wayBillStart(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
-        // todo 入库 入库失败则返回失败,不调接口
         String result;
 
-        WaybillStartRequest request = new WaybillStartRequest();
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        request.setNum(param.getString("num").trim());
-        request.setPlateNum(param.getString("plateNumber").trim());
-        request.setPlateColor(param.getInteger("PlateColor"));
-        request.setStartTime(param.getString("startTime").trim());
-        request.setSourceAddr(param.getString("sourceAddr").trim());
-        request.setDestAddr(param.getString("destAddr").trim());
-        request.setPredictEndTime(param.getString("predictEndTime").trim());
-        request.setFee(param.getLong("fee"));
-        request.setTitleType(param.getInteger("titleType"));
-
-        if (!StringUtil.isNullOrEmpty(param.getString("taxplayerCode"))) {
-            request.setTaxplayerCode(param.getString("taxplayerCode").trim());
-        }
-        String fileName = request.getFilename();
-
         try {
+            CarFreeCarrierBillStartDto dto = JSONObject.toJavaObject(param, CarFreeCarrierBillStartDto.class);
+            validate(dto);
+
+            WaybillStartRequest request = new WaybillStartRequest();
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            request.setNum(dto.getNum());
+            request.setPlateNum(dto.getPlateNumber());
+            request.setPlateColor(dto.getPlateColor());
+            request.setStartTime(dto.getStartTime());
+            request.setSourceAddr(dto.getSourceAddr());
+            request.setDestAddr(dto.getDestAddr());
+            request.setPredictEndTime(dto.getPredictEndTime());
+            request.setFee(dto.getFee());
+            request.setTitleType(dto.getTitleType());
+
+            if (!StringUtil.isNullOrEmpty(dto.getTaxPlayerCode())) {
+                request.setTaxplayerCode(dto.getTaxPlayerCode());
+            }
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             WaybillStartResponse response = ETCCommHelper.upload(fileName, request, WaybillStartResponse.class);
 
+            dto.setIsHistory(CommonConstant.REALTIME_WAY_BILL);
+            wayBillStartService.saveBillStart(dto);
+
             result = response.toJson();
             long costTimeEnd = System.currentTimeMillis();
             log.info("[-wayBillStart-] result is " + result.replaceAll("\r|\n", "") + " , request is "
@@ -124,41 +154,54 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         } catch (IOException e) {
             log.error("[-wayBillStart-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-wayBillStart-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-wayBillStart-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
 
     @Override
+    @Transactional(rollbackFor = ServiceException.class)
     public ApiResponseData wayBillEnd(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
-        // todo 入库 入库失败则返回失败,不调接口
         String result;
 
-        WaybillEndRequest request = new WaybillEndRequest();
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        request.setNum(param.getString("num").trim());
-        request.setRealDestAddr(param.getString("realDestAddr").trim());
-        request.setEndTime(param.getString("endTime").trim());
-        String fileName = request.getFilename();
-
         try {
+            CarFreeCarrierBillEndDto dto = JSONObject.toJavaObject(param, CarFreeCarrierBillEndDto.class);
+            validate(dto);
+
+            WaybillEndRequest request = new WaybillEndRequest();
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            request.setNum(dto.getNum());
+            request.setRealDestAddr(dto.getRealDestAddr());
+            request.setEndTime(dto.getEndTime());
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             WaybillEndResponse response = ETCCommHelper.upload(fileName, request, WaybillEndResponse.class);
 
+            dto.setIsHistory(CommonConstant.REALTIME_WAY_BILL);
+            wayBillEndService.saveBillEnd(dto);
+            wayBillStartService.updateBillStartStatus(dto.getNum(), CommonConstant.STATUS_OVER);
+
             result = response.toJson();
             long costTimeEnd = System.currentTimeMillis();
             log.info("[-waybillEnd-] result is " + result.replaceAll("\r|\n", "") + " , request is "
                     + param + ",costtime=" + (costTimeEnd - costTimeStart) + ",startTime=" + costTimeStart
                     + ",endTime=" + costTimeEnd);
         } catch (IOException e) {
-            log.error("[-waybillEnd-] 网络异常 " + e);
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
-            log.error("[-waybillEnd-] 错误信息:" + apie.getMessage());
+            log.error("[-wayBillEnd-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
+        } catch (ApiRequestException apie) {
+            log.error("[-wayBillEnd-] 错误信息:" + apie.getMessage());
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-wayBillEnd-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
@@ -166,30 +209,35 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
     @Override
     public ApiResponseData wayBillHistoryStart(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
-        // todo 入库 入库失败则返回失败,不调接口
         String result;
 
-        WaybillHistoryStartRequest request = new WaybillHistoryStartRequest();
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        request.setNum(param.getString("num").trim());
-        request.setPlateNum(param.getString("plateNumber").trim());
-        request.setPlateColor(param.getInteger("PlateColor"));
-        request.setStartTime(param.getString("startTime").trim());
-        request.setSourceAddr(param.getString("sourceAddr").trim());
-        request.setDestAddr(param.getString("destAddr").trim());
-        request.setPredictEndTime(param.getString("predictEndTime").trim());
-        request.setFee(param.getLong("fee"));
-        request.setTitleType(param.getInteger("titleType"));
-
-        if (!StringUtil.isNullOrEmpty(param.getString("taxplayerCode"))) {
-            request.setTaxplayerCode(param.getString("taxplayerCode").trim());
-        }
-        String fileName = request.getFilename();
-
         try {
+            CarFreeCarrierBillStartDto dto = JSONObject.toJavaObject(param, CarFreeCarrierBillStartDto.class);
+            validate(dto);
+
+            WaybillHistoryStartRequest request = new WaybillHistoryStartRequest();
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            request.setNum(dto.getNum());
+            request.setPlateNum(dto.getPlateNumber());
+            request.setPlateColor(dto.getPlateColor());
+            request.setStartTime(dto.getStartTime());
+            request.setSourceAddr(dto.getSourceAddr());
+            request.setDestAddr(dto.getDestAddr());
+            request.setPredictEndTime(dto.getPredictEndTime());
+            request.setFee(dto.getFee());
+            request.setTitleType(dto.getTitleType());
+
+            if (!StringUtil.isNullOrEmpty(dto.getTaxPlayerCode())) {
+                request.setTaxplayerCode(dto.getTaxPlayerCode());
+            }
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             WaybillHistoryStartResponse response = ETCCommHelper.upload(fileName, request, WaybillHistoryStartResponse.class);
 
+            dto.setIsHistory(CommonConstant.HISTORY_WAY_BILL);
+            wayBillStartService.saveBillStart(dto);
+
             result = response.toJson();
             long costTimeEnd = System.currentTimeMillis();
             log.info("[-wayBillHistoryStart-] result is " + result.replaceAll("\r|\n", "") + " , request is "
@@ -198,9 +246,12 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         } catch (IOException e) {
             log.error("[-wayBillHistoryStart-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-wayBillHistoryStart-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-wayBillHistoryStart-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
@@ -208,20 +259,26 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
     @Override
     public ApiResponseData wayBillHistoryEnd(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
-        // todo 入库 入库失败则返回失败,不调接口
         String result;
 
-        WaybillHistoryEndRequest request = new WaybillHistoryEndRequest();
-        request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
-        request.setNum(param.getString("num").trim());
-        request.setRealDestAddr(param.getString("realDestAddr").trim());
-        request.setEndTime(param.getString("endTime").trim());
-        String fileName = request.getFilename();
-
         try {
+            CarFreeCarrierBillEndDto dto = JSONObject.toJavaObject(param, CarFreeCarrierBillEndDto.class);
+            validate(dto);
+
+            WaybillHistoryEndRequest request = new WaybillHistoryEndRequest();
+            request.setCompanyNum(CommonConstant.COMPANY_NUMBER);
+            request.setNum(dto.getNum());
+            request.setRealDestAddr(dto.getRealDestAddr());
+            request.setEndTime(dto.getEndTime());
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             WaybillHistoryEndResponse response = ETCCommHelper.upload(fileName, request, WaybillHistoryEndResponse.class);
 
+            dto.setIsHistory(CommonConstant.HISTORY_WAY_BILL);
+            wayBillEndService.saveBillEnd(dto);
+            wayBillStartService.updateBillStartStatus(dto.getNum(), CommonConstant.STATUS_OVER);
+
             result = response.toJson();
             long costTimeEnd = System.currentTimeMillis();
             log.info("[-wayBillHistoryEnd-] result is " + result.replaceAll("\r|\n", "") + " , request is "
@@ -230,9 +287,12 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
         } catch (IOException e) {
             log.error("[-wayBillHistoryEnd-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-wayBillHistoryEnd-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-wayBillHistoryEnd-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }

+ 1 - 1
src/main/java/com/jkcredit/invoice/hub/service/apiCompany/ApiCompanyService.java

@@ -14,5 +14,5 @@ public interface ApiCompanyService {
     ApiResponseData companyQuery(JSONObject param);
 
     // 企业注册
-    ApiResponseData queryAdd(JSONObject param);
+    ApiResponseData companyAdd(JSONObject param);
 }

+ 47 - 30
src/main/java/com/jkcredit/invoice/hub/service/apiCompany/ApiCompanyServiceImpl.java

@@ -1,12 +1,17 @@
 package com.jkcredit.invoice.hub.service.apiCompany;
 
+import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
 import cn.com.taiji.sdk.comm.ETCCommHelper;
 import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyAddRequest;
 import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyAddResponse;
 import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryRequest;
 import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryResponse;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
+import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+import com.jkcredit.invoice.hub.model.dto.company.CompanyAddDto;
+import com.jkcredit.invoice.hub.model.dto.company.CompanyQueryDto;
 import com.jkcredit.invoice.hub.service.base.BaseService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
@@ -30,12 +35,15 @@ public class ApiCompanyServiceImpl extends BaseService implements ApiCompanyServ
         long costTimeStart = System.currentTimeMillis();
         String result;
 
-        CompanyQueryRequest request = new CompanyQueryRequest();
-        request.setCompanyName(param.get("companyName").toString().trim());
-        request.setTaxpaterCode(param.get("taxplayerCode").toString().trim());
-        String fileName = request.getFilename();
-
         try {
+            CompanyQueryDto dto = JSON.toJavaObject(param, CompanyQueryDto.class);
+            validate(dto);
+
+            CompanyQueryRequest request = new CompanyQueryRequest();
+            request.setCompanyName(param.get("companyName").toString().trim());
+            request.setTaxpaterCode(param.get("taxplayerCode").toString().trim());
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             CompanyQueryResponse response = ETCCommHelper.upload(fileName, request, CompanyQueryResponse.class);
 
@@ -47,50 +55,59 @@ public class ApiCompanyServiceImpl extends BaseService implements ApiCompanyServ
         } catch (IOException e) {
             log.error("[-companyQuery-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
+        } catch (ApiRequestException apie) {
             log.error("[-companyQuery-] 错误信息:" + apie.getMessage());
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-companyQuery-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }
 
     @Override
-    public ApiResponseData queryAdd(JSONObject param) {
+    public ApiResponseData companyAdd(JSONObject param) {
         long costTimeStart = System.currentTimeMillis();
         String result;
 
-        CompanyAddRequest request = new CompanyAddRequest();
-        request.setName(param.getString("name").trim());
-        request.setCompanyType(param.getInteger("companyType"));
-        request.setTaxpayerCode(param.getString("taxplayerCode").trim());
-        request.setOperatingRangeType(param.getInteger("operatingRangeType"));
-        request.setContact(param.getString("contact").trim());
-        request.setTel(param.getString("tel").trim());
-        request.setEmergencyContact(param.getString("emergencyContact").trim());
-        request.setEmergencyTel(param.getString("emergencyTel").trim());
-        request.setBuyerName(param.getString("buyerName").trim());
-        request.setBuyerTaxpayerCode(param.getString("buyerTaxpayerCode").trim());
-        request.setBuyerAddr(param.getString("buyerAddr").trim());
-        request.setBuyerTel(param.getString("buyerTel").trim());
-        request.setBuyerBank(param.getString("buyerBank").trim());
-        request.setBuyerBankAccount(param.getString("buyerBankAccount").trim());
-        String fileName = request.getFilename();
-
         try {
+            CompanyAddDto dto = JSON.toJavaObject(param, CompanyAddDto.class);
+            validate(dto);
+
+            CompanyAddRequest request = new CompanyAddRequest();
+            request.setName(dto.getName());
+            request.setCompanyType(dto.getCompanyType());
+            request.setTaxpayerCode(dto.getBuyerTaxpayerCode());
+            request.setOperatingRangeType(dto.getOperatingRangeType());
+            request.setContact(dto.getContact());
+            request.setTel(dto.getTel());
+            request.setEmergencyContact(dto.getEmergencyContact());
+            request.setEmergencyTel(dto.getEmergencyTel());
+            request.setBuyerName(dto.getBuyerName());
+            request.setBuyerTaxpayerCode(dto.getBuyerTaxpayerCode());
+            request.setBuyerAddr(dto.getBuyerAddr());
+            request.setBuyerTel(dto.getBuyerTel());
+            request.setBuyerBank(dto.getBuyerBank());
+            request.setBuyerBankAccount(dto.getBuyerBankAccount());
+            String fileName = request.getFilename();
+
             // 调用upload 发送数据
             CompanyAddResponse response = ETCCommHelper.upload(fileName, request, CompanyAddResponse.class);
 
             result = response.toJson();
             long costTimeEnd = System.currentTimeMillis();
-            log.info("[-queryAdd-] result is " + result.replaceAll("\r|\n", "") + " , request is "
+            log.info("[-companyAdd-] result is " + result.replaceAll("\r|\n", "") + " , request is "
                     + param + ",costtime=" + (costTimeEnd - costTimeStart) + ",startTime=" + costTimeStart
                     + ",endTime=" + costTimeEnd);
         } catch (IOException e) {
-            log.error("[-queryAdd-] 网络异常 " + e);
-            throw new ServiceException(CommonConstant.QUERY_FAILED);
-        } catch (Exception apie) {
-            log.error("[-queryAdd-] 错误信息:" + apie.getMessage());
+            log.error("[-companyAdd-] 网络异常 " + e);
             throw new ServiceException(CommonConstant.QUERY_FAILED);
+        } catch (ApiRequestException apie) {
+            log.error("[-companyAdd-] 错误信息:" + apie.getMessage());
+            throw new ApiRequestException(apie.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+        } catch (ServiceException se) {
+            log.error("[-companyAdd-] 错误信息:" + se.getMessage());
+            throw new ServiceException(se.getMessage());
         }
         return analyzeApiResult(result);
     }

+ 3 - 1
src/main/java/com/jkcredit/invoice/hub/service/apiUser/ApiUserService.java

@@ -1,5 +1,7 @@
 package com.jkcredit.invoice.hub.service.apiUser;
 
+import com.jkcredit.invoice.hub.spi.rest.data.ApiRequestParam;
+
 /**
  * @description: 接口用户信息验证
  * @author: xusonglin
@@ -7,5 +9,5 @@ package com.jkcredit.invoice.hub.service.apiUser;
  * @version: V1.0
  **/
 public interface ApiUserService {
-    Integer validateUser(String appKey, String appSecret, String api);
+    Integer validateUser(ApiRequestParam param);
 }

+ 11 - 4
src/main/java/com/jkcredit/invoice/hub/service/apiUser/ApiUserServiceImpl.java

@@ -1,11 +1,14 @@
 package com.jkcredit.invoice.hub.service.apiUser;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
 import com.jkcredit.invoice.hub.model.po.user.UserPo;
 import com.jkcredit.invoice.hub.service.base.BaseService;
 import com.jkcredit.invoice.hub.service.user.UserService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
+import com.jkcredit.invoice.hub.spi.rest.data.ApiRequestParam;
 import com.jkcredit.invoice.hub.util.CommonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,18 +28,22 @@ public class ApiUserServiceImpl extends BaseService implements ApiUserService {
     UserService userService;
 
     @Override
-    public Integer validateUser(String appKey, String appSecret, String api) {
+    public Integer validateUser(ApiRequestParam param) {
         // 无效用户
-        UserPo userPo = userService.getUserByAppKey(appKey);
+        UserPo userPo = userService.getUserByAppKey(param.getAppKey());
+
         if (userPo == null) {
             return ApiResponseCodeEnum.CODE_1000.getValue();
-        } else if (!userPo.getAppSecret().equals(appSecret)) {
+        } else if (!userPo.getAppSecret().equals(param.getAppSecret())) {
             return ApiResponseCodeEnum.CODE_1000.getValue();
-        } else if (!ArrayUtils.contains(CommonConstant.CAR_FREE_API_ARGS, api)) {
+        } else if (!ArrayUtils.contains(CommonConstant.CAR_FREE_API_ARGS, param.getApi())) {
             return ApiResponseCodeEnum.CODE_1080.getValue();
         } else if (CommonUtil.parseDouble(userPo.getBalance()) / CommonUtil.parseDouble(userPo.getPrice()) < CommonUtil.parseDouble(userPo.getPrice())) {
             return ApiResponseCodeEnum.CODE_1090.getValue();
         } else {
+            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(param.getData()));
+            jsonObject.put("userId", userPo.getId());
+            param.setData(jsonObject);
             return ApiResponseCodeEnum.CODE_200.getValue();
         }
     }

+ 1 - 4
src/main/java/com/jkcredit/invoice/hub/service/base/BaseService.java

@@ -5,14 +5,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.baidu.unbiz.fluentvalidator.FluentValidator;
 import com.baidu.unbiz.fluentvalidator.Result;
 import com.baidu.unbiz.fluentvalidator.jsr303.HibernateSupportedValidator;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
 import lombok.extern.slf4j.Slf4j;
-import org.hibernate.service.spi.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import javax.validation.Validator;

+ 13 - 0
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillEnd/CarFreeCarrierBillEndService.java

@@ -0,0 +1,13 @@
+package com.jkcredit.invoice.hub.service.carFreeCarrierBillEnd;
+
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 16:15
+ * @version: V1.0
+ **/
+public interface CarFreeCarrierBillEndService {
+    void saveBillEnd(CarFreeCarrierBillEndDto dto);
+}

+ 40 - 0
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillEnd/CarFreeCarrierBillEndServiceImpl.java

@@ -0,0 +1,40 @@
+package com.jkcredit.invoice.hub.service.carFreeCarrierBillEnd;
+
+import com.jkcredit.invoice.hub.mapper.CarFreeCarrierBillEndMapper;
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillEnd.CarFreeCarrierBillEndPo;
+import com.jkcredit.invoice.hub.service.base.BaseService;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
+import com.jkcredit.invoice.hub.util.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/17 16:15
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+public class CarFreeCarrierBillEndServiceImpl extends BaseService implements CarFreeCarrierBillEndService {
+    @Resource
+    CarFreeCarrierBillEndMapper mapper;
+
+    @Override
+    public void saveBillEnd(CarFreeCarrierBillEndDto dto) {
+        try {
+            validate(dto);
+            CarFreeCarrierBillEndPo po = new CarFreeCarrierBillEndPo();
+            BeanUtil.copyProperties(po, dto);
+            po.setCreateTime(new Date());
+            mapper.insert(po);
+        } catch (Exception e) {
+            log.error("新增运单结束指令数据失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("新增运单开始指令数据失败");
+        }
+    }
+}

+ 4 - 0
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartService.java

@@ -1,6 +1,8 @@
 package com.jkcredit.invoice.hub.service.carFreeCarrierBillStart;
 
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrierBillStartDto;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo;
 
 /**
  * @description:
@@ -10,4 +12,6 @@ import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrier
  **/
 public interface CarFreeCarrierBillStartService {
     void saveBillStart(CarFreeCarrierBillStartDto dto);
+
+    void updateBillStartStatus(String num, Integer status);
 }

+ 41 - 1
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartServiceImpl.java

@@ -1,10 +1,18 @@
 package com.jkcredit.invoice.hub.service.carFreeCarrierBillStart;
 
+import com.jkcredit.invoice.hub.mapper.CarFreeCarrierBillStartMapper;
+import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrierBillStartDto;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo;
 import com.jkcredit.invoice.hub.service.base.BaseService;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
+import com.jkcredit.invoice.hub.util.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Date;
+
 /**
  * @description:
  * @author: xusonglin
@@ -14,8 +22,40 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @Service
 public class CarFreeCarrierBillStartServiceImpl extends BaseService implements CarFreeCarrierBillStartService {
+    @Resource
+    CarFreeCarrierBillStartMapper mapper;
     @Override
     public void saveBillStart(CarFreeCarrierBillStartDto dto) {
-        // todo
+        try {
+            validate(dto);
+            CarFreeCarrierBillStartPo po = new CarFreeCarrierBillStartPo();
+            BeanUtil.copyProperties(po, dto);
+            po.setCreateTime(new Date());
+            mapper.insert(po);
+        } catch (Exception e) {
+            log.error("新增运单开始指令数据失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("新增运单开始指令数据失败");
+        }
+    }
+
+    @Override
+    public void updateBillStartStatus(String num, Integer status) {
+        CarFreeCarrierBillStartPo po;
+        try {
+            po = mapper.getBillStartByNum(num);
+            if (po == null) {
+                log.error("运单开始指令不存在,运单编号为:{}", num);
+                throw new ServiceException(num + "运单开始指令不存在");
+            } else {
+                po.setStatus(status);
+                po.setUpdateTime(new Date());
+                mapper.updateById(po);
+            }
+        } catch (Exception e) {
+            log.error("运单开始指令更新状态失败,运单编号为:{},状态为:{}", num, status);
+            throw new ServiceException(num + "运单开始指令更新状态失败");
+        }
+
+
     }
 }

+ 28 - 0
src/main/resources/mapper/CarFreeCarrierBillStartMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jkcredit.invoice.hub.mapper.CarFreeCarrierBillStartMapper">
+    <resultMap id="baseResultMap"
+               type="com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo">
+        <id column="id" property="id"/>
+        <result column="plate_color" property="plateColor"/>
+        <result column="plate_number" property="plateNumber"/>
+        <result column="num" property="num"/>
+        <result column="start_time" property="startTime"/>
+        <result column="source_addr" property="sourceAddr"/>
+        <result column="dest_addr" property="destAddr"/>
+        <result column="predict_end_time" property="predictEndTime"/>
+        <result column="fee" property="fee"/>
+        <result column="title_type" property="titleType"/>
+        <result column="tax_player_code" property="taxPlayerCode"/>
+        <result column="user_id" property="userId"/>
+        <result column="create_time" property="createTime"/>
+        <result column="status" property="status"/>
+        <result column="is_history" property="isHistory"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="activated" property="activated"/>
+    </resultMap>
+
+    <select id="getBillStartByNum" resultMap="baseResultMap">
+        select * from h_car_free_carrier_bill_start where activated = 1 and num = #{num}
+    </select>
+</mapper>