hxx 1 неделя назад
Родитель
Сommit
101943ec26

+ 35 - 14
mjava-hengyilong/src/main/java/com/malk/hengyilong/service/impl/EqbHylServiceImpl.java

@@ -49,7 +49,8 @@ public class EqbHylServiceImpl implements EqbHylService {
     @Value("${server.host}")
     private String serverHost;
 
-    private static String bjd_docTemplateId ="1d2f50e82f514144b72313b1dddcb552";
+    private static String bjdHYL_docTemplateId ="1d2f50e82f514144b72313b1dddcb552";
+    private static String bjdSH_docTemplateId ="e7440c3f38724b239d7e9dcf7329804a";
 
     private static String ht_docTemplateId ="d481b2222879447f84d992bac20784d0";
 
@@ -78,6 +79,7 @@ public class EqbHylServiceImpl implements EqbHylService {
                 case "quotation":
                     fileName = UtilMap.getString(formData, "textField_mn5mis1m");
                     getQuotation(formData, components, reqBodyObj, fileName);
+                    shouldExecutePost = true;
                     break;
                 case "contract":
                     String signStatus = UtilMap.getString(formData, "radioField_mkcbpvh8");
@@ -96,7 +98,7 @@ public class EqbHylServiceImpl implements EqbHylService {
             }
             Map fileResult = eqbPost("/v3/files/create-by-doc-template", reqBodyObj);
             String fileId = UtilMap.getString(fileResult,"fileId");
-            //文档转换pdf需时间--否则文档未成功转换成pdf
+//            文档转换pdf需时间--否则文档未成功转换成pdf
             try {
                 Thread.sleep(3000);
             } catch (InterruptedException e) {
@@ -244,16 +246,26 @@ public class EqbHylServiceImpl implements EqbHylService {
         List<Map> productDetail = new ArrayList<>();
         productDetail.add(getRowMap(false));
         for (int i = 0; i < productTable.size(); i++) {
-            String productName = productTable.get(i).containsKey("textField_mn5wpqov")?UtilMap.getString(productTable.get(i), "textField_mn5wpqov"):"";//产品名称
-            String productModel = productTable.get(i).containsKey("textField_mogxdk7x")?UtilMap.getString(productTable.get(i), "textField_mogxdk7x"):"";//产品型号
-            String productUnit = productTable.get(i).containsKey("textField_mogxdk7y")?UtilMap.getString(productTable.get(i), "textField_mogxdk7y"):"";//产品规格
+            String productType = productTable.get(i).containsKey("selectField_mq6g5d7h")?UtilMap.getString(productTable.get(i), "selectField_mq6g5d7h"):"";//产品类型
+            String productName = productTable.get(i).containsKey("textField_mq505rze")?UtilMap.getString(productTable.get(i), "textField_mq505rze"):"";//产品名称
+//            String productModel = productTable.get(i).containsKey("textField_mogxdk7x")?UtilMap.getString(productTable.get(i), "textField_mogxdk7x"):"";//产品型号--舍弃
+            String productSize = productTable.get(i).containsKey("textField_mogxdk7y")?UtilMap.getString(productTable.get(i), "textField_mogxdk7y"):"";//产品规格
             String productNum = productTable.get(i).containsKey("numberField_mkdl67qd")?UtilMap.getString(productTable.get(i), "numberField_mkdl67qd"):"";//数量
+            String productUnit = productTable.get(i).containsKey("numberField_mkdl67qd")?UtilMap.getString(productTable.get(i), "numberField_mkdl67qd"):"";//单位
             double productPrice = productTable.get(i).containsKey("numberField_mkdl67qe")?UtilMap.getDouble(productTable.get(i), "numberField_mkdl67qe"):0;//单价
-            String note = productTable.get(i).containsKey("textField_mjb71qaq")?UtilMap.getString(productTable.get(i), "textField_mjb71qaq"):"";//备注
-            if (i == 0){
-                productDetail.add(getRowMap(false,productName,productModel,productUnit,productNum,productPrice,note));
-            }else {
-                productDetail.add(getRowMap(true,productName,productModel,productUnit,productNum,productPrice,note));
+            String note = productTable.get(i).containsKey("textField_mkdl67qg")?UtilMap.getString(productTable.get(i), "textField_mkdl67qg"):"";//备注
+            if ("恒益隆贸易(上海)有限公司".equals(UtilMap.getString(formData, "selectField_mjmlcp4y"))) {
+                if (i == 0){
+                    productDetail.add(getRowMap(false,productType,productName,productSize,productNum,productUnit,productPrice,note));
+                }else {
+                    productDetail.add(getRowMap(true,productType,productName,productSize,productNum,productUnit,productPrice,note));
+                }
+            }else  if ("上海绍贺贸易有限公司".equals(UtilMap.getString(formData, "selectField_mjmlcp4y"))){
+                if (i == 0){
+                    productDetail.add(getRowMap(false,productName,productSize,productNum,productUnit,productPrice,note));
+                }else {
+                    productDetail.add(getRowMap(true,productName,productSize,productNum,productUnit,productPrice,note));
+                }
             }
         }
         Map productDetailMap = new HashMap();
@@ -274,7 +286,11 @@ public class EqbHylServiceImpl implements EqbHylService {
         components.add(company);
         components.add(companyEng);
         components.add(companySeal);
-        reqBodyObj.put("docTemplateId", bjd_docTemplateId);
+        if ("恒益隆贸易(上海)有限公司".equals(UtilMap.getString(formData, "selectField_mjmlcp4y"))) {
+            reqBodyObj.put("docTemplateId", bjdHYL_docTemplateId);
+        }else  if ("上海绍贺贸易有限公司".equals(UtilMap.getString(formData, "selectField_mjmlcp4y"))){
+            reqBodyObj.put("docTemplateId", bjdSH_docTemplateId);
+        }
         reqBodyObj.put("fileName", fileName+".pdf");
         reqBodyObj.put("components", components);
         }catch (Exception e){
@@ -304,6 +320,10 @@ public class EqbHylServiceImpl implements EqbHylService {
             Map supplier = new HashMap();
             supplier.put("componentKey", "supplier");
             supplier.put("componentValue", formData.containsKey("selectField_mjmlcp4y")?UtilMap.getString(formData, "selectField_mjmlcp4y"):"");
+            //送货地址
+            Map productAddress = new HashMap();
+            productAddress.put("componentKey", "productAddress");
+            productAddress.put("componentValue", formData.containsKey("textareaField_ml3g7xro")?UtilMap.getString(formData, "textareaField_ml3g7xro"):"");
 
             //需方
             Map buyer = new HashMap();
@@ -389,13 +409,13 @@ public class EqbHylServiceImpl implements EqbHylService {
             List<Map> productDetail = new ArrayList<>();
             productDetail.add(getRowMap(false));
             for (int i = 0; i < productTable.size(); i++) {
-                String productName = productTable.get(i).containsKey("textField_mkdlflks")?UtilMap.getString(productTable.get(i), "textField_mkdlflks"):"";//产品名称
+                String productName = productTable.get(i).containsKey("textField_mq505rze")?UtilMap.getString(productTable.get(i), "textField_mq505rze"):"";//产品名称
                 String productModel = productTable.get(i).containsKey("textField_mp5c1fkt")?UtilMap.getString(productTable.get(i), "textField_mp5c1fkt"):"";//规格型号
                 String productUnit = productTable.get(i).containsKey("textField_mp5c1fku")?UtilMap.getString(productTable.get(i), "textField_mp5c1fku"):"";//产品单位
                 String productNum = productTable.get(i).containsKey("numberField_mkdlflkt")?UtilMap.getString(productTable.get(i), "numberField_mkdlflkt"):"";//数量
                 double productPrice = productTable.get(i).containsKey("numberField_mkdlflku")?UtilMap.getDouble(productTable.get(i), "numberField_mkdlflku"):0;//单价
                 double productSum = productTable.get(i).containsKey("numberField_mkdlflkv")?UtilMap.getDouble(productTable.get(i), "numberField_mkdlflkv"):0;//金额小计
-                String note = productTable.get(i).containsKey("textField_mjb71qaq")?UtilMap.getString(productTable.get(i), "textField_mjb71qaq"):"";//备注
+                String note = productTable.get(i).containsKey("textField_mkdlflkw")?UtilMap.getString(productTable.get(i), "textField_mkdlflkw"):"";//备注
                 if (i == 0){
                     productDetail.add(getRowMap(false,productName,productModel,productUnit,productNum,productPrice,productSum,note));
                 }else{
@@ -403,7 +423,7 @@ public class EqbHylServiceImpl implements EqbHylService {
                 }
             }
             if (!productTable.isEmpty()) {
-                productDetail.add(getRowMap(true, "金额合计", "大写金额(人民币):",  UtilMap.getDouble(formData, "textField_mpandaox"), "", "", "小写(RMB):", UtilMap.getDouble(formData, "numberfield_WAUnrcAf")));
+                productDetail.add(getRowMap(true, "金额合计", "大写金额(人民币):",UtilMap.getString(formData, "textField_mpandaox"), "", "", "小写(RMB):", UtilMap.getDouble(formData, "numberfield_WAUnrcAf")));
             }
             Map productDetailMap = new HashMap();
             productDetailMap.put("componentKey", "productDetail");
@@ -412,6 +432,7 @@ public class EqbHylServiceImpl implements EqbHylService {
             components.add(companyTitle);
             components.add(companyEng);
             components.add(supplier);
+            components.add(productAddress);
             components.add(buyer);
             components.add(contractNo);
             components.add(signDate);

+ 1 - 1
mjava-hengyilong/src/test/java/com/malk/hengyilong/mjavahengyilong/MjavaHengyilongApplicationTests.java

@@ -32,7 +32,7 @@ class MjavaHengyilongApplicationTests {
 
     @Test
     void quotationToEqb(){
-//        McR mcR = eqbHylService.quotationToEqb(UtilMap.map("formInstance, type","65b19c02-6b53-455f-937e-73e9135c561d, contract"));
+//        McR mcR = eqbHylService.quotationToEqb(UtilMap.map("formInstance, type","5f1b8f91-2056-4fa4-a4de-2f1d9501c3c2, contract"));
     }
 
 }

+ 91 - 15
mjava-hengyilong/src/test/java/com/malk/hengyilong/mjavahengyilong/ToEqbTest.java

@@ -46,22 +46,24 @@ public class ToEqbTest {
         String appKey = "7e464621b3aa4a0e39a6557009b38214";
         // e签宝接口调用域名(正式环境)
         String host = "https://openapi.esign.cn";
-        //   报价单模板文件     fileId
-//        String fileId ="cacddedc33ff45cea8acd4e8a8f81ac4";
-        //     报价单模板文件   docTemplateId
-//        String docTemplateId ="1d2f50e82f514144b72313b1dddcb552";
-        //     报价单模板文件   filecontentMd5
-//        String filecontentMd5 ="nJsZC4SzKUudj0awHel4oQ==";
+//           报价单模板文件     fileId
+        String fileId ="cacddedc33ff45cea8acd4e8a8f81ac4";
+//             报价单模板文件   docTemplateId
+//        String docTemplateId ="1d2f50e82f514144b72313b1dddcb552";//恒益隆模板id
+        String docTemplateId ="e7440c3f38724b239d7e9dcf7329804a";//绍贺模板id
+
+//             报价单模板文件   filecontentMd5
+        String filecontentMd5 ="nJsZC4SzKUudj0awHel4oQ==";
 
        //   购销合同模板文件     fileId
-        String fileId ="c39361f5ca74466a81287f90e94f06c3";
-        //        购销合同模板文件docTemplateId
-//        0064564bea704fc587a249680064b98c
-//        0cc8c51361444dc7bd39385898893812
-//        0064564bea704fc587a249680064b98c
-        String docTemplateId ="d481b2222879447f84d992bac20784d0";
-        //     购销合同模板文件   filecontentMd5
-        String filecontentMd5 ="kPALmlC0o3nU8O6U1HuaxQ==";
+//        String fileId ="c39361f5ca74466a81287f90e94f06c3";
+//        //        购销合同模板文件docTemplateId
+////        0064564bea704fc587a249680064b98c
+////        0cc8c51361444dc7bd39385898893812
+////        0064564bea704fc587a249680064b98c
+//        String docTemplateId ="d481b2222879447f84d992bac20784d0";
+//        //     购销合同模板文件   filecontentMd5
+//        String filecontentMd5 ="kPALmlC0o3nU8O6U1HuaxQ==";
 
         //步骤1:上传本地文件并转成HTML格式
         //1.1获取文件上传地址
@@ -80,6 +82,8 @@ public class ToEqbTest {
 //        getDocTemplateEditUrl(appId,appKey,host,docTemplateId);
 //
 //
+//        复制合同模板
+//        copyDocTemplate(appId,appKey,host,docTemplateId,"报价单-绍贺");
 //        //获取 HTML 模板中控件ID和控件Key
 //        getDocTemplateInfo(appId,appKey,host,docTemplateId);
 //
@@ -87,7 +91,9 @@ public class ToEqbTest {
         //6.1填写模板生成文件
 //        createByDocTemplate(appId,appKey,host,docTemplateId);
 //        //6.2开发者使用【查询文件上传状态】接口获取填充后文件链接,通过此链接可查看填充后文件效果
-//        getFileInfo(appId,appKey,host,"a271121e3434431996e8a67fb1d8e61c");
+//        253a487cfc1c464190006e7b8532479f
+//b97b73a033a341129bf788281a064f43
+//        getFileInfo(appId,appKey,host,"be504ec0e51a4d61885a0339bc216561");
 
 
         //基于文件发起签署
@@ -474,6 +480,76 @@ public class ToEqbTest {
         }
     }
 
+    /***
+     * 复制合同模板页面
+     */
+    public static void copyDocTemplate(String appId, String appKey, String host,String docTemplateId,String renameDocTemplate) {
+        // 计算签名拼接的url
+        String postUrl = "/v3/doc-templates/" + docTemplateId + "/copy";
+        // 完整的请求地址
+        String postAllUrl = host + postUrl;
+
+
+        try {
+            // 构建请求Body体
+            JSONObject reqBodyObj = new JSONObject();
+            reqBodyObj.put("renameDocTemplate", renameDocTemplate);
+
+            // 请求Body体数据
+            String reqBodyData = reqBodyObj.toString();
+            // 对请求Body体内的数据计算ContentMD5
+            String contentMD5 = doContentMD5(reqBodyData);
+            System.out.println("请求body数据:"+reqBodyData);
+            System.out.println("body的md5值:"+ contentMD5);
+
+            // 构建待签名字符串
+            String method = "POST";
+            String accept = "*/*";
+            String contentType = "application/json";
+            String url = postUrl;
+            String date = "";
+            String headers = "";
+
+            StringBuffer sb = new StringBuffer();
+            sb.append(method).append("\n").append(accept).append("\n").append(contentMD5).append("\n")
+                    .append(contentType).append("\n").append(date).append("\n");
+            if ("".equals(headers)) {
+                sb.append(headers).append(url);
+            } else {
+                sb.append(headers).append("\n").append(url);
+            }
+
+            // 构建参与请求签名计算的明文
+            String plaintext = sb.toString();
+            // 计算请求签名值
+            String reqSignature = doSignatureBase64(plaintext, appKey);
+            System.out.println("计算请求签名值:"+reqSignature);
+
+            // 获取时间戳(精确到毫秒)
+            long timeStamp = timeStamp();
+
+            // 构建请求头
+            LinkedHashMap<String, String> header = new LinkedHashMap<String, String>();
+            header.put("X-Tsign-Open-App-Id", appId);
+            header.put("X-Tsign-Open-Auth-Mode", "Signature");
+            header.put("X-Tsign-Open-Ca-Timestamp", String.valueOf(timeStamp));
+            header.put("Accept", accept);
+            header.put("Content-Type", contentType);
+            header.put("X-Tsign-Open-Ca-Signature", reqSignature);
+            header.put("Content-MD5", contentMD5);
+
+            // 发送POST请求
+            String result = HTTPHelper.sendPOST(postAllUrl, reqBodyData, header, "UTF-8");
+            JSONObject resultObj = JSONObject.parseObject(result);
+            System.out.println("请求返回信息: " + resultObj.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            String msg = MessageFormat.format("请求签名鉴权方式调用接口出现异常: {0}", e.getMessage());
+            System.out.println(msg);
+        }
+    }
+
+
     /**
      * 查询合同模板中控件详情
      */