Преглед на файлове

金轮新增对账单接口

wzy преди 1 седмица
родител
ревизия
d1a1939b52

+ 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介绍中的登录配置文件说明。