Browse Source

增加协议接口

xusonglin 5 years ago
parent
commit
fb6c81f9e1
21 changed files with 579 additions and 4 deletions
  1. 12 4
      pom.xml
  2. 3 0
      src/main/java/com/jkcredit/invoice/hub/constant/CommonConstant.java
  3. 40 0
      src/main/java/com/jkcredit/invoice/hub/controller/web/contract/ContractResource.java
  4. 41 0
      src/main/java/com/jkcredit/invoice/hub/controller/web/contract/fb/ContractFB.java
  5. 25 0
      src/main/java/com/jkcredit/invoice/hub/controller/web/contractQuery/ContractQueryResource.java
  6. 17 0
      src/main/java/com/jkcredit/invoice/hub/mapper/ContractMapper.java
  7. 13 0
      src/main/java/com/jkcredit/invoice/hub/mapper/ContractQueryMapper.java
  8. 24 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/contract/ContractDto.java
  9. 18 0
      src/main/java/com/jkcredit/invoice/hub/model/dto/contractQuery/ContractQueryDto.java
  10. 41 0
      src/main/java/com/jkcredit/invoice/hub/model/po/contract/ContractPo.java
  11. 44 0
      src/main/java/com/jkcredit/invoice/hub/model/po/contractQuery/ContractQueryPo.java
  12. 26 0
      src/main/java/com/jkcredit/invoice/hub/model/vo/contract/ContractVo.java
  13. 26 0
      src/main/java/com/jkcredit/invoice/hub/model/vo/contractQuery/ContractQueryVo.java
  14. 18 0
      src/main/java/com/jkcredit/invoice/hub/service/contract/ContractService.java
  15. 100 0
      src/main/java/com/jkcredit/invoice/hub/service/contract/ContractServiceImpl.java
  16. 14 0
      src/main/java/com/jkcredit/invoice/hub/service/contractQuery/ContractQueryService.java
  17. 64 0
      src/main/java/com/jkcredit/invoice/hub/service/contractQuery/ContractQueryServiceImpl.java
  18. BIN
      src/main/resources/lib/sdk-common-1.0.jar
  19. BIN
      src/main/resources/lib/sdk-waybill-protocol-1.3.4.jar
  20. 32 0
      src/main/resources/mapper/ContractMapper.xml
  21. 21 0
      src/main/resources/mapper/ContractQueryMapper.xml

+ 12 - 4
pom.xml

@@ -29,13 +29,14 @@
         <jackson.core.version>2.8</jackson.core.version>
         <jackson.core.version>2.8</jackson.core.version>
         <jackson.databind.version>2.8</jackson.databind.version>
         <jackson.databind.version>2.8</jackson.databind.version>
         <jackson.datatype.version>2.8</jackson.datatype.version>
         <jackson.datatype.version>2.8</jackson.datatype.version>
-        <sdk.common.version>1.0</sdk.common.version>
-        <waybill.protocol.version>1.3.4</waybill.protocol.version>
+        <sdk.common.version>1.1</sdk.common.version>
+        <waybill.protocol.version>1.3.5</waybill.protocol.version>
         <slf4j.api.version>1.7</slf4j.api.version>
         <slf4j.api.version>1.7</slf4j.api.version>
         <validation.api.version>1.1.0</validation.api.version>
         <validation.api.version>1.1.0</validation.api.version>
         <jsonwebtoken.version>0.9.0</jsonwebtoken.version>
         <jsonwebtoken.version>0.9.0</jsonwebtoken.version>
         <commons.beanutils.version>1.9.4</commons.beanutils.version>
         <commons.beanutils.version>1.9.4</commons.beanutils.version>
         <mybatis.starter.version>2.1.1</mybatis.starter.version>
         <mybatis.starter.version>2.1.1</mybatis.starter.version>
+        <sdk.b2b.protocol.version>1.5</sdk.b2b.protocol.version>
     </properties>
     </properties>
 
 
     <dependencies>
     <dependencies>
@@ -210,14 +211,14 @@
             <artifactId>etc-common</artifactId>
             <artifactId>etc-common</artifactId>
             <version>${sdk.common.version}</version>
             <version>${sdk.common.version}</version>
             <scope>system</scope>
             <scope>system</scope>
-            <systemPath>${project.basedir}/src/main/resources/lib/sdk-common-1.0.jar</systemPath>
+            <systemPath>${project.basedir}/src/main/resources/lib/sdk-common-1.1.jar</systemPath>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>sdk.waybill.protocol</groupId>
             <groupId>sdk.waybill.protocol</groupId>
             <artifactId>sdk-waybill-protocol</artifactId>
             <artifactId>sdk-waybill-protocol</artifactId>
             <version>${waybill.protocol.version}</version>
             <version>${waybill.protocol.version}</version>
             <scope>system</scope>
             <scope>system</scope>
-            <systemPath>${project.basedir}/src/main/resources/lib/sdk-waybill-protocol-1.3.4.jar</systemPath>
+            <systemPath>${project.basedir}/src/main/resources/lib/sdk-waybill-protocol-1.3.5.jar</systemPath>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>slf4j.api</groupId>
             <groupId>slf4j.api</groupId>
@@ -233,6 +234,13 @@
             <scope>system</scope>
             <scope>system</scope>
             <systemPath>${project.basedir}/src/main/resources/lib/validation-api-1.1.0.Final.jar</systemPath>
             <systemPath>${project.basedir}/src/main/resources/lib/validation-api-1.1.0.Final.jar</systemPath>
         </dependency>
         </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>sdk.b2b.protocol</groupId>-->
+        <!--            <artifactId>sdk-b2b-protocol</artifactId>-->
+        <!--            <version>${sdk.b2b.protocol.version}</version>-->
+        <!--            <scope>system</scope>-->
+        <!--            <systemPath>${project.basedir}/src/main/resources/lib/sdk-b2b-protocol-1.5.jar</systemPath>-->
+        <!--        </dependency>-->
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 3 - 0
src/main/java/com/jkcredit/invoice/hub/constant/CommonConstant.java

@@ -73,4 +73,7 @@ public class CommonConstant {
 
 
     // 计费队列
     // 计费队列
     public static final String CHARGE_QUEUE = "charge_queue";
     public static final String CHARGE_QUEUE = "charge_queue";
+
+    // 接口用户appKey
+    public static final String INVOICE_HUB_USER_APPKEY = "invoicehub:appkey:appsecret";
 }
 }

+ 40 - 0
src/main/java/com/jkcredit/invoice/hub/controller/web/contract/ContractResource.java

@@ -0,0 +1,40 @@
+package com.jkcredit.invoice.hub.controller.web.contract;
+
+import com.jkcredit.invoice.hub.controller.base.WebResource;
+import com.jkcredit.invoice.hub.controller.web.contract.fb.ContractFB;
+import com.jkcredit.invoice.hub.model.dto.contract.ContractDto;
+import com.jkcredit.invoice.hub.service.contract.ContractService;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
+import com.jkcredit.invoice.hub.spi.web.data.ResponseData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 11:39
+ * @version: V1.0
+ **/
+@RestController
+@Slf4j
+public class ContractResource extends WebResource {
+    @Autowired
+    ContractService contractService;
+
+    @PostMapping("/uploadContract")
+    @PreAuthorize("hasPermission('contract','upload')")
+    public ResponseData uploadContract(ContractFB contractFB) {
+        try {
+            validate(contractFB);
+            ContractDto contractDto = mapper.map(contractFB, ContractDto.class);
+            contractService.uploadContract(contractDto);
+            return ResponseData.success("上传协议成功");
+        } catch (ServiceException e) {
+            log.error(e.getMessage());
+            return ResponseData.failed("上传协议失败,失败原因" + e.getMessage());
+        }
+    }
+}

+ 41 - 0
src/main/java/com/jkcredit/invoice/hub/controller/web/contract/fb/ContractFB.java

@@ -0,0 +1,41 @@
+package com.jkcredit.invoice.hub.controller.web.contract.fb;
+
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 12:10
+ * @version: V1.0
+ **/
+@Data
+public class ContractFB implements Serializable {
+    private static final long serialVersionUID = 8604201983594731839L;
+    @NotNull(message = "公司名称不能为空")
+    @NotEmpty(message = "公司名称不能为空")
+    private String companyName;
+
+    @NotNull(message = "公司编号不能为空")
+    @NotEmpty(message = "公司编号不能为空")
+    private String companyNum;
+
+    @NotNull(message = "服务开始时间不能为空")
+    @NotEmpty(message = "服务开始时间不能为空")
+    private String serviceStartTime;
+
+    @NotNull(message = "服务等级不能为空")
+    private Integer serviceType;
+
+    @NotNull(message = "服务结束时间不能为空")
+    @NotEmpty(message = "服务结束时间不能为空")
+    private String serviceEndTime;
+
+    @NotNull(message = "协议文件不能为空")
+    private MultipartFile contract;
+}

+ 25 - 0
src/main/java/com/jkcredit/invoice/hub/controller/web/contractQuery/ContractQueryResource.java

@@ -0,0 +1,25 @@
+package com.jkcredit.invoice.hub.controller.web.contractQuery;
+
+import com.jkcredit.invoice.hub.controller.base.WebResource;
+import com.jkcredit.invoice.hub.service.contractQuery.ContractQueryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 16:31
+ * @version: V1.0
+ **/
+@RestController
+@Slf4j
+public class ContractQueryResource extends WebResource {
+    @Autowired
+    ContractQueryService contractQueryService;
+
+//    @PostMapping("/contractQuery")
+//    @PreAuthorize("hasPermission('contract','query')")
+}

+ 17 - 0
src/main/java/com/jkcredit/invoice/hub/mapper/ContractMapper.java

@@ -0,0 +1,17 @@
+package com.jkcredit.invoice.hub.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.model.dto.contract.ContractDto;
+import com.jkcredit.invoice.hub.model.po.contract.ContractPo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 10:00
+ * @version: V1.0
+ **/
+public interface ContractMapper extends BaseMapper<ContractPo> {
+    IPage<ContractPo> getContracts(Page page, ContractDto contractDto);
+}

+ 13 - 0
src/main/java/com/jkcredit/invoice/hub/mapper/ContractQueryMapper.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.contractQuery.ContractQueryPo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 10:01
+ * @version: V1.0
+ **/
+public interface ContractQueryMapper extends BaseMapper<ContractQueryPo> {
+}

+ 24 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/contract/ContractDto.java

@@ -0,0 +1,24 @@
+package com.jkcredit.invoice.hub.model.dto.contract;
+
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:54
+ * @version: V1.0
+ **/
+@Data
+public class ContractDto implements Serializable {
+    private static final long serialVersionUID = -3280544203414852006L;
+    private String companyName;
+    private String companyNum;
+    private String serviceStartTime;
+    private Integer serviceType;
+    private String serviceEndTime;
+    private String contractFileName;
+    private MultipartFile contract;
+}

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/contractQuery/ContractQueryDto.java

@@ -0,0 +1,18 @@
+package com.jkcredit.invoice.hub.model.dto.contractQuery;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:56
+ * @version: V1.0
+ **/
+@Data
+public class ContractQueryDto implements Serializable {
+    private static final long serialVersionUID = 767612563598367421L;
+    private String companyNum;
+    private String contractNum;
+}

+ 41 - 0
src/main/java/com/jkcredit/invoice/hub/model/po/contract/ContractPo.java

@@ -0,0 +1,41 @@
+package com.jkcredit.invoice.hub.model.po.contract;
+
+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/3/3 9:47
+ * @version: V1.0
+ **/
+@Entity
+@Data
+@ToString
+@TableName("h_contract")
+public class ContractPo implements Serializable {
+    private static final long serialVersionUID = 8794600846567944961L;
+
+    @Id
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private String companyName;
+    private String companyNum;
+    private String serviceStartTime;
+    private Integer serviceType;
+    private String serviceEndTime;
+    private String contractFileName;
+    private String base64Str;
+    private String contractNum;
+    private Integer activated;
+    private Date createTime;
+    private Date updateTime;
+}

+ 44 - 0
src/main/java/com/jkcredit/invoice/hub/model/po/contractQuery/ContractQueryPo.java

@@ -0,0 +1,44 @@
+package com.jkcredit.invoice.hub.model.po.contractQuery;
+
+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/3/3 9:51
+ * @version: V1.0
+ **/
+@Data
+@ToString
+@Entity
+@TableName("h_contract_query")
+public class ContractQueryPo implements Serializable {
+    private static final long serialVersionUID = -5116042264745644342L;
+
+    @Id
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private String companyNum;
+    private String contractNum;
+    private String authName;
+    private String companyName;
+    private String signTime;
+    private Integer serviceType;
+    private String cardServiceStartTime;
+    private String cardServiceEndTime;
+    private Integer auditStatus;
+    private String auditResult;
+    private String msg;
+    private Integer activated;
+    private Date createTime;
+    private Date updateTIme;
+}

+ 26 - 0
src/main/java/com/jkcredit/invoice/hub/model/vo/contract/ContractVo.java

@@ -0,0 +1,26 @@
+package com.jkcredit.invoice.hub.model.vo.contract;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:57
+ * @version: V1.0
+ **/
+@Data
+public class ContractVo implements Serializable {
+    private static final long serialVersionUID = -2923374799635423025L;
+    private String companyNum;
+    private String serviceStartTime;
+    private Integer serviceType;
+    private String serviceEndTime;
+    private String contractFileName;
+    private String base64Str;
+    private String contractNum;
+    private Date createTime;
+    private String companyName;
+}

+ 26 - 0
src/main/java/com/jkcredit/invoice/hub/model/vo/contractQuery/ContractQueryVo.java

@@ -0,0 +1,26 @@
+package com.jkcredit.invoice.hub.model.vo.contractQuery;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:59
+ * @version: V1.0
+ **/
+@Data
+public class ContractQueryVo implements Serializable {
+    private static final long serialVersionUID = -651984983657567213L;
+    private String companyNum;
+    private String contractNum;
+    private String authName;
+    private String companyName;
+    private String signTime;
+    private Integer serviceType;
+    private String cardServiceStartTime;
+    private String cardServiceEndTime;
+    private Integer auditStatus;
+    private String auditResult;
+}

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/service/contract/ContractService.java

@@ -0,0 +1,18 @@
+package com.jkcredit.invoice.hub.service.contract;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.model.dto.contract.ContractDto;
+import com.jkcredit.invoice.hub.model.vo.contract.ContractVo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:24
+ * @version: V1.0
+ **/
+public interface ContractService {
+    void uploadContract(ContractDto contractDto);
+
+    IPage<ContractVo> getContracts(Page page, ContractDto contractDto);
+}

+ 100 - 0
src/main/java/com/jkcredit/invoice/hub/service/contract/ContractServiceImpl.java

@@ -0,0 +1,100 @@
+package com.jkcredit.invoice.hub.service.contract;
+
+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.B2bContractAddRequest;
+import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractAddResponse;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+import com.jkcredit.invoice.hub.mapper.ContractMapper;
+import com.jkcredit.invoice.hub.model.dto.contract.ContractDto;
+import com.jkcredit.invoice.hub.model.po.contract.ContractPo;
+import com.jkcredit.invoice.hub.model.vo.contract.ContractVo;
+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 sun.misc.BASE64Encoder;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 9:24
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+public class ContractServiceImpl extends BaseService implements ContractService {
+    @Resource
+    ContractMapper contractMapper;
+
+    @Override
+    public void uploadContract(ContractDto contractDto) {
+        String filename = contractDto.getContract().getOriginalFilename();
+        String[] args = filename.split("\\.");
+        if (!args[args.length - 1].equals("pdf")) {
+            throw new ServiceException("协议转换失败");
+        }
+        // 参数设置
+        validate(contractDto);
+        B2bContractAddRequest request = new B2bContractAddRequest();
+        request.setCompanyNum(contractDto.getCompanyNum());
+        request.setServiceType(contractDto.getServiceType());
+        request.setServiceStartTime(contractDto.getServiceStartTime());
+        request.setServiceEndTime(contractDto.getServiceEndTime());
+        request.setContractFileName(filename);
+
+        BASE64Encoder base64Encoder = new BASE64Encoder();
+        String base64Str;
+        try {
+            base64Str = base64Encoder.encode(contractDto.getContract().getBytes());
+        } catch (IOException ioe) {
+            log.error("上传协议转base64失败,失败原因:{}", ioe.getMessage());
+            throw new ServiceException("协议转换失败");
+        }
+        String fileName = request.getFilename();
+
+        // 接口调用
+        B2bContractAddResponse response;
+        try {
+            // 调用upload 发送数据
+            response = ETCCommHelper.upload(fileName, request, B2bContractAddResponse.class);
+        } catch (IOException e) {
+            log.error("[-uploadContract-] 网络错误:" + e.getMessage());
+            throw new ServiceException("上传协议失败");
+        } catch (ApiRequestException apie) {
+            log.error("[-uploadContract-] 错误信息:" + apie.getMessage());
+            throw new ServiceException("上传协议失败,失败原因:" + apie.getMessage());
+        }
+        try {
+            ContractPo contractPo = new ContractPo();
+            BeanUtil.copyProperties(contractPo, contractDto);
+            contractPo.setBase64Str(base64Str);
+            contractPo.setCreateTime(new Date());
+            contractPo.setContractNum(response.getContrantNum());
+            contractMapper.insert(contractPo);
+        } catch (Exception e) {
+            log.error("上传协议失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("上传协议新增失败");
+        }
+    }
+
+    @Override
+    public IPage<ContractVo> getContracts(Page page, ContractDto contractDto) {
+        IPage<ContractPo> contractPoIPage = contractMapper.getContracts(page, contractDto);
+        return contractPoIPage.convert(this::convert);
+    }
+
+    private ContractVo convert(ContractPo po) {
+        ContractVo vo = new ContractVo();
+        BeanUtil.copyProperties(vo, po);
+        return vo;
+    }
+}

+ 14 - 0
src/main/java/com/jkcredit/invoice/hub/service/contractQuery/ContractQueryService.java

@@ -0,0 +1,14 @@
+package com.jkcredit.invoice.hub.service.contractQuery;
+
+import com.jkcredit.invoice.hub.model.dto.contractQuery.ContractQueryDto;
+import com.jkcredit.invoice.hub.model.vo.contractQuery.ContractQueryVo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 11:16
+ * @version: V1.0
+ **/
+public interface ContractQueryService {
+    ContractQueryVo queryContract(ContractQueryDto contractDto);
+}

+ 64 - 0
src/main/java/com/jkcredit/invoice/hub/service/contractQuery/ContractQueryServiceImpl.java

@@ -0,0 +1,64 @@
+package com.jkcredit.invoice.hub.service.contractQuery;
+
+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.B2bContractQueryRequest;
+import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractQueryResponse;
+import com.jkcredit.invoice.hub.mapper.ContractQueryMapper;
+import com.jkcredit.invoice.hub.model.dto.contractQuery.ContractQueryDto;
+import com.jkcredit.invoice.hub.model.po.contractQuery.ContractQueryPo;
+import com.jkcredit.invoice.hub.model.vo.contractQuery.ContractQueryVo;
+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.io.IOException;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/3 11:16
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+public class ContractQueryServiceImpl extends BaseService implements ContractQueryService {
+    @Resource
+    ContractQueryMapper mapper;
+
+    @Override
+    public ContractQueryVo queryContract(ContractQueryDto contractDto) {
+        validate(contractDto);
+        B2bContractQueryRequest request = new B2bContractQueryRequest();
+        request.setCompanyNum(contractDto.getCompanyNum());
+        request.setContractNum(contractDto.getContractNum());
+        String fileName = request.getFilename();
+
+        B2bContractQueryResponse response;
+        try {
+            response = ETCCommHelper.upload(fileName, request, B2bContractQueryResponse.class);
+        } catch (IOException e) {
+            log.error("[-queryContract-] 网络错误:" + e.getMessage());
+            throw new ServiceException("协议查询失败");
+        } catch (ApiRequestException apie) {
+            log.error("[-queryContract-] 错误信息:" + apie.getMessage());
+            throw new ServiceException("协议查询失败,失败原因:" + apie.getMessage());
+        }
+        try {
+            ContractQueryPo contractQueryPo = new ContractQueryPo();
+            BeanUtil.copyProperties(contractQueryPo, contractDto);
+            BeanUtil.copyProperties(contractQueryPo, response);
+            mapper.insert(contractQueryPo);
+
+            ContractQueryVo contractQueryVo = new ContractQueryVo();
+            BeanUtil.copyProperties(contractQueryVo, contractQueryPo);
+            return contractQueryVo;
+        } catch (Exception e) {
+            log.error("协议查询失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("协议查询失败");
+        }
+    }
+}

BIN
src/main/resources/lib/sdk-common-1.0.jar


BIN
src/main/resources/lib/sdk-waybill-protocol-1.3.4.jar


+ 32 - 0
src/main/resources/mapper/ContractMapper.xml

@@ -0,0 +1,32 @@
+<?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.ContractMapper">
+    <resultMap id="baseResultMap" type="com.jkcredit.invoice.hub.model.po.contract.ContractPo">
+        <id column="id" property="id"/>
+        <result column="company_num" property="companyNum"/>
+        <result column="service_start_time" property="serviceStartTime"/>
+        <result column="service_type" property="serviceType"/>
+        <result column="service_end_time" property="serviceEndTime"/>
+        <result column="contract_file_name" property="contractFileName"/>
+        <result column="base64_str" property="base64Str"/>
+        <result column="contract_num" property="contractNum"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="activated" property="activated"/>
+        <result column="company_name" property="companyName"/>
+    </resultMap>
+
+    <select id="getContracts" resultMap="baseResultMap">
+        select * from
+        h_contract contract
+        <where>
+            and contract.activated = 1
+            <if test="query.companyNum != null and query.companyNum != ''">
+                and contract.company_num = #{query.companyNum}
+            </if>
+            <if test="query.companyName != null and query.companyName != ''">
+                and contract.company_name = #{query.companyName}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 21 - 0
src/main/resources/mapper/ContractQueryMapper.xml

@@ -0,0 +1,21 @@
+<?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.ContractQueryMapper">
+    <resultMap id="baseResultMap" type="com.jkcredit.invoice.hub.model.po.contractQuery.ContractQueryPo">
+        <id column="id" property="id"/>
+        <result column="company_num" property="companyNum"/>
+        <result column="contract_num" property="contractNum"/>
+        <result column="auth_name" property="authName"/>
+        <result column="company_name" property="companyName"/>
+        <result column="sign_time" property="signTime"/>
+        <result column="service_type" property="serviceType"/>
+        <result column="card_service_start_time" property="cardServiceStartTime"/>
+        <result column="card_service_end_time" property="cardServiceEndTime"/>
+        <result column="audit_status" property="auditStatus"/>
+        <result column="audit_result" property="auditResult"/>
+        <result column="msg" property="msg"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="activated" property="activated"/>
+    </resultMap>
+</mapper>