From 73ea900f5292951805d5590325fb31385013f6d6 Mon Sep 17 00:00:00 2001
From: zhangjingzhi <1415093946@qq.com>
Date: Tue, 31 Dec 2024 12:42:46 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../web/dto/result/BusinessDataResult.java    |  2 +
 ServiceSite/pom.xml                           |  6 +--
 .../waiMao/mapper/ContractPayDataMapper.java  |  2 +
 .../dao/waiMao/xml/AssestsFileMapper.xml      |  6 ++-
 .../dao/waiMao/xml/BusinessDataMapper.xml     | 18 ++++---
 .../dao/waiMao/xml/ContractPayDataMapper.xml  | 16 +++++++
 .../WaiMaoBusinessOrderServiceImpl.java       | 48 +++++++++++--------
 7 files changed, 67 insertions(+), 31 deletions(-)

diff --git a/ServiceSite/facade/src/main/java/com/seasky/businessFinanceFusion/web/dto/result/BusinessDataResult.java b/ServiceSite/facade/src/main/java/com/seasky/businessFinanceFusion/web/dto/result/BusinessDataResult.java
index a696704..afd5efa 100644
--- a/ServiceSite/facade/src/main/java/com/seasky/businessFinanceFusion/web/dto/result/BusinessDataResult.java
+++ b/ServiceSite/facade/src/main/java/com/seasky/businessFinanceFusion/web/dto/result/BusinessDataResult.java
@@ -45,6 +45,8 @@ public class BusinessDataResult  {
     @NoArgsConstructor
     @Builder
     public static class ClaimsInfo {
+        //鏄惁浠ヨ祫浜т负鍑� 鏄� 绗洓姝ユ敮浠樻案杩滃埛鏂颁负璧勪骇鐨刾aymetInfoList
+        private Boolean isAssetsPrevail;
         private List<PaymentInfo> paymetInfoList;
    }
 
diff --git a/ServiceSite/pom.xml b/ServiceSite/pom.xml
index 5d66019..306f6a5 100644
--- a/ServiceSite/pom.xml
+++ b/ServiceSite/pom.xml
@@ -16,7 +16,7 @@
         <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
         <docker.directory>docker</docker.directory>
         <docker-maven-plugin.version>0.4.10</docker-maven-plugin.version>
-        <heading.docker.registry>demo.seaskysh.com</heading.docker.registry>
+        <heading.docker.registry>harbor.seaskysh.com</heading.docker.registry>
     </properties>
 
     <dependencyManagement>
@@ -335,8 +335,8 @@
                     <version>1.2.2</version>
                     <configuration>
                         <dockerHost>https://47.110.127.118:2375</dockerHost>
-                        <imageName>demo.seaskysh.com/seaskysh/${project.artifactId}:${project.version}</imageName>
-                        <baseImage>demo.seaskysh.com/seaskypub/java</baseImage>
+                        <imageName>harbor.seaskysh.com/seaskysh/${project.artifactId}:${project.version}</imageName>
+                        <baseImage>harbor.seaskysh.com/seaskypub/java</baseImage>
                         <maintainer>seaskysh.com</maintainer>
                         <workdir>/ROOT</workdir>
                         <cmd>["java", "-version"]</cmd>
diff --git a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/mapper/ContractPayDataMapper.java b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/mapper/ContractPayDataMapper.java
index aa4fcbb..ecc9697 100644
--- a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/mapper/ContractPayDataMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/mapper/ContractPayDataMapper.java
@@ -15,4 +15,6 @@ public interface ContractPayDataMapper extends BaseMapper<ContractPayDataPO> {
     ContractPayDataPO selectContractPayData(@Param("qry") ContractPayDataPO qry);
     Long selectTotal(@Param("qry") BusinessOrderPageRequest qry);
     void updateByPaymentId(@Param("po") ContractPayDataPO po);
+
+    List<ContractPayDataPO> selectListByBpmNo(@Param("qry") ContractPayDataPO qry);
 }
diff --git a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/AssestsFileMapper.xml b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/AssestsFileMapper.xml
index d35daf8..7005b28 100644
--- a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/AssestsFileMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/AssestsFileMapper.xml
@@ -4,7 +4,11 @@
 
     <select id="selectByNo" resultType="com.seasky.businessFinanceFusion.business.entity.waiMao.AssetsFilePO"
             parameterType="java.lang.String">
-        SELECT FILE_ID,FILE_NAME, FILE_TYPE, CONTENT FROM ASSETS_FILE_LIST where BPM_NO = #{bpmNo}
+        SELECT FILE_ID,FILE_NAME, FILE_TYPE, CONTENT as CONTENT FROM ASSETS_FILE_LIST where BPM_NO = #{bpmNo}
+        UNION ALL
+        SELECT FILE_ID,FILE_NAME, FILE_TYPE,a.FILE_CONTENT as CONTENT FROM PAYMENT_SUIBE_FILE_RESOURCE a
+          LEFT JOIN SEC_DSF_FINANCE.CONTRACT_PAY_DATA b ON a.PAYMENT_ID =b.PEYMENT_ID
+        WHERE b.JZYWH =#{bpmNo}
     </select>
 
 </mapper>
diff --git a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/BusinessDataMapper.xml b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/BusinessDataMapper.xml
index 92bf726..74510d5 100644
--- a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/BusinessDataMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/BusinessDataMapper.xml
@@ -82,9 +82,11 @@
         t.*,
         ROWNUM rn
         FROM
-        ( SELECT * FROM BUSINESS_DATA bd
-            where bd.STATE IN (0,4)
-            AND bd.BUSINESS_TYPE = 'INCOMING'
+        ( SELECT DISTINCT  bd.*  FROM BUSINESS_DATA bd
+        LEFT JOIN ASSETS_INCOMING_LIST a ON bd.BPM_NO = a.BPM_NO
+        LEFT JOIN CONTRACT_PAY_DATA c ON c.JZYWH=bd.BPM_NO AND c.FKSQRBH=bd.REQUEST_NO
+        where bd.STATE IN (0,4)
+        AND bd.BUSINESS_TYPE = 'INCOMING'  AND a.BPM_NO IS NOT NULL AND c.JZYWH IS NOT null
             <if test="qry.operator != null and qry.operator != ''">
                 AND bd.REQUEST_NO = #{qry.operator}
             </if>
@@ -106,10 +108,12 @@
         t.*,
         ROWNUM rn
         FROM
-        ( SELECT * FROM BUSINESS_DATA bd
-            where bd.STATE IN (0,4)
-            AND bd.BUSINESS_TYPE = 'INCOMING'
-            <if test="qry.operator != null and qry.operator != ''">
+        ( SELECT DISTINCT  bd.*  FROM BUSINESS_DATA bd
+        LEFT JOIN ASSETS_INCOMING_LIST a ON bd.BPM_NO = a.BPM_NO
+        LEFT JOIN CONTRACT_PAY_DATA c ON c.JZYWH=bd.BPM_NO AND c.FKSQRBH=bd.REQUEST_NO
+        where bd.STATE IN (0,4)
+        AND bd.BUSINESS_TYPE = 'INCOMING'  AND a.BPM_NO IS NOT NULL AND c.JZYWH IS NOT null
+        <if test="qry.operator != null and qry.operator != ''">
                 AND bd.REQUEST_NO = #{qry.operator}
             </if>
             <if test="qry.businessOrderCode != null and qry.businessOrderCode != ''">
diff --git a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/ContractPayDataMapper.xml b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/ContractPayDataMapper.xml
index baa1d73..5f44924 100644
--- a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/ContractPayDataMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/dao/waiMao/xml/ContractPayDataMapper.xml
@@ -62,5 +62,21 @@
         </set>
         where PEYMENT_ID = #{po.paymentId}
     </update>
+    <select id="selectListByBpmNo" resultType="com.seasky.businessFinanceFusion.business.entity.waiMao.ContractPayDataPO"
+            parameterType="com.seasky.businessFinanceFusion.business.entity.waiMao.ContractPayDataPO">
+        SELECT PEYMENT_ID, NAME, PARTY_SECOND, BANK_NAME, BANK_NO, MULTI_OUTLAY_STR
+                         , AMOUNT, VAR1, PAYMENT_FILE, CGFILE, ZBTZS, JZYWH, HTZE, STATE, CONTRACT_APPLY_ID, HEFJ,FKSQRBH
+        FROM SEC_DSF_FINANCE.CONTRACT_PAY_DATA
+        <where>
+            VAR1 = '灏炬/涓€娆℃€т粯娆�'
+           <if test="qry.jzywh != null and qry.jzywh != ''">
+               AND  JZYWH = #{qry.jzywh}
+            </if>
+            <if test="qry.requestNo != null and qry.requestNo != ''">
+                AND  FKSQRBH = #{qry.requestNo}
+            </if>
+        </where>
+
+    </select>
 
 </mapper>
diff --git a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/service/waimao/WaiMaoBusinessOrderServiceImpl.java b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/service/waimao/WaiMaoBusinessOrderServiceImpl.java
index 91786f4..b2b5d1d 100644
--- a/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/service/waimao/WaiMaoBusinessOrderServiceImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/businessFinanceFusion/business/service/waimao/WaiMaoBusinessOrderServiceImpl.java
@@ -123,24 +123,24 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                     continue;
                 }
                 /*"JZYWH"---->>bpmNo,鏀粯璁板綍*/
-                List<VContractPayDataPO> vContractPayDataPOS = vContractPayDataMapper.selectByPrId(bpmNo);
-                if (ObjectUtils.isEmpty(vContractPayDataPOS)) {
-                    log.info("vContractPayDataPOS涓虹┖璺宠繃锛宨d锛歿}", bpmNo);
+                List<ContractPayDataPO> contractPayDataPOS = contractPayDataMapper.selectListByBpmNo(ContractPayDataPO.builder().jzywh(bpmNo).requestNo(qry.getOperator()).build());
+                if (ObjectUtils.isEmpty(contractPayDataPOS)) {
+                    log.info("ContractPayDataPOS涓虹┖璺宠繃锛宨d锛歿}", bpmNo);
                     total-=1;
                     continue;
                 }
                 /*鏋勫缓PaymetInfoList 缃戞姤绗洓姝ヤ娇鐢ㄧ殑鏀粯鏂瑰紡*/
                 List<BusinessDataResult.PaymentInfo> paymentInfoList = new ArrayList<>();
-                VContractPayDataPO vContractPayDataPO = vContractPayDataPOS.get(0);
-                BusinessDataResult.PaymentInfo paymentInfo = new BusinessDataResult.PaymentInfo(vContractPayDataPO.getPartySecond(), vContractPayDataPO.getBankName(),
-                        vContractPayDataPO.getBankNo(), paymentTypeId, paymentTypeName,
-                        vContractPayDataPO.getAmount(), getRemarks(vContractPayDataPO));
+                ContractPayDataPO contractPayDataPO = contractPayDataPOS.get(0);
+                BusinessDataResult.PaymentInfo paymentInfo = new BusinessDataResult.PaymentInfo(contractPayDataPO.getPartySecond(), contractPayDataPO.getBankName(),
+                        contractPayDataPO.getBankNo(), paymentTypeId, paymentTypeName,
+                        contractPayDataPO.getAmount(), getRemarks(contractPayDataPO));
                 paymentInfoList.add(paymentInfo);
 
                 /*鎬婚噾棰�*/
-                BigDecimal totalMoney = ObjectUtils.defaultIfNull(vContractPayDataPO.getHtze(), BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP);
+                BigDecimal totalMoney = ObjectUtils.defaultIfNull(contractPayDataPO.getHtze(), BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP);
                 /*鏈缁撶畻*/
-                BigDecimal currentMoney = ObjectUtils.defaultIfNull(vContractPayDataPO.getAmount(), BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP);
+                BigDecimal currentMoney = ObjectUtils.defaultIfNull(contractPayDataPO.getAmount(), BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP);
                 /*璧勪骇琛�*/
                 BigDecimal bdAmount = ObjectUtils.defaultIfNull(businessDataPO.getAmount(), BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP);
                 /*鍏朵粬璐圭敤*/
@@ -182,8 +182,8 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                         .amount(currentMoney.subtract(otherFreight))
                         .controlCode("")
                         .controlName("")
-                        .projectCodeNames(getProjectCodeNames(vContractPayDataPOS))
-                        .accountCodeNames(getAccountCodeNames(assetsIncomingListPOS, vContractPayDataPO.getVar1()))
+                        .projectCodeNames(getProjectCodeNames(contractPayDataPOS))
+                        .accountCodeNames(getAccountCodeNames(assetsIncomingListPOS, contractPayDataPO.getVar1()))
                         .orderDetailData(new ArrayList<>())
                         .build();
                 detailList.add(detail);
@@ -194,7 +194,7 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                             .amount(otherFreight)
                             .controlCode("")
                             .controlName("")
-                            .projectCodeNames(getProjectCodeNames(vContractPayDataPOS))
+                            .projectCodeNames(getProjectCodeNames(contractPayDataPOS))
                             .accountCodeNames(otherExpenseAccountCodeNames)
                             .orderDetailData(new ArrayList<>())
                             .build();
@@ -202,12 +202,12 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                 }
 //            }
                 /*鏋勫缓claimsInfo*/
-                BusinessDataResult.ClaimsInfo claimsInfo = BusinessDataResult.ClaimsInfo.builder().paymetInfoList(paymentInfoList).build();
+                BusinessDataResult.ClaimsInfo claimsInfo = BusinessDataResult.ClaimsInfo.builder().paymetInfoList(paymentInfoList).isAssetsPrevail(true).build();
                 /*鏋勫缓orderDetailData*/
                 BusinessDataResult.OrderData orderData = BusinessDataResult.OrderData.builder()
                         .businessData(MapperUtils.INSTANCE.map(BusinessDataResult.BusinessData.class, businessDataPO))
                         .assetsIncomingList(MapperUtils.INSTANCE.mapAsList(BusinessDataResult.AssetsIncomingList.class, assetsIncomingListPOS))
-                        .vContractPayDataList(MapperUtils.INSTANCE.mapAsList(BusinessDataResult.VContractPayData.class, vContractPayDataPOS))
+                        .vContractPayDataList(MapperUtils.INSTANCE.mapAsList(BusinessDataResult.VContractPayData.class, contractPayDataPOS))
                         .build();
                 BusinessDataResult businessDataResult = BusinessDataResult.builder()
                         .orderName(orderName)
@@ -241,7 +241,7 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                 //杩斿洖缁欑綉鎶ユ敮浠樻柟寮忕殑鍙傛暟 缃戞姤绗洓姝ヤ娇鐢ㄧ殑鏀粯鏂瑰紡
                 BusinessDataResult.PaymentInfo paymentInfo = new BusinessDataResult.PaymentInfo(payDataPO.getPartySecond(), payDataPO.getBankName(),
                         payDataPO.getBankNo(), paymentTypeId, paymentTypeName,
-                        payDataPO.getAmount(), getRemarks(VContractPayDataPO.builder().bankName(payDataPO.getBankName()).bankNo(payDataPO.getBankNo()).build()));
+                        payDataPO.getAmount(), getRemarks(ContractPayDataPO.builder().bankName(payDataPO.getBankName()).bankNo(payDataPO.getBankNo()).build()));
                 paymentInfoList.add(paymentInfo);
                 String orderName = StrUtil.nullToEmpty(payDataPO.getName())+String.format("棰勪粯娆�%.2f鍏�", currentMoney);
                 List<BusinessDataResult.ProjectCodeName> resultProjectCodeName = new ArrayList<>();
@@ -267,7 +267,7 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                         .build();
                 detailList.add(detail);
                 /*鏋勫缓claimsInfo*/
-                BusinessDataResult.ClaimsInfo claimsInfo = BusinessDataResult.ClaimsInfo.builder().paymetInfoList(paymentInfoList).build();
+                BusinessDataResult.ClaimsInfo claimsInfo = BusinessDataResult.ClaimsInfo.builder().paymetInfoList(paymentInfoList).isAssetsPrevail(true).build();
                 List<ContractPayDataPO> poList=new ArrayList<>();
                 poList.add(payDataPO);
                 /*鏋勫缓orderDetailData*/
@@ -387,6 +387,14 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
                 bdPo.setDescription(recallBusinessOrderRequest.getRejectReason());
             }
             businessDataMapper.updateByNo(bdPo);
+            //灏炬鏀粯鍥炲啓 鐘舵€佷笌涓昏〃涓€鑷�
+            List<ContractPayDataPO> contractPayDataPOS = contractPayDataMapper.selectListByBpmNo(ContractPayDataPO.builder().jzywh(recallBusinessOrderRequest.getBusinessOrderCode()).build());
+            if (ObjectUtils.isEmpty(contractPayDataPOS)) {
+                for (ContractPayDataPO cpPo : contractPayDataPOS) {
+                    log.info("灏炬鏀粯鍥炲啓锛宨d锛歿},state:{}", cpPo.getPaymentId(),bdPo.getState());
+                    contractPayDataMapper.updateByPaymentId(ContractPayDataPO.builder().paymentId(cpPo.getPaymentId()).state(bdPo.getState()).build());
+                }
+            }
         }else if ("2".equals(recallBusinessOrderRequest.getBusinessType())){
             ContractPayDataPO cpPo = ContractPayDataPO.builder()
                     .paymentId(recallBusinessOrderRequest.getBusinessOrderCode())
@@ -532,12 +540,12 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
 
 
     /*瑙f瀽椤圭洰缂栧彿鍜屽悕绉帮紝杩斿洖json鏁版嵁*/
-    private static String getProjectCodeNames(List<VContractPayDataPO> vContractPayDataPOS) {
-        if (ObjectUtils.isEmpty(vContractPayDataPOS)) {
+    private static String getProjectCodeNames(List<ContractPayDataPO> contractPayDataPOS) {
+        if (ObjectUtils.isEmpty(contractPayDataPOS)) {
             return "";
         }
         List<BusinessDataResult.ProjectCodeName> result = new ArrayList<>();
-        for (VContractPayDataPO po : vContractPayDataPOS) {
+        for (ContractPayDataPO po : contractPayDataPOS) {
             List<BusinessDataResult.OutlayCard> outlayCards = JSON.parseArray(po.getMultiOutlayStr(), BusinessDataResult.OutlayCard.class);
             for (BusinessDataResult.OutlayCard outlayCard : outlayCards) {
                 BusinessDataResult.ProjectCodeName projectName = BusinessDataResult.ProjectCodeName.builder()
@@ -552,7 +560,7 @@ public class WaiMaoBusinessOrderServiceImpl extends AbstractService<BusinessData
     }
 
     /*瑙f瀽寮€鎴疯锛岄摱琛岃处鍙�*/
-    private static List<String> getRemarks(VContractPayDataPO po) {
+    private static List<String> getRemarks(ContractPayDataPO po) {
         List<String> result = new ArrayList<>();
         if (ObjectUtils.isEmpty(po)) {
             return result;
-- 
GitLab