From 5fa7ab85b61445c846f6d04d41df3576c80e190f Mon Sep 17 00:00:00 2001 From: itzhang <2019326567@qq.com> Date: Sat, 28 Jun 2025 10:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E9=94=80=E5=94=AE?= =?UTF-8?q?=E5=90=88=E5=90=8C=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/controller/XSHTController.java | 77 ++++++++++++++----- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/management/controller/XSHTController.java b/src/main/java/com/management/controller/XSHTController.java index f5704ae..59e49d3 100644 --- a/src/main/java/com/management/controller/XSHTController.java +++ b/src/main/java/com/management/controller/XSHTController.java @@ -311,16 +311,63 @@ public class XSHTController { //销售方式 erpContractReq.put("salesmethod", contractData.getString("sales_method__c") != null ? contractData.getString("sales_method__c") : ""); - //付款方式 - Map paymentMethodMap = new HashMap<>(); - //收款比例 - paymentMethodMap.put("payrate", contractData.getBigDecimal("prepayment_ratio__c") != null ? contractData.getBigDecimal("prepayment_ratio__c") : BigDecimal.ZERO); - //预付款金额 - paymentMethodMap.put("payamount", contractData.getBigDecimal("pre_invoice_amount__c") != null ? contractData.getBigDecimal("pre_invoice_amount__c") : BigDecimal.ZERO); - //是否预收 - paymentMethodMap.put("isprepay", false); + List payMethodList = contractData.getJSONArray("payment_method__c") != null ? contractData.getJSONArray("payment_method__c") : new ArrayList(); - erpContractReq.put("payentry", Arrays.asList(paymentMethodMap)); + List payMethodListMap = new ArrayList(); + + if (payMethodList != null && !payMethodList.isEmpty()) { + for (Object payMethodStr : payMethodList) { + String payMethod = payMethodStr.toString(); + + //单个付款方式 + Map paymentMethodMap = new HashMap<>(); + + if ("1".equals(payMethod)) { + //预付款 + //款项名称 + paymentMethodMap.put("payname_number", "1"); + //收款比例 + paymentMethodMap.put("payrate", contractData.getBigDecimal("prepayment_ratio__c") != null ? contractData.getBigDecimal("prepayment_ratio__c") : BigDecimal.ZERO); + //预付款金额 + paymentMethodMap.put("payamount", contractData.getBigDecimal("pre_invoice_amount__c") != null ? contractData.getBigDecimal("pre_invoice_amount__c") : BigDecimal.ZERO); + //是否预收 + paymentMethodMap.put("isprepay", true); + } else if ("2".equals(payMethod)) { + //到货款 + //款项名称 + paymentMethodMap.put("payname_number", "2"); + //收款比例 + paymentMethodMap.put("payrate", contractData.getBigDecimal("arrival_payment_ratio__c") != null ? contractData.getBigDecimal("arrival_payment_ratio__c") : BigDecimal.ZERO); + //预付款金额 + paymentMethodMap.put("payamount", contractData.getBigDecimal("received_amount__c") != null ? contractData.getBigDecimal("received_amount__c") : BigDecimal.ZERO); + //是否预收 + paymentMethodMap.put("isprepay", false); + } else if ("3".equals(payMethod)) { + //投运款 + //款项名称 + paymentMethodMap.put("payname_number", "3"); + //收款比例 + paymentMethodMap.put("payrate", contractData.getBigDecimal("commission_ratio__c") != null ? contractData.getBigDecimal("commission_ratio__c") : BigDecimal.ZERO); + //预付款金额 + paymentMethodMap.put("payamount", contractData.getBigDecimal("commission_amount__c") != null ? contractData.getBigDecimal("commission_amount__c") : BigDecimal.ZERO); + //是否预收 + paymentMethodMap.put("isprepay", false); + } else if ("4".equals(payMethod)) { + //质保金 + //款项名称 + paymentMethodMap.put("payname_number", "4"); + //收款比例 + paymentMethodMap.put("payrate", contractData.getBigDecimal("warranty_deposit__c") != null ? contractData.getBigDecimal("warranty_deposit__c") : BigDecimal.ZERO); + //预付款金额 + paymentMethodMap.put("payamount", contractData.getBigDecimal("warranty_amount__c") != null ? contractData.getBigDecimal("warranty_amount__c") : BigDecimal.ZERO); + //是否预收 + paymentMethodMap.put("isprepay", false); + } + payMethodListMap.add(paymentMethodMap); + } + } + + erpContractReq.put("payentry", payMethodListMap); //根据合同号查询合同明细 JSONObject contractDetailReq = crmRequestUtil.getCRMList(Arrays.asList( @@ -820,18 +867,6 @@ public class XSHTController { contractBGDetailList.add(contractBGDetailMap); } - if (contractBGDetailList.isEmpty()) { - log.info("没用符合条件的变更明细数据,将不再继续向下执行"); - try { - System.out.println("暂停3秒"); - Thread.sleep(3000);//单位:毫秒 - System.out.println("继续执行"); - } catch (InterruptedException e) { - e.printStackTrace();//处理中断异常 - } - continue; - } - contractBGMap.put("entryList", contractBGDetailList); //开始获取token