From 38eaaa83c6ba703edfa90e72054b5548dbeb07e0 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期五, 14 三月 2025 20:44:26 +0800
Subject: [PATCH] 开票回款调整

---
 src/main/java/com/product/contract/service/ContractPaymentService.java |   24 ++++++++++++++++--------
 src/main/java/com/product/contract/service/ContractInfoService.java    |    3 ++-
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/product/contract/service/ContractInfoService.java b/src/main/java/com/product/contract/service/ContractInfoService.java
index 5e29095..4fccc04 100644
--- a/src/main/java/com/product/contract/service/ContractInfoService.java
+++ b/src/main/java/com/product/contract/service/ContractInfoService.java
@@ -179,13 +179,14 @@
     public FieldSetEntity getContractInfoByName(FieldSetEntity fs) throws BaseException {
         FieldSetEntity fss = baseDao.getFieldSetEntity(CmnConst.LX_PROJECT_CONTRACT_INFO,fs.getUUID(),true);
         FieldSetEntity fsProject = baseDao.getFieldSetEntity(CmnConst.PRODUCT_PROJECT_BUSINESS,fss.getString("project_uuid"),false);
+        FieldSetEntity fsCustomer = baseDao.getFieldSet("product_project_customer", fsProject.getString("customer_name"), false);
         FieldSetEntity contractName = baseDao.getFieldSetEntityBySQL("SELECT sum(invoice_amount) invoice_amount FROM product_project_contract_invoice_info WHERE contract_invoice_uuid in(SELECT uuid FROM product_project_contract_invoice where contract_name=?)", new String[]{fs.getString("uuid")},false);
         if (contractName==null||StringUtils.isEmpty(contractName.getString("invoice_amount"))){
             fss.setValue("invoice_amount",0);
         }else {
             fss.setValue("invoice_amount",contractName.getString("invoice_amount"));
         }
-
+        fss.setValue("customer_name", fsCustomer.getString("customer_name"));
         fss.setValue("collection_amount",0);
         fss.setValue("project_num",fsProject.getString("project_num"));
         fss.setValue("project_name",fsProject.getString("project_name"));
diff --git a/src/main/java/com/product/contract/service/ContractPaymentService.java b/src/main/java/com/product/contract/service/ContractPaymentService.java
index 5c7e0aa..159b3b6 100644
--- a/src/main/java/com/product/contract/service/ContractPaymentService.java
+++ b/src/main/java/com/product/contract/service/ContractPaymentService.java
@@ -140,14 +140,22 @@
      * @throws BaseException
      */
     public  DataTableEntity paymentCollectionData()throws BaseException{
-       return baseDao.listTable("SELECT b.project_name,g.customer_name,a.contract_name,c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time FROM \n" +
-                "product_project_contract_info a \n" +
-                "LEFT JOIN product_project_business b on a.project_uuid=b.uuid\n" +
-                "LEFT JOIN product_project_contract_info_sub c on a.uuid =c.contract_info_uuid\n" +
-                "LEFT JOIN product_project_contract_invoice_info d  on c.uuid=d.contract_terms\n" +
-                "LEFT JOIN product_project_contract_invoice e on e.uuid=d.contract_invoice_uuid\n" +
-                "LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num\n" +
-                "LEFT JOIN product_project_customer g on b.customer_name=g.uuid",new String[]{});
+    	StringBuilder sbSql = new StringBuilder();
+    	sbSql.append("SELECT A.*,(A.contract_amount - A.amount_collected) AS unpaid_amount \n");
+    	sbSql.append("FROM ( \n");
+    	sbSql.append("	SELECT \n");
+    	sbSql.append("		b.project_name,g.customer_name,a.contract_name,a.contract_amount, \n");
+    	sbSql.append("		(SELECT IFNULL(SUM(amount_collected), 0) FROM product_project_contract_payment WHERE contract_name = A.uuid)AS amount_collected, \n");
+    	sbSql.append("		c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time \n");
+    	sbSql.append("	FROM product_project_contract_info a  \n");
+    	sbSql.append("	LEFT JOIN product_project_business b on a.project_uuid=b.uuid \n");
+    	sbSql.append("	LEFT JOIN product_project_contract_info_sub c on a.uuid =c.contract_info_uuid \n");
+    	sbSql.append("	LEFT JOIN product_project_contract_invoice_info d  on c.uuid=d.contract_terms \n");
+    	sbSql.append("	LEFT JOIN product_project_contract_invoice e on e.uuid=d.contract_invoice_uuid \n");
+    	sbSql.append("	LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num \n");
+    	sbSql.append("	LEFT JOIN product_project_customer g on b.customer_name=g.uuid \n");
+    	sbSql.append(")A \n");
+       return baseDao.listTable(sbSql.toString(),new String[]{});
     }
 
 }

--
Gitblit v1.9.2