Browse Source

NPO问题处理

chenkang11 4 days ago
parent
commit
7a27ddb92c

+ 18 - 14
mjava-ts/src/main/java/com/malk/taisen/service/impl/NonPoServerImpl.java

@@ -47,7 +47,7 @@ public class NonPoServerImpl implements NonPoServer {
      * 测试地址
      */
 
-    private String QA_sapUrl ="https://etl-nonprod-tasks.tysondt.com:443/api/1/rest/feed/run/task/TysonNonProd/Ultra_PoC/10-QA-team-fssc/tk_oa_to_sap_p2p?bearer_token=bBiGTA7PS0JJ6wKhQU8Vm0vLsIDNjLaN&interface_id=";
+    private String QA_sapUrl = "https://etl-nonprod-tasks.tysondt.com:443/api/1/rest/feed/run/task/TysonNonProd/Ultra_PoC/10-QA-team-fssc/tk_oa_to_sap_p2p?bearer_token=bBiGTA7PS0JJ6wKhQU8Vm0vLsIDNjLaN&interface_id=";
 
     @Override
     public void NonPoinsetSAP0005(String type, String InstanceId) {
@@ -55,23 +55,32 @@ public class NonPoServerImpl implements NonPoServer {
         ydParam.setFormInstanceId(InstanceId);
         DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
         Map dataForm = ddr.getFormData();
+        String paymentType = getString(dataForm, "selectField_mejfoona", "");//Type / 付款类型
+        // 发票总额 or 支付金额
+        String invoiceAmt = getNumberValue(dataForm, "numberField_mejfoook_value");//Invoice Amount / 发票总额
+        String payAmt = getNumberValue(dataForm, "numberField_mejfoool_value");//Payment Amount / 支付总额(含税)
+
+
+        String PD = formatDate(dataForm, "selectField_mj1cq2oz");
+        String SAPID = formatDate(dataForm, "textField_mejezfwk");
+        //校验:支付金额 = 发票金额 + 预付款) - 不推送sap
+        if ("100%清预付款".equals(paymentType)) {
+            //预付款金额
+            double YFKJE = Double.parseDouble(getNumberValue(dataForm, "numberField_l9nwaike_value"));//预付款金额
+            if ( Double.parseDouble(payAmt) == Double.parseDouble(invoiceAmt) +YFKJE) {
+                PD = "否";
+            }
 
-        String PD = getString(dataForm, "radioField_mj13wplt", "");
-        String SAPID = getString(dataForm, "textField_mejezfwk", "");
-        SAPID="1920000044";
+        }
         // 若不需要生成 SAP 凭证,但已有 SAPID,则执行发票勾选
         if ("否".equals(PD) && !SAPID.isEmpty()) {
             FPGX(InstanceId, SAPID, getString(dataForm, "textField_mi73dy3n", ""));
             return;
         }
 
-        if ("否".equals(PD)    ) {
-            FPGX(InstanceId, "1920000044", getString(dataForm, "textField_mi73dy3n", ""));
-            return;
-        }
 
         // 只有“是”才继续处理
-        if (!"是".equals(PD)) {
+        if ("否".equals(PD)) {
             return;
         }
 
@@ -81,10 +90,6 @@ public class NonPoServerImpl implements NonPoServer {
         sapJson.put("ZOA_NUMBER", getString(dataForm, "textField_mi73dy3n", ""));
         sapJson.put("interface_id", "SAP005");
 
-        String paymentType = getString(dataForm, "selectField_mejfoona", "");
-        // 发票总额 or 支付金额
-        String invoiceAmt = getNumberValue(dataForm, "numberField_mejfoook_value");
-        String payAmt = getNumberValue(dataForm, "numberField_mejfoool_value");
 
         if ("收据支付".equals(paymentType)) {
             sapJson.put("ZINVOICE_AMT", payAmt);
@@ -836,7 +841,6 @@ public class NonPoServerImpl implements NonPoServer {
     }
 
 
-
 //    @Override
 //    public void FPGX(String InstanceId, String voucherNumber, String OAnumber) {
 //        YDParam ydParam = _getYDTokenKPD();