Browse Source

向tms传输司机授权书

njs 1 year ago
parent
commit
4c04e9dffa
20 changed files with 631 additions and 43 deletions
  1. 5 1
      pom.xml
  2. 4 0
      suishenbang-admin/src/main/resources/application-dev.yml
  3. 6 0
      suishenbang-admin/src/main/resources/application-prod.yml
  4. 5 0
      suishenbang-admin/src/main/resources/application-test.yml
  5. 5 0
      suishenbang-admin/src/main/resources/application-uat.yml
  6. 5 0
      suishenbang-api/src/main/resources/application-dev.yml
  7. 5 0
      suishenbang-api/src/main/resources/application-prod.yml
  8. 4 0
      suishenbang-api/src/main/resources/application-test.yml
  9. 5 0
      suishenbang-api/src/main/resources/application-uat.yml
  10. 8 1
      suishenbang-api/src/test/java/test/MyTest.java
  11. 84 0
      suishenbang-common/src/main/java/com/dgtly/common/utils/http/HttpUtils.java
  12. 108 0
      suishenbang-system/src/main/java/com/dgtly/system/domain/TransferLog.java
  13. 61 0
      suishenbang-system/src/main/java/com/dgtly/system/mapper/TransferLogMapper.java
  14. 61 0
      suishenbang-system/src/main/java/com/dgtly/system/service/ITransferLogService.java
  15. 97 0
      suishenbang-system/src/main/java/com/dgtly/system/service/impl/TransferLogServiceImpl.java
  16. 93 0
      suishenbang-system/src/main/resources/mapper/system/TransferLogMapper.xml
  17. 10 17
      suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/EsignController.java
  18. 5 1
      suishenbang-wxportal/suishenbang-wxportal-common/pom.xml
  19. 4 1
      suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/IEsignSignService.java
  20. 56 22
      suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/EsignSignServiceImpl.java

+ 5 - 1
pom.xml

@@ -83,7 +83,11 @@
 				<artifactId>shiro-ehcache</artifactId>
 				<version>${shiro.version}</version>
 			</dependency>
-	
+			<dependency>
+				<groupId>cn.hutool</groupId>
+				<artifactId>hutool-all</artifactId>
+				<version>5.3.5</version>
+			</dependency>
 			<!-- thymeleaf模板引擎和shiro框架的整合 -->
 			<dependency>
 				<groupId>com.github.theborakompanioni</groupId>

+ 4 - 0
suishenbang-admin/src/main/resources/application-dev.yml

@@ -95,6 +95,10 @@ spring:
     restart:
       # 热部署开关
       enabled: true
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 6 - 0
suishenbang-admin/src/main/resources/application-prod.yml

@@ -93,6 +93,12 @@ spring:
     restart:
       # 热部署开关
       enabled: true
+
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 5 - 0
suishenbang-admin/src/main/resources/application-test.yml

@@ -72,6 +72,11 @@ spring:
   profiles:
     include: test-druid
 
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 5 - 0
suishenbang-admin/src/main/resources/application-uat.yml

@@ -89,6 +89,11 @@ spring:
        # 设置总上传的文件大小
        max-request-size:  20MB
        location: /data/upload_tmp
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 5 - 0
suishenbang-api/src/main/resources/application-dev.yml

@@ -94,6 +94,11 @@ spring:
           max-idle: 8
           # 连接池中的最小空闲连接
           min-idle: 0
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+    suishenbang: http://suishenbangtest.nipponpaint.com.cn/oneportal
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 5 - 0
suishenbang-api/src/main/resources/application-prod.yml

@@ -69,6 +69,11 @@ spring:
     restart:
       # 热部署开关
       enabled: true
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lb.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+    suishenbang: http://suishenbang.nipponpaint.com.cn/oneportal
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 4 - 0
suishenbang-api/src/main/resources/application-test.yml

@@ -69,6 +69,10 @@ spring:
     restart:
       # 热部署开关
       enabled: true
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 5 - 0
suishenbang-api/src/main/resources/application-uat.yml

@@ -70,6 +70,11 @@ spring:
       # 热部署开关
       enabled: true
 
+  tms:
+    #TMS接口地址
+    tmsUrl: https://lbtest.lutms.com/wuliu/apissbzt/ssb_update_authFile.do
+    tmsToken: EZS2020
+    suishenbang: http://suishenbangtest.nipponpaint.com.cn/oneportal
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 8 - 1
suishenbang-api/src/test/java/test/MyTest.java

@@ -1,4 +1,4 @@
-/**package test;
+package test;
 
 
 import com.dgtly.ApiApplication;
@@ -39,8 +39,15 @@ public class MyTest {
     private ISysUserService userService;
     @Autowired
     private SysUserServiceImpl sysUserService;
+    @Autowired IEsignSignService esignSignService;
+
     @Test
     public void test() throws Exception {
+       String certificateUrl="/profile/pdf/2023/04/13/0584202872.pdf";
+        String orders="6107665807";
+        esignSignService.tmsCertificate(orders, certificateUrl);
+    }
+}
       /*  Set<String> s = new LinkedHashSet<>();
         s.add("0110065150");
         s.add("0110017419");

+ 84 - 0
suishenbang-common/src/main/java/com/dgtly/common/utils/http/HttpUtils.java

@@ -187,6 +187,90 @@ public class HttpUtils
         return result.toString();
     }
 
+
+    /**
+     * 向指定 URL 发送POST方法的请求
+     *
+     * @param url 发送请求的 URL
+     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendTmsPost(String url, String param,Long ts,String sign)
+    {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        StringBuilder result = new StringBuilder();
+        try
+        {
+            String urlNameString = url + "?" + param;
+            log.info("sendPost - {}", urlNameString);
+            URL realUrl = new URL(urlNameString);
+
+            URLConnection conn = realUrl.openConnection();
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("contentType", "utf-8");
+            conn.setRequestProperty("ts", ts.toString());
+            conn.setRequestProperty("sign", sign);
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            out = new PrintWriter(conn.getOutputStream());
+            out.print(param);
+            out.flush();
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
+            String line;
+            while ((line = in.readLine()) != null)
+            {
+                result.append(line);
+            }
+            log.info("recv - {}", result);
+        }
+        catch (ConnectException e)
+        {
+            log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
+
+            throw new BusinessException("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param );
+        }
+        catch (SocketTimeoutException e)
+        {
+            log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+            throw new BusinessException("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param );
+
+        }
+        catch (IOException e)
+        {
+            log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
+            throw new BusinessException("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param );
+        }
+        catch (Exception e)
+        {
+            log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
+            throw new BusinessException("调用HttpUtils.sendPost Exception, url=" + url + ",param=" + param );
+        }
+        finally
+        {
+            try
+            {
+                if (out != null)
+                {
+                    out.close();
+                }
+                if (in != null)
+                {
+                    in.close();
+                }
+            }
+            catch (IOException ex)
+            {
+                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+            }
+        }
+        return result.toString();
+    }
+
+
     /**
      * 向指定 URL 发送POST方法的请求
      *

+ 108 - 0
suishenbang-system/src/main/java/com/dgtly/system/domain/TransferLog.java

@@ -0,0 +1,108 @@
+package com.dgtly.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.dgtly.common.annotation.Excel;
+import com.dgtly.common.core.domain.BaseEntity;
+
+/**
+ * 信息传输日志记录对象 transfer_log
+ * 
+ * @author njs
+ * @date 2023-04-12
+ */
+public class TransferLog extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 日志id */
+    @Excel(name = "日志id")
+    private Long logId;
+
+    /** 是否删除 */
+    private String delFlag;
+
+    /** 交货单号 */
+    @Excel(name = "交货单号")
+    private String deliveryNumber;
+
+    /** 签署文档 */
+    @Excel(name = "签署文档")
+    private String authFile;
+
+    /** 是否传输成功0成功 */
+    @Excel(name = "是否传输成功0成功")
+    private String codeing;
+
+    //备注
+    private String remarks;
+
+    public void setLogId(Long logId) 
+    {
+        this.logId = logId;
+    }
+
+    public Long getLogId() 
+    {
+        return logId;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+    public void setDeliveryNumber(String deliveryNumber) 
+    {
+        this.deliveryNumber = deliveryNumber;
+    }
+
+    public String getDeliveryNumber() 
+    {
+        return deliveryNumber;
+    }
+    public void setAuthFile(String authFile) 
+    {
+        this.authFile = authFile;
+    }
+
+    public String getAuthFile() 
+    {
+        return authFile;
+    }
+    public void setCodeing(String codeing)
+    {
+        this.codeing = codeing;
+    }
+
+    public String getCodeing()
+    {
+        return codeing;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("logId", getLogId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("deliveryNumber", getDeliveryNumber())
+            .append("authFile", getAuthFile())
+            .append("codeing", getCodeing())
+            .toString();
+    }
+}

+ 61 - 0
suishenbang-system/src/main/java/com/dgtly/system/mapper/TransferLogMapper.java

@@ -0,0 +1,61 @@
+package com.dgtly.system.mapper;
+
+import com.dgtly.system.domain.TransferLog;
+import java.util.List;
+
+/**
+ * 信息传输日志记录Mapper接口
+ * 
+ * @author njs
+ * @date 2023-04-12
+ */
+public interface TransferLogMapper 
+{
+    /**
+     * 查询信息传输日志记录
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 信息传输日志记录
+     */
+    public TransferLog selectTransferLogById(Long logId);
+
+    /**
+     * 查询信息传输日志记录列表
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 信息传输日志记录集合
+     */
+    public List<TransferLog> selectTransferLogList(TransferLog transferLog);
+
+    /**
+     * 新增信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    public int insertTransferLog(TransferLog transferLog);
+
+    /**
+     * 修改信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    public int updateTransferLog(TransferLog transferLog);
+
+    /**
+     * 删除信息传输日志记录
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 结果
+     */
+    public int deleteTransferLogById(Long logId);
+
+    /**
+     * 批量删除信息传输日志记录
+     * 
+     * @param logIds 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTransferLogByIds(String[] logIds);
+}

+ 61 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/ITransferLogService.java

@@ -0,0 +1,61 @@
+package com.dgtly.system.service;
+
+import com.dgtly.system.domain.TransferLog;
+import java.util.List;
+
+/**
+ * 信息传输日志记录Service接口
+ * 
+ * @author njs
+ * @date 2023-04-12
+ */
+public interface ITransferLogService 
+{
+    /**
+     * 查询信息传输日志记录
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 信息传输日志记录
+     */
+    public TransferLog selectTransferLogById(Long logId);
+
+    /**
+     * 查询信息传输日志记录列表
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 信息传输日志记录集合
+     */
+    public List<TransferLog> selectTransferLogList(TransferLog transferLog);
+
+    /**
+     * 新增信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    public int insertTransferLog(TransferLog transferLog);
+
+    /**
+     * 修改信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    public int updateTransferLog(TransferLog transferLog);
+
+    /**
+     * 批量删除信息传输日志记录
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTransferLogByIds(String ids);
+
+    /**
+     * 删除信息传输日志记录信息
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 结果
+     */
+    public int deleteTransferLogById(Long logId);
+}

+ 97 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/impl/TransferLogServiceImpl.java

@@ -0,0 +1,97 @@
+package com.dgtly.system.service.impl;
+
+import java.util.List;
+import com.dgtly.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.dgtly.system.mapper.TransferLogMapper;
+import com.dgtly.system.domain.TransferLog;
+import com.dgtly.system.service.ITransferLogService;
+import com.dgtly.common.core.text.Convert;
+
+/**
+ * 信息传输日志记录Service业务层处理
+ * 
+ * @author njs
+ * @date 2023-04-12
+ */
+@Service
+public class TransferLogServiceImpl implements ITransferLogService 
+{
+    @Autowired
+    private TransferLogMapper transferLogMapper;
+
+    /**
+     * 查询信息传输日志记录
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 信息传输日志记录
+     */
+    @Override
+    public TransferLog selectTransferLogById(Long logId)
+    {
+        return transferLogMapper.selectTransferLogById(logId);
+    }
+
+    /**
+     * 查询信息传输日志记录列表
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 信息传输日志记录
+     */
+    @Override
+    public List<TransferLog> selectTransferLogList(TransferLog transferLog)
+    {
+        return transferLogMapper.selectTransferLogList(transferLog);
+    }
+
+    /**
+     * 新增信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    @Override
+    public int insertTransferLog(TransferLog transferLog)
+    {
+        transferLog.setCreateTime(DateUtils.getNowDate());
+        return transferLogMapper.insertTransferLog(transferLog);
+    }
+
+    /**
+     * 修改信息传输日志记录
+     * 
+     * @param transferLog 信息传输日志记录
+     * @return 结果
+     */
+    @Override
+    public int updateTransferLog(TransferLog transferLog)
+    {
+        transferLog.setUpdateTime(DateUtils.getNowDate());
+        return transferLogMapper.updateTransferLog(transferLog);
+    }
+
+    /**
+     * 删除信息传输日志记录对象
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTransferLogByIds(String ids)
+    {
+        return transferLogMapper.deleteTransferLogByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除信息传输日志记录信息
+     * 
+     * @param logId 信息传输日志记录ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTransferLogById(Long logId)
+    {
+        return transferLogMapper.deleteTransferLogById(logId);
+    }
+}

+ 93 - 0
suishenbang-system/src/main/resources/mapper/system/TransferLogMapper.xml

@@ -0,0 +1,93 @@
+<?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.dgtly.system.mapper.TransferLogMapper">
+    
+    <resultMap type="TransferLog" id="TransferLogResult">
+        <result property="logId"    column="log_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="deliveryNumber"    column="delivery_number"    />
+        <result property="authFile"    column="auth_file"    />
+        <result property="codeing"    column="codeing"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTransferLogVo">
+        select log_id, create_by,remarks, create_time, update_by, update_time, del_flag, delivery_number, auth_file, codeing from transfer_log
+    </sql>
+
+    <select id="selectTransferLogList" parameterType="TransferLog" resultMap="TransferLogResult">
+        <include refid="selectTransferLogVo"/>
+        <where>  
+            <if test="deliveryNumber != null  and deliveryNumber != ''"> and delivery_number = #{deliveryNumber}</if>
+            <if test="authFile != null  and authFile != ''"> and auth_file = #{authFile}</if>
+            <if test="codeing != null  and codeing != ''"> and codeing = #{codeing}</if>
+        </where>
+    </select>
+    
+    <select id="selectTransferLogById" parameterType="Long" resultMap="TransferLogResult">
+        <include refid="selectTransferLogVo"/>
+        where log_id = #{logId}
+    </select>
+        
+    <insert id="insertTransferLog" parameterType="TransferLog">
+        insert into transfer_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="logId != null ">log_id,</if>
+            <if test="createBy != null  and createBy != ''">create_by,</if>
+            <if test="createTime != null ">create_time,</if>
+            <if test="updateBy != null  and updateBy != ''">update_by,</if>
+            <if test="updateTime != null ">update_time,</if>
+            <if test="delFlag != null  and delFlag != ''">del_flag,</if>
+            <if test="deliveryNumber != null  and deliveryNumber != ''">delivery_number,</if>
+            <if test="authFile != null  and authFile != ''">auth_file,</if>
+            <if test="codeing != null  and codeing != ''">codeing,</if>
+            <if test="remarks != null  and remarks != ''">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="logId != null ">#{logId},</if>
+            <if test="createBy != null  and createBy != ''">#{createBy},</if>
+            <if test="createTime != null ">#{createTime},</if>
+            <if test="updateBy != null  and updateBy != ''">#{updateBy},</if>
+            <if test="updateTime != null ">#{updateTime},</if>
+            <if test="delFlag != null  and delFlag != ''">#{delFlag},</if>
+            <if test="deliveryNumber != null  and deliveryNumber != ''">#{deliveryNumber},</if>
+            <if test="authFile != null  and authFile != ''">#{authFile},</if>
+            <if test="codeing != null  and codeing != ''">#{codeing},</if>
+            <if test="remarks != null  and remarks != ''">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTransferLog" parameterType="TransferLog">
+        update transfer_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="createBy != null  and createBy != ''">create_by = #{createBy},</if>
+            <if test="createTime != null ">create_time = #{createTime},</if>
+            <if test="updateBy != null  and updateBy != ''">update_by = #{updateBy},</if>
+            <if test="updateTime != null ">update_time = #{updateTime},</if>
+            <if test="delFlag != null  and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="deliveryNumber != null  and deliveryNumber != ''">delivery_number = #{deliveryNumber},</if>
+            <if test="authFile != null  and authFile != ''">auth_file = #{authFile},</if>
+            <if test="codeing != null  and codeing != ''">codeing = #{codeing},</if>
+            <if test="remarks != null  and remarks != ''">remarks = #{remarks},</if>
+        </trim>
+        where log_id = #{logId}
+    </update>
+
+    <delete id="deleteTransferLogById" parameterType="Long">
+        delete from transfer_log where log_id = #{logId}
+    </delete>
+
+    <delete id="deleteTransferLogByIds" parameterType="String">
+        delete from transfer_log where log_id in 
+        <foreach item="logId" collection="array" open="(" separator="," close=")">
+            #{logId}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 10 - 17
suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/EsignController.java

@@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -259,14 +260,6 @@ public class EsignController extends ApiBaseController {
                 orderFile.setFlowId(flowId);
                 orderFileService.insertOrderFile(orderFile);
                 logger.info("保存授权签署附件");
-                //协议书url
-                OrderFile orderFlag = orderFileService.selectOrderFileByFlowId(flowId);
-                signService.saveFileFalse(flowId, orderFlag);
-                OrderFile File = new OrderFile();
-                    File.setFlowId(orderFlag.getFlowId());
-                    File.setCode("200");
-                    File.setMessage("success");
-                    orderFileService.updateOrderFileByFlowId(File);
                 File f = new File(fileModal.getFilePath());
                 f.delete();
             //}
@@ -384,7 +377,7 @@ public class EsignController extends ApiBaseController {
             @ApiImplicitParam(name = "params", paramType = "body")
     })
     @PostMapping("updateOrderFile")
-    public Object updateOrderFile() {
+    public Object updateOrderFile() throws IOException {
         ParameterObject obj = getParameterObject();
         String businessScence =obj.getString("businessScence");
         String signResult="";
@@ -396,26 +389,26 @@ public class EsignController extends ApiBaseController {
         }
         String flowId = obj.getString("flowId");
         OrderFile orderFlag = orderFileService.selectOrderFileByFlowId(flowId);
-
         if ("2".equals(signResult)) {
-            if(businessScence!=null && ("司机授权").equals(businessScence)){
-
-                signService.saveFileFalse(flowId, orderFlag);
-            }else {
-                /*异步保存文件*/
-                signService.saveFile(flowId, orderFlag);
-            }
+            /*异步保存文件*/
+            signService.saveFile(flowId, orderFlag);
             /*异步调用回调接口*/
             if(businessScence!=null &&!("司机授权").equals(businessScence)){
                 signService.callbackNotice(orderFlag);
+
             }else{
                 OrderFile orderFile = new OrderFile();
                 orderFile.setFlowId(orderFlag.getFlowId());
                 orderFile.setCode("200");
                 orderFile.setMessage("success");
                 orderFileService.updateOrderFileByFlowId(orderFile);
+                //1 司机授权
+                if(businessScence!=null && ("司机授权").equals(businessScence)){
+                    signService.tmsCertificate(orderFlag.getDeliveryNumber(),orderFlag.getFileUrl());
+                }
             }
 
+
 //            String fileUrl = signService.processDocumentDownload(flowId);
             /*下载保存签署后的文件,返回文件存储地址*/
 //            fileDownloadUtil.downloadFile(Global.getPdfPath(), orderFlag.getOrderId() + "_签收订单.pdf", fileUrl);

+ 5 - 1
suishenbang-wxportal/suishenbang-wxportal-common/pom.xml

@@ -27,7 +27,11 @@
             <artifactId>itextpdf</artifactId>
             <version>5.5.13</version>
         </dependency>
-
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.3.5</version>
+        </dependency>
         <dependency>
             <groupId>com.itextpdf</groupId>
             <artifactId>itext-asian</artifactId>

+ 4 - 1
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/IEsignSignService.java

@@ -2,6 +2,8 @@ package com.dgtly.wxportal.service;
 
 import com.dgtly.wxportal.domain.OrderFile;
 
+import java.io.IOException;
+
 /**
  * @description:签署服务API
  * @author:qxm
@@ -85,5 +87,6 @@ public interface IEsignSignService {
 
     void saveFile(String flowId, OrderFile orderFlag);
 
-    void saveFileFalse(String flowId, OrderFile orderFlag);
+    void tmsCertificate(String orders,String certificateUrl) throws IOException;
+
 }

+ 56 - 22
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/EsignSignServiceImpl.java

@@ -1,11 +1,18 @@
 package com.dgtly.wxportal.service.impl;
 
+
+import cn.hutool.crypto.digest.DigestAlgorithm;
+import cn.hutool.crypto.digest.Digester;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.dgtly.common.config.Global;
 import com.dgtly.common.constant.Constants;
 import com.dgtly.common.utils.DateUtils;
+import com.dgtly.common.utils.http.HttpUtils;
 import com.dgtly.system.domain.*;
+
+import com.dgtly.system.service.ITransferLogService;
 import com.dgtly.wxportal.config.ESignConfig;
 import com.dgtly.wxportal.domain.OrderFile;
 import com.dgtly.wxportal.service.IEsignSignService;
@@ -13,6 +20,7 @@ import com.dgtly.wxportal.service.IOrderFileService;
 import com.dgtly.wxportal.utils.ESign.ESignHttpUtil;
 import com.dgtly.wxportal.utils.ESign.ESignUrl;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,11 +30,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestClientException;
 import org.springframework.web.client.RestTemplate;
 
+
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * @description:签署服务API
@@ -51,6 +59,18 @@ public class EsignSignServiceImpl implements IEsignSignService {
     private String cloudPath;
     //完成收货回调
     private String confirmUrl="order/order/deliver-quantity-confirm/confirmCollect";
+    //E签宝签署完需返回给tms
+    @Value(value = "${spring.tms.tmsToken}")
+    private String tmsToken;
+    @Value(value = "${spring.tms.tmsUrl}")
+    private String tmsUrl;
+    @Value(value = "${spring.tms.suishenbang}")
+    private String suishenbang;
+
+
+
+    @Autowired
+    private ITransferLogService transferLogService;
 
     /**
      * @description: 授权
@@ -234,15 +254,16 @@ public class EsignSignServiceImpl implements IEsignSignService {
     public void saveFile(String flowId, OrderFile orderFlag) {
 //        System.out.println("executeAysncTask1 method: 执行异步保存{} -------"+ i);
         String fileUrl = processDocumentDownload(flowId);
+        String uId=UUID.randomUUID().toString();
         /*下载保存签署后的文件,返回文件存储地址*/
         OrderFile orderFile = new OrderFile();
         orderFile.setFlowId(flowId);
         if(orderFlag.getTypes()==1){
             downloadFile(Global.getPdfPath(), orderFlag.getOrderId() + ".pdf", fileUrl);
-            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getOrderId() + ".pdf");
+            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getOrderId()+uId + ".pdf");
         }else if( orderFlag.getTypes()==2){
             downloadFile(Global.getPdfPath(), orderFlag.getFlowId() + "_授权委托.pdf", fileUrl);
-            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getFlowId() + "_授权委托.pdf");
+            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getFlowId()+uId + "_授权委托.pdf");
         }else{
             downloadFile(Global.getPdfPath(), orderFlag.getOrderId() + "_签收订单.pdf", fileUrl);
             orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getOrderId() + "_签收订单.pdf");
@@ -251,28 +272,40 @@ public class EsignSignServiceImpl implements IEsignSignService {
 //        orderFile.setFileUrl(refile);
         orderFileService.updateOrderFileByFlowId(orderFile);
     }
-
+    /**
+     * @description: orders交货单
+     * @param: [orders, certificateUrl]
+     * @return: void
+     * @author: njs     
+     * @date: 2023/4/12 18:29
+     */
     @Override
-    public void saveFileFalse(String flowId, OrderFile orderFlag) {
-        String fileUrl = processDocumentDownload(flowId);
-        /*下载保存签署后的文件,返回文件存储地址*/
-        OrderFile orderFile = new OrderFile();
-        orderFile.setFlowId(flowId);
-        if(orderFlag.getTypes()==1){
-            downloadFile(Global.getPdfPath(), orderFlag.getOrderId() + ".pdf", fileUrl);
-            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getOrderId() + ".pdf");
-        }else if( orderFlag.getTypes()==2){
-            downloadFile(Global.getPdfPath(), orderFlag.getFlowId() + "_授权委托.pdf", fileUrl);
-            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getFlowId() + "_授权委托.pdf");
-        }else{
-            downloadFile(Global.getPdfPath(), orderFlag.getOrderId() + "_签收订单.pdf", fileUrl);
-            orderFile.setFileUrl(Constants.RESOURCE_PREFIX+"/pdf/"+DateUtils.datePath()+"/"+orderFlag.getOrderId() + "_签收订单.pdf");
+    public void tmsCertificate(String orders,String certificateUrl) throws IOException {
+        //        获取请求参数
+        String url = tmsUrl;
+        String token = tmsToken;
+        long ts = System.currentTimeMillis();
+        String sign = new Digester(DigestAlgorithm.MD5).digestHex(new Digester(DigestAlgorithm.SHA1).digestHex(StringUtils.join(token, ts)));
+//        发送请求
+        // name1=value1&name2=value2
+        String pj = "orders="+orders+"&authFile="+suishenbang+certificateUrl;
+        String jsonObject= HttpUtils.sendTmsPost(url,pj,ts,sign);
+        JSONObject object=JSONObject.parseObject(jsonObject);
+        log.info("Tms url = [{}], params = [{}], token = [{}]", url, pj, token);
+//        解析返回值
+        String code = object.getString("sys_code");
+        TransferLog transferLog = new TransferLog();
+        transferLog.setAuthFile(certificateUrl);
+        transferLog.setCodeing(code);
+        transferLog.setDeliveryNumber(orders);
+        transferLog.setRemarks("向TMS发送签署司机授权书");
+        transferLogService.insertTransferLog(transferLog);
+
+
 
-        }
-//        orderFile.setFileUrl(refile);
-        orderFileService.updateOrderFileByFlowId(orderFile);
     }
 
+
     /**
      * @description 模拟构建一步发起请求参数
      *              <p>
@@ -464,4 +497,5 @@ public class EsignSignServiceImpl implements IEsignSignService {
             }
         }
     }
+
 }