2 次代码提交 97a94d634e ... ffd0fcadc1

作者 SHA1 备注 提交日期
  wzy ffd0fcadc1 博洋 1 周之前
  wzy d1a1939b52 金轮新增对账单接口 1 周之前

+ 5 - 0
mjava-boyang/src/main/java/com/malk/boyang/controller/BoyangController.java

@@ -63,6 +63,11 @@ public class BoyangController {
             log.info("info:{},重复回调,不做处理",info);
         }else {
             eventList.put(info, System.currentTimeMillis());
+            //签署开始回写签署详情地址
+            if ("SIGN_FLOW_START".equals(callBackDesc)) {
+                String signPreUrl = UtilMap.getString(callBackProcessVO, "signPreUrl");
+                boyangService.start(processInstanceId,signPreUrl);
+            }
             //签署完成回写审批单
             if ("SIGN_FLOW_FINISH".equals(callBackDesc)) {
                 boyangService.signed(processInstanceId,signFlowId);

+ 2 - 0
mjava-boyang/src/main/java/com/malk/boyang/service/BoyangService.java

@@ -12,4 +12,6 @@ public interface BoyangService {
     void signed(String processInstanceId,String signFlowId);
 
     McR getOrganization(String name);
+
+    void start(String processInstanceId, String signPreUrl);
 }

+ 20 - 5
mjava-boyang/src/main/java/com/malk/boyang/service/impl/BoyangServiceImpl.java

@@ -268,7 +268,7 @@ public class BoyangServiceImpl implements BoyangService {
             signer.put("signNode", 1);
             signer.put("signMode", "0");
             signer.put("signOrder", i + 1);
-//        signer.put("sealTypeCode", String.join(",",sealTypeCodeList));
+//            signer.put("sealTypeCode", String.join(",",sealTypeCodeList));
 
             signerInfos.add(signer);
         }
@@ -299,6 +299,9 @@ public class BoyangServiceImpl implements BoyangService {
     @Override
     public void signed(String processInstanceId,String signFlowId) {
         try {
+            Map result = ddClient_workflow.getProcessInstanceId(ddClient.getAccessToken(), processInstanceId);
+            String originatorUserId = UtilMap.getString(result, "originatorUserId");
+
             // 获取签署流程进度详情
             Map data = (Map) eqbGet(host + "/esign-signs/v1/signFlow/signDetail?signFlowId=" + signFlowId);
             List<Map> signFiles = UtilMap.getList(data, "signFiles");
@@ -323,12 +326,10 @@ public class BoyangServiceImpl implements BoyangService {
                 //todo 签署后文件上传到钉盘
                 Map dentry = uploadDdFile(spaceId, parentDentryUuid, downloadPath + signedFileName, operatorUnionId);
                 //todo 审批单添加评论
-                comment(processInstanceId,operator,"接口测试 "+ fileName + "已签署",Arrays.asList(dentry));
+                comment(processInstanceId,originatorUserId,"接口测试 "+ fileName + "已签署",Arrays.asList(dentry));
             }
         } catch (Exception e) {
-            e.printStackTrace();
-            String msg = MessageFormat.format("请求签名鉴权方式调用接口出现异常: {0}", e.getMessage());
-            System.out.println(msg);
+            throw new RuntimeException(e);
         }
     }
 
@@ -362,6 +363,20 @@ public class BoyangServiceImpl implements BoyangService {
         return McR.success(options);
     }
 
+    @Override
+    public void start(String processInstanceId, String signPreUrl) {
+        try {
+            Map result = ddClient_workflow.getProcessInstanceId(ddClient.getAccessToken(), processInstanceId);
+            String originatorUserId = UtilMap.getString(result, "originatorUserId");
+
+            //审批单添加评论
+            String signPreUrl2 = signPreUrl.replace(intranet_host, host);
+            comment(processInstanceId,originatorUserId,"签署预览地址:" + signPreUrl2,null);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     //下载钉钉OA审批单附件
     private void downloadDdFile(String processInstanceId,String fileId,String downloadPath){
         try {

+ 3 - 3
mjava-boyang/src/main/resources/application-prod.yml

@@ -13,15 +13,15 @@ logging:
 
 # dingtalk
 dingtalk:
-  agentId:
+  agentId: 4111300995
   appKey: dingt4kem6twzlqehm58
   appSecret: ZgE_XOfccVlSOcbw3cN0Ad_dJFqBB_PfPPmqJzGTgKXPu5tsh17KibxG7WEB6_hc
   corpId:
   aesKey:
   token:
-  operator: 065965353428672133 #潘麒卿
+  operator: "065965353428672133" #潘麒卿
   operatorUnionId: AfZv5MOJ80W2STOhUbbOcAiEiE #潘麒卿
-  downloadPath: d:\\
+  downloadPath: /home/server/boyang/file/
   spaceId: 27829762189 #钉盘-e签宝
   parentDentryUuid: y20BglGWO23pGpLOsaALnnz98A7depqY #钉盘-e签宝-签署后文件
 

+ 13 - 0
mjava-jinlun/pom.xml

@@ -51,6 +51,19 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.32</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.3.2</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 21 - 0
mjava-jinlun/src/main/java/com/malk/jinlun/controller/JinlunController.java

@@ -5,6 +5,7 @@ import com.malk.server.common.McR;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.Map;
 
 @RestController
@@ -72,4 +73,24 @@ public class JinlunController {
 
         return McR.success();
     }
+
+    /**
+     *
+     * 查询客户回款对账明细
+     * @param startDate
+     * @param endDate
+     * @param customerName
+     * @return
+     */
+    @GetMapping("/getCustomerDzmx")
+    public McR getCustomerDzmx(String startDate, String endDate, String customerName){
+        return jinlunService.getCustomerDzmx(startDate,endDate,customerName);
+//        return null;
+    }
+
+    @GetMapping("/getCustomerWqqk")
+    public McR getCustomerWqqk(String startDate, String customerName){
+        return jinlunService.getCustomerWqqk(startDate,customerName);
+//        return null;
+    }
 }

+ 16 - 0
mjava-jinlun/src/main/java/com/malk/jinlun/mapper/JinlunMapper.java

@@ -0,0 +1,16 @@
+package com.malk.jinlun.mapper;
+
+import org.apache.ibatis.annotations.MapKey;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface JinlunMapper {
+    //查询客户对账明细
+    List<Map> getCustomerDzmx(@Param("start_date") String start_date,@Param("end_date") String end_date,@Param("customer") String customer);
+
+    Map getCustomerWqqk(@Param("start_date") String start_date,@Param("customer") String customer);
+}

+ 4 - 0
mjava-jinlun/src/main/java/com/malk/jinlun/service/JinlunService.java

@@ -14,4 +14,8 @@ public interface JinlunService {
     McR addSaleOrder(Map map);
 
     McR createTbProject(Map map);
+
+    McR getCustomerDzmx(String startDate, String endDate, String customerName);
+
+    McR getCustomerWqqk(String startDate, String customerName);
 }

+ 18 - 0
mjava-jinlun/src/main/java/com/malk/jinlun/service/impl/JinlunServiceImpl.java

@@ -10,6 +10,7 @@ import com.kingdee.bos.webapi.entity.RepoRet;
 import com.kingdee.bos.webapi.sdk.K3CloudApi;
 import com.malk.jinlun.config.KDWebApiConf;
 import com.malk.jinlun.entity.*;
+import com.malk.jinlun.mapper.JinlunMapper;
 import com.malk.jinlun.service.CpClient;
 import com.malk.jinlun.service.JinlunService;
 import com.malk.server.common.McR;
@@ -47,6 +48,9 @@ public class JinlunServiceImpl implements JinlunService {
     @Autowired
     private TBConf tbConf;
 
+    @Autowired
+    private JinlunMapper jinlunMapper;
+
     private final Object $lock = new Object[0];
 
     private static final Long EXPIRES_IN = 7200000L;
@@ -599,6 +603,20 @@ public class JinlunServiceImpl implements JinlunService {
         return McR.success(id);
     }
 
+    @Override
+    public McR getCustomerDzmx(String startDate, String endDate, String customerName) {
+        List<Map> customerDzmx = jinlunMapper.getCustomerDzmx(startDate, endDate, customerName);
+
+        return McR.success(customerDzmx);
+    }
+
+    @Override
+    public McR getCustomerWqqk(String startDate, String customerName) {
+        Map customerWqqk = jinlunMapper.getCustomerWqqk(startDate, customerName);
+
+        return McR.success(customerWqqk);
+    }
+
     private IdentifyInfo initIden(){
         //注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
         //注意 2:必须先配置第三方系统登录授权信息后,再进行业务操作,详情参考各语言版本SDK介绍中的登录配置文件说明。

+ 7 - 0
mjava-jinlun/src/main/resources/application-dev.yml

@@ -3,6 +3,13 @@ server:
   servlet:
     context-path: /jinlun
 
+spring:
+  datasource:
+    url: jdbc:mysql://192.168.0.12:3306/cloudpivot?serverTimezone=GMT%2B8
+    username: root
+    password: test123456!@#$%
+    driver-class-name: com.mysql.cj.jdbc.Driver
+
 enable:
   scheduling: false
 logging:

+ 7 - 0
mjava-jinlun/src/main/resources/application-prod.yml

@@ -3,6 +3,13 @@ server:
   servlet:
     context-path: /jinlun
 
+spring:
+  datasource:
+    url: jdbc:mysql://192.168.0.12:3306/cloudpivot?serverTimezone=GMT%2B8
+    username: root
+    password: test123456!@#$%
+    driver-class-name: com.mysql.cj.jdbc.Driver
+
 enable:
   scheduling: true
 logging:

+ 81 - 0
mjava-jinlun/src/main/resources/mapper/JinlunMapper.xml

@@ -0,0 +1,81 @@
+<?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.malk.jinlun.mapper.JinlunMapper">
+
+
+    <select id="getCustomerDzmx" resultType="java.util.Map">
+        SELECT
+            客户, 单据编号, 业务日期, 性能, 规格, 数量, 重量, 计价单价, 税率, 价税合计, 回款金额, NULL AS "往期欠款", 备注
+        FROM (
+                 -- 暂估应收数据
+                 SELECT
+                     t1.ShortText1760602119316 AS "客户",
+                     t1.ShortText1760602123650 AS "单据编号",
+                     t1.Date1760602205733 AS "业务日期",
+                     t2.Text1760602314150 AS "性能",
+                     t2.Text1760602292846 AS "规格",
+                     t2.Number1762915279108 AS "数量",
+                     t2.Number1762915289424 AS "重量",
+                     t2.Number1760602330651 AS "计价单价",
+                     t2.Number1760602343876 AS "税率",
+                     t2.Number1760602359012 AS "价税合计",
+                     NULL AS "回款金额",
+                     t2.Text1760602391849 AS "备注"
+                 FROM i940k_ysd t1
+                          LEFT JOIN i940k_sheet1760602277185 t2 ON t1.id = t2.parentId
+                 WHERE t1.ShortText1760602147441 = '暂估应收'
+                   AND t1.ShortText1760602123650 NOT LIKE '%-%'
+                   AND t1.Date1760602205733 between #{start_date} and #{end_date}
+                   AND t1.ShortText1760602119316 = #{customer}
+
+                 UNION ALL
+
+                 -- 回款数据
+                 SELECT
+                     t1.ShortText1760585132200 AS "客户",
+                     t1.ShortText1760585125989 AS "单据编号",
+                     t1.Date1760585187315 AS "业务日期",
+                     NULL AS "性能",
+                     NULL AS "规格",
+                     NULL AS "数量",
+                     NULL AS "重量",
+                     NULL AS "计价单价",
+                     NULL AS "税率",
+                     NULL AS "价税合计",
+                     t2.Number1760585242849 AS "回款金额",
+                     t2.ShortText1760585258640 AS "备注"
+                 FROM i940k_skd t1
+                          LEFT JOIN i940k_sheet1760585205663 t2 ON t1.id = t2.parentId
+                 WHERE t1.Date1760585187315 between #{start_date} and #{end_date}
+                   AND t1.ShortText1760585132200 = #{customer}
+                 -- 多个客户时用:AND FIND_IN_SET(t1.ShortText1760585132200, @target_customers) > 0
+             ) data
+        ORDER BY 业务日期,单据编号,性能  -- 同一天内应收行在前,回款行在后
+    </select>
+    <select id="getCustomerWqqk" resultType="java.util.Map">
+        SELECT
+        COALESCE(receivable.amount, 0) AS '往期应付',
+        COALESCE(paid.amount, 0) AS '往期已付',
+        COALESCE(receivable.amount, 0) - COALESCE(paid.amount, 0) AS '往期欠款'
+        FROM
+        (SELECT 1 AS dummy) AS base
+        LEFT JOIN (
+        SELECT SUM(t2.Number1760602359012) AS amount
+        FROM i940k_ysd t1
+        LEFT JOIN i940k_sheet1760602277185 t2 ON t1.id = t2.parentId
+        WHERE t1.ShortText1760602147441 = '暂估应收'
+        AND t1.ShortText1760602123650 NOT LIKE '%-%'
+        AND t1.Date1760602205733 &lt; #{start_date}
+        AND t1.ShortText1760602119316 = #{customer}
+        ) AS receivable ON 1=1
+        LEFT JOIN (
+        SELECT SUM(t2.Number1760585242849) AS amount
+        FROM i940k_skd t1
+        LEFT JOIN i940k_sheet1760585205663 t2 ON t1.id = t2.parentId
+        WHERE t1.Date1760585187315 &lt; #{start_date}
+        AND t1.ShortText1760585132200 = #{customer}
+        ) AS paid ON 1=1
+    </select>
+</mapper>
+

+ 13 - 0
mjava-jinlun/src/test/java/com/malk/jinlun/DdTest.java

@@ -14,6 +14,7 @@ import com.malk.jinlun.entity.*;
 import com.malk.jinlun.service.CpClient;
 import com.malk.jinlun.service.JinlunService;
 import com.malk.jinlun.service.JinlunTaskService;
+import com.malk.server.common.McR;
 import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
 import com.malk.utils.UtilToken;
@@ -330,6 +331,18 @@ public class DdTest {
         jinlunTaskService.syncXingneng();
     }
 
+    @Test
+    public void test13() {
+        McR customerDzmx = jinlunService.getCustomerDzmx("2025-06-01", "2025-12-30", "ASTAR CO., LTD.");
+        System.out.println(customerDzmx);
+    }
+
+    @Test
+    public void test14() {
+        McR customerWqqk = jinlunService.getCustomerWqqk("2025-06-01", "ASTAR CO., LTD.");
+        System.out.println(customerWqqk);
+    }
+
     private IdentifyInfo initIden(){
         //注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
         //注意 2:必须先配置第三方系统登录授权信息后,再进行业务操作,详情参考各语言版本SDK介绍中的登录配置文件说明。