Преглед изворни кода

Merge remote-tracking branch 'origin/master'

lfx пре 1 месец
родитељ
комит
5b1c962a0e

+ 405 - 410
mjava-ts/src/main/java/com/malk/taisen/service/impl/NonPoServerImpl.java

@@ -47,110 +47,107 @@ 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) {
-        YDParam ydParam = _getYDTokenKPD();
-        ydParam.setFormInstanceId(InstanceId);
-        DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
-        Map dataForm = ddr.getFormData();
-
-        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)) {
-            return;
-        }
-
-        JSONObject sapJson = new JSONObject();
-        sapJson.put("ZDUEDATE", formatDate(dataForm, "dateField_mejfoonv"));
-        sapJson.put("BKTXT", getString(dataForm, "textareaField_mejfoonw", ""));
-        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);
-        } else {
-            sapJson.put("ZINVOICE_AMT", invoiceAmt);
-        }
-
-        sapJson.put("BANKA", getString(dataForm, "textField_mejfoon9", ""));
-        sapJson.put("BLDAT", formatDate(dataForm, "dateField_l9nsavm3"));
-
-        // 获取过账人 UID
-        String uid = getPostingUserUid(dataForm);
-        sapJson.put("USNAM", uid);
-
-        sapJson.put("BUDAT", formatDate(dataForm, "dateField_mhxdzyaa"));
-        sapJson.put("ZOA_TYPE", "无票预付".equals(paymentType) ? "AD" : "NP");
-        sapJson.put("ZPAY_AMT", payAmt);
-        sapJson.put("BUKRS", getString(dataForm, "textField_mejfj9iw", ""));
-        sapJson.put("BANKN", getString(dataForm, "textField_mejfoon8", ""));
-        sapJson.put("WAERS", getString(dataForm, "selectField_mejfoong", ""));
-        sapJson.put("KOINH", getString(dataForm, "textField_mejezfwl", ""));
-        sapJson.put("LIFNR", getString(dataForm, "textField_mejezfwv", ""));
-
-        // 设置凭证类型 & 构建 ITEM
-        JSONArray itemArray = new JSONArray();
-        if ("发票支付".equals(paymentType)) {
-            sapJson.put("BLART", "Z2");
-            buildInvoicePaymentItems(dataForm, "tableField_l6ujr47b", itemArray);
-        } else if ("无票预付".equals(paymentType)) {
-            sapJson.put("BLART", "Z4");
-            sapJson.put("UMSKZ", "A");
-            buildAdvancePaymentItem(dataForm, itemArray);
-        } else if ("收据支付".equals(paymentType)) {
-            sapJson.put("BLART", "Z2");
-            buildReceiptPaymentItems(dataForm, "tableField_mi7c3wl9", itemArray);
-        } else if ("100%清预付款".equals(paymentType)) {
-            sapJson.put("BLART", "Z2");
-            String xref1 = "", xref2 = "";
-            List<Map<String, Object>> refList = getList(dataForm, "tableField_mi8q495e");
-            if (refList != null && !refList.isEmpty()) {
-                if (refList.size() == 1) {
-                    xref1 = getString(refList.get(0), "textField_mi8q495f", "");
-                } else {
-                    refList.sort((a, b) -> {
-                        Long timeA = getDateTimestamp(a, "dateField_mj13wpls");
-                        Long timeB = getDateTimestamp(b, "dateField_mj13wpls");
-                        return Long.compare(timeB, timeA);
-                    });
-                    xref1 = getString(refList.get(0), "textField_mi8q495f", "");
-                    xref2 = getString(refList.get(1), "textField_mi8q495f", "");
-                }
-            }
-            buildClearAdvanceItems(dataForm, "tableField_l6ujr47b", xref1, xref2, itemArray);
-        }
-
-        sapJson.put("ITEM", itemArray);
-
-        // 调用 SAP 接口
-        log.info("发起POST请求:URL={},参数={}", QA_sapUrl + "SAP005", sapJson);
-        System.out.println(sapJson);
-        String post = HttpUtil.post(QA_sapUrl + "SAP005", null, sapJson.toString(), null);
-        log.info("{} POST反馈={}", getString(dataForm, "textField_mi73dy3n", ""), post);
-        System.out.println("POST反馈=====" + post);
-
-        handleSapResponse(post, InstanceId, dataForm, paymentType);
-    }
+    // @Override
+//    public void NonPoinsetSAP0005_tse(String type, String InstanceId) {
+//        YDParam ydParam = _getYDTokenKPD();
+//        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 = (String) dataForm.get("selectField_mj1cq2oz_id");//formatDate(dataForm, "selectField_mj1cq2oz_id");//
+//        String SAPID = (String) dataForm.get("textField_mejezfwk");//formatDate(dataForm, "textField_mejezfwk").equals("")? formatDate(dataForm, "textField_mj2gpdiu"): formatDate(dataForm, "textField_mejezfwk");
+//
+//        // 若不需要生成 SAP 凭证,但已有 SAPID,则执行发票勾选
+//        if ("否".equals(PD) && !SAPID.isEmpty()) {
+//            FPGX(InstanceId, SAPID, getString(dataForm, "textField_mi73dy3n", ""));
+//            return;
+//        }
+//
+//
+//        // 只有“是”才继续处理
+//        if ("否".equals(PD)) {
+//            return;
+//        }
+//
+//        JSONObject sapJson = new JSONObject();
+//        sapJson.put("ZDUEDATE", formatDate(dataForm, "dateField_mejfoonv"));
+//        sapJson.put("BKTXT", getString(dataForm, "textareaField_mejfoonw", ""));
+//        sapJson.put("ZOA_NUMBER", getString(dataForm, "textField_mi73dy3n", ""));
+//        sapJson.put("interface_id", "SAP005");
+//
+//
+//        if ("收据支付".equals(paymentType)) {
+//            sapJson.put("ZINVOICE_AMT", payAmt);
+//        } else {
+//            sapJson.put("ZINVOICE_AMT", invoiceAmt);
+//        }
+//
+//        sapJson.put("BANKA", getString(dataForm, "textField_mejfoon9", ""));
+//        sapJson.put("BLDAT", formatDate(dataForm, "dateField_l9nsavm3"));
+//
+//        // 获取过账人 UID
+//        String uid = getPostingUserUid(dataForm);
+//        sapJson.put("USNAM", uid);
+//
+//        sapJson.put("BUDAT", formatDate(dataForm, "dateField_mhxdzyaa"));
+//        sapJson.put("ZOA_TYPE", "无票预付".equals(paymentType) ? "AD" : "NP");
+//        sapJson.put("ZPAY_AMT", payAmt);
+//        sapJson.put("BUKRS", getString(dataForm, "textField_mejfj9iw", ""));
+//        sapJson.put("BANKN", getString(dataForm, "textField_mejfoon8", ""));
+//        sapJson.put("WAERS", getString(dataForm, "selectField_mejfoong", ""));
+//        sapJson.put("KOINH", getString(dataForm, "textField_mejezfwl", ""));
+//        sapJson.put("LIFNR", getString(dataForm, "textField_mejezfwv", ""));
+//
+//        // 设置凭证类型 & 构建 ITEM
+//        JSONArray itemArray = new JSONArray();
+//        if ("发票支付".equals(paymentType)) {
+//            sapJson.put("BLART", "Z2");
+//            buildInvoicePaymentItems(dataForm, "tableField_l6ujr47b", itemArray);
+//        } else if ("无票预付".equals(paymentType)) {
+//            sapJson.put("BLART", "Z4");
+//            sapJson.put("UMSKZ", "A");
+//            buildAdvancePaymentItem(dataForm, itemArray);
+//        } else if ("收据支付".equals(paymentType)) {
+//            sapJson.put("BLART", "Z2");
+//            buildReceiptPaymentItems(dataForm, "tableField_mi7c3wl9", itemArray);
+//        } else if ("100%清预付款".equals(paymentType)) {
+//            sapJson.put("BLART", "Z2");
+//            String xref1 = "", xref2 = "";
+//            List<Map<String, Object>> refList = getList(dataForm, "tableField_mi8q495e");
+//            if (refList != null && !refList.isEmpty()) {
+//                if (refList.size() == 1) {
+//                    xref1 = getString(refList.get(0), "textField_mi8q495f", "");
+//                } else {
+//                    refList.sort((a, b) -> {
+//                        Long timeA = getDateTimestamp(a, "dateField_mj13wpls");
+//                        Long timeB = getDateTimestamp(b, "dateField_mj13wpls");
+//                        return Long.compare(timeB, timeA);
+//                    });
+//                    xref1 = getString(refList.get(0), "textField_mi8q495f", "");
+//                    xref2 = getString(refList.get(1), "textField_mi8q495f", "");
+//                }
+//            }
+//            buildClearAdvanceItems(dataForm, "tableField_l6ujr47b", xref1, xref2, itemArray);
+//        }
+//
+//        sapJson.put("ITEM", itemArray);
+//
+//        // 调用 SAP 接口
+//        log.info("发起POST请求:URL={},参数={}", QA_sapUrl + "SAP005", sapJson);
+//        System.out.println(sapJson);
+//        String post = HttpUtil.post(QA_sapUrl + "SAP005", null, sapJson.toString(), null);
+//        log.info("{} POST反馈={}", getString(dataForm, "textField_mi73dy3n", ""), post);
+//        System.out.println("POST反馈=====" + post);
+//
+//        handleSapResponse(post, InstanceId, dataForm, paymentType);
+//    }
 
 // === 辅助方法(全部为 private static 或局部 lambda,但 Java 不支持局部函数,故用 private 方法)===
 // 注意:这些方法必须定义在类中,但未扩展主逻辑
@@ -236,7 +233,7 @@ public class NonPoServerImpl implements NonPoServer {
         for (Map<String, Object> row : rows) {
             JSONObject item = new JSONObject();
             item.put("KOSTL", getString(row, "textField_mi5kjmwk", ""));
-            item.put("DMBTR", getNumberValue(row, "numberField_l6ujr47g_value"));
+            item.put("DMBTR", getNumberValue(row, "numberField_mi7c3wky"));
             item.put("XREF1", xref1);
             if (!xref2.isEmpty()) {
                 item.put("XREF2", xref2);
@@ -245,7 +242,7 @@ public class NonPoServerImpl implements NonPoServer {
             item.put("HKONT", getString(row, "textField_l6lvt6lj", ""));
             item.put("ZTAXOUT_AMT", "0");
             item.put("MWSKZ", hasTax ? getString(row, "textField_l7a6bzpv", "") : "");
-            item.put("ZTAX_AMT", hasTax ? getNumberValue(row, "numberField_l6vu65fp_value") : "0");
+            item.put("ZTAX_AMT", hasTax ? getNumberValue(row, "numberField_l6vu65fp") : "0");
             item.put("SGTXT", getString(row, "textField_mejfoonz", ""));
             itemArray.add(item);
         }
@@ -342,294 +339,295 @@ public class NonPoServerImpl implements NonPoServer {
                 YDConf.FORM_OPERATION.update
         );
     }
-//    @Override
-//    public void NonPoinsetSAP0005(String type, String InstanceId) {
-//        YDParam ydParam = _getYDTokenKPD();
-//        ydParam.setFormInstanceId(InstanceId);
-//        DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
-//        Map dataForm = ddr.getFormData();
-//        // dataForm.put("InstanceId", InstanceId);
-//        JSONObject sapJson = new JSONObject();
-//        JSONObject upJson = new JSONObject();
-//        String PD = (String) dataForm.get("radioField_mj13wplt");//是否生成SAP凭证
-//        String SAPID = (String) dataForm.get("textField_mejezfwk");//SAP凭证号码
-///**
-// * 是否需要生成SAP凭证
-// */
-//        if (PD.equals("是")) {
-//
-//            // 添加顶级键值对
-//            sapJson.put("ZDUEDATE", CusutUtil.getFormatDate((Long) dataForm.get("dateField_mejfoonv"))); //Due date / 到期日
-//            sapJson.put("BKTXT", dataForm.get("textareaField_mejfoonw"));//备注  抬头文本
-//            sapJson.put("ZOA_NUMBER", dataForm.get("textField_mi73dy3n")); //钉钉单据号
-//            if (dataForm.get("selectField_mejfoona").equals("收据支付")) {//☑ 票据支付时 代码ZINVOICE_AMT 默认ZPAY_AMT的值
-//                sapJson.put("ZINVOICE_AMT", dataForm.get("numberField_mejfoool_value").equals("") ? "0" : dataForm.get("numberField_mejfoool_value"));//支付金额
-//            } else {
-//                sapJson.put("ZINVOICE_AMT", dataForm.get("numberField_mejfoook_value").equals("") ? "0" : dataForm.get("numberField_mejfoook_value"));//发票总额
-//            }
-//
-//            sapJson.put("BANKA", dataForm.get("textField_mejfoon9")); //开户行
-//            sapJson.put("BLDAT", CusutUtil.getFormatDate((Long) dataForm.get("dateField_l9nsavm3"))); //凭证日期ƒ   Date / 申请日期
-//            String uid = "TEST-CN001";
-//            String uname = "";
-//            if (!dataForm.get("employeeField_mhxdzya9_id").equals("")) {
-//
-//                List<Map<String, Object>> conditions = new ArrayList<>(Arrays.asList(buildCondition("textField_l6dddg5k", dataForm.get("employeeField_mhxdzya9_id"), "TEXT", "eq", "TextField")));
-//                String listJson = JSON.toJSONString(conditions);
-//                YDParam YGydParam = _getYDTokenZXXZ(listJson);
-//                List<Map> dataList = (List<Map>) ydClient.queryData(YGydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
-//                if (dataList != null && dataList.size() > 0) {
-//                    Map map = dataList.get(0);
-//                    Map formData = (Map) map.get("formData");
-//                    uid = formData.get("textField_l6djch1m").toString();
-//                    uid = "CHN-0" + uid;
-//                }
-//            }
-//            //  uid = "CHN-01000332";//测试过账人
-//            sapJson.put("USNAM", uid);   //过账人
-//            sapJson.put("BUDAT", CusutUtil.getFormatDate((Long) dataForm.get("dateField_mhxdzyaa")));  //过账日期
-//            sapJson.put("ZOA_TYPE", dataForm.get("selectField_mejfoona").equals("无票预付") ? "AD" : "NP");//OA单据类型
-//            sapJson.put("ZPAY_AMT", dataForm.get("numberField_mejfoool_value").equals("") ? "0" : dataForm.get("numberField_mejfoool_value")); //支付金额
-//            sapJson.put("BUKRS", dataForm.get("textField_mejfj9iw"));//公司代码
-//            sapJson.put("BANKN", dataForm.get("textField_mejfoon8")); //银行账号
-//            sapJson.put("WAERS", dataForm.get("selectField_mejfoong")); //币种
-//            sapJson.put("KOINH", dataForm.get("textField_mejezfwl")); //收款方名称
-//            sapJson.put("LIFNR", dataForm.get("textField_mejezfwv"));//供应商代码
-//            sapJson.put("interface_id", "SAP005");
-//            //获取子表
-//            if (dataForm.get("selectField_mejfoona").equals("发票支付")) {
-//                sapJson.put("BLART", "Z2");//凭证类型
-//                JSONArray itemArray = new JSONArray();
-//                int x = 1;//OA单据行号累计用
-//                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
-//                if (tableFils != null && tableFils.size() > 0) {
-//                    for (int n = 0; n < tableFils.size(); n++) {
-//                        Map<String, Object> row = new HashMap(tableFils.get(n));
-//
-//
-//                        JSONObject itemObj = new JSONObject();
-//                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi5kjmwk"))); //成本中心
-//                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_l6ujr47g_value")));  //不含税金额
-//                        itemObj.put("XREF1", "");//参考码  9000242
-//
-//                        String sjItemNo = "";
-//                        if (x < 10) {
-//                            sjItemNo += "00" + x;
-//                        } else if (x < 100) {
-//                            sjItemNo += "0" + x;
-//                        } else {
-//                            sjItemNo += x;
-//                        }
-//                        x++;
-//                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
-//                        itemObj.put("HKONT", String.valueOf(row.get("textField_l6lvt6lj"))); //会计科目
-//                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
-//                        itemObj.put("MWSKZ", String.valueOf(row.get("textField_l7a6bzpv")));///税码
-//                        itemObj.put("ZTAX_AMT", String.valueOf(row.get("numberField_l6vu65fp_value")).equals("") ? "0" : String.valueOf(row.get("numberField_l6vu65fp_value")));  //税额
-//                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mejfoonz")));  //行项目文本
-//
-//
-//                        itemArray.put(itemObj);
-//                    }
-//
-//
-//                }
-//
-//                sapJson.put("ITEM", itemArray);
-//            } else if (dataForm.get("selectField_mejfoona").equals("无票预付")) {
-//
-//                sapJson.put("BLART", "Z4");//凭证类型
-//                sapJson.put("UMSKZ", "A");//特别总账标识
-//                JSONArray SapItem = new JSONArray();       //子表
-//                JSONObject itemObject = new JSONObject();
-//                itemObject.put("ZOA_ITEMNO", "001");       //OA单据行号
-//                itemObject.put("HKONT", "");       //会计科目
-//                itemObject.put("KOSTL", "");       //成本中心
-//                BigDecimal bigBhsje = new BigDecimal(dataForm.get("numberField_mejfoool_value").toString());//改大数
-//                bigBhsje = bigBhsje.setScale(2, RoundingMode.HALF_UP);
-//                itemObject.put("DMBTR", bigBhsje);       //不含税金额
-//
-////                itemObject.put("DMBTR", object.get("numberField_l6bwb4hg").toString());       //不含税金额--支付金额
-//                itemObject.put("MWSKZ", "");       //税码
-//                itemObject.put("ZTAX_AMT", "0");       //税额
-//                itemObject.put("ZTAXOUT_AMT", "0");       //进项税转出金额
-//                itemObject.put("SGTXT", "");       //行项目文本
-//                itemObject.put("XREF1", dataForm.get("textareaField_mejfoonw")); //cir项目号
-//
-//                SapItem.put(itemObject);
-//                sapJson.put("ITEM", SapItem);
-//            } else if (dataForm.get("selectField_mejfoona").equals("收据支付")) {
-//
-//                sapJson.put("BLART", "Z2");//凭证类型
-//                JSONArray itemArray = new JSONArray();
-//                int x = 1;//OA单据行号累计用
-//                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_mi7c3wl9");
-//                if (tableFils != null && tableFils.size() > 0) {
-//                    for (int n = 0; n < tableFils.size(); n++) {
-//                        Map<String, Object> row = new HashMap(tableFils.get(n));
-//                        JSONObject itemObj = new JSONObject();
-//                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi7c3wku"))); //成本中心
-//                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_mi7c3wky_value")));  //不含税金额
-//                        itemObj.put("XREF1", "");//参考码  9000242
-//                        String sjItemNo = "";
-//                        if (x < 10) {
-//                            sjItemNo += "00" + x;
-//                        } else if (x < 100) {
-//                            sjItemNo += "0" + x;
-//                        } else {
-//                            sjItemNo += x;
-//                        }
-//                        x++;
-//                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
-//                        itemObj.put("HKONT", String.valueOf(row.get("textField_mi7c3wl5"))); //会计科目
-//                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
-//                        itemObj.put("MWSKZ", "");///税码
-//                        itemObj.put("ZTAX_AMT", "0");  //税额
-//                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mi7c3wkn")));  //行项目文本
-//                        itemArray.put(itemObj);
-//                    }
-//
-//                }
-//                sapJson.put("ITEM", itemArray);
-//            } else if (dataForm.get("selectField_mejfoona").equals("100%清预付款")) {
-//                String XREF1 = "";
-//                String XREF2 = "";
-//                /***
-//                 *  获取参考代码1 2
-//                 */
-//
-//                List<Map<String, Object>> XREFlist = (List<Map<String, Object>>) dataForm.get("tableField_mi8q495e");
-//
-//                if (XREFlist != null && !XREFlist.isEmpty()) {
-//                    if (XREFlist.size() == 1) {
-//                        Map<String, Object> row = XREFlist.get(0);
-//                        XREF1 = row.get("textField_mi5kjmwk") != null ? row.get("textField_mi5kjmwk").toString() : "";
-//                    } else {
-//                        // 多于一条,按时间戳降序排序
-//                        XREFlist.sort((a, b) -> {
-//                            Long timeA = a.get("dateField_mj13wpls") instanceof Number
-//                                    ? ((Number) a.get("dateField_mj13wpls")).longValue()
-//                                    : 0L;
-//                            Long timeB = b.get("dateField_mj13wpls") instanceof Number
-//                                    ? ((Number) b.get("dateField_mj13wpls")).longValue()
-//                                    : 0L;
-//                            return Long.compare(timeB, timeA); // 降序:最新在前
-//                        });
-//
-//                        // 取前两条
-//                        XREF1 = XREFlist.get(0).get("textField_mi5kjmwk") != null
-//                                ? XREFlist.get(0).get("textField_mi5kjmwk").toString() : "";
-//                        XREF2 = XREFlist.get(1).get("textField_mi5kjmwk") != null
-//                                ? XREFlist.get(1).get("textField_mi5kjmwk").toString() : "";
-//                    }
-//                }
-//
-//
-//                sapJson.put("BLART", "Z2");//凭证类型
-//                JSONArray itemArray = new JSONArray();
-//                int x = 1;//OA单据行号累计用
-//                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
-//                if (tableFils != null && tableFils.size() > 0) {
-//                    for (int n = 0; n < tableFils.size(); n++) {
-//                        Map<String, Object> row = new HashMap(tableFils.get(n));
-//
-//
-//                        JSONObject itemObj = new JSONObject();
-//                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi5kjmwk"))); //成本中心
-//                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_l6ujr47g_value")));  //不含税金额
-//                        itemObj.put("XREF1", XREF1);//参考码1
-//                        itemObj.put("XREF2", XREF2);//参考码2
-//                        String sjItemNo = "";
-//                        if (x < 10) {
-//                            sjItemNo += "00" + x;
-//                        } else if (x < 100) {
-//                            sjItemNo += "0" + x;
-//                        } else {
-//                            sjItemNo += x;
-//                        }
-//                        x++;
-//                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
-//                        itemObj.put("HKONT", String.valueOf(row.get("textField_l6lvt6lj"))); //会计科目
-//                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
-//                        itemObj.put("MWSKZ", String.valueOf(row.get("textField_l7a6bzpv")));///税码
-//                        itemObj.put("ZTAX_AMT", String.valueOf(row.get("numberField_l6vu65fp_value")).equals("") ? "0" : String.valueOf(row.get("numberField_l6vu65fp_value")));  //税额
-//                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mejfoonz")));  //行项目文本
-//
-//
-//                        itemArray.put(itemObj);
-//                    }
-//
-//
-//                }
-//
-//                sapJson.put("ITEM", itemArray);
-//            }
-//
-//
-//            /***
-//             * 调用接口
-//             */
-//            System.out.println(sapJson);
-//            log.info("发起POST请求:URL={},参数={}", QA_sapUrl + "SAP005", sapJson);
-//            String post = HttpUtil.post(QA_sapUrl + "SAP005", null, sapJson.toString(), null);
-//            log.info(dataForm.get("textField_mi73dy3n") + "POST反馈={}", post);
-//            System.out.println("POST反馈=====" + post);
-//            if (!post.equals("")) {
-//                JSONArray jsonArray = new JSONArray(post);
-//                if (jsonArray.size() > 0) {
-//                    String voucherNumber = "";
-//                    try {
-//                        cn.hutool.json.JSONObject postJsonObject = jsonArray.getJSONObject(0);
-//                        String E_SYSMSGTYPE = postJsonObject.getStr("E_SYSMSGTYPE");//状态
-//                        String E_MESSAGE = postJsonObject.getStr("E_MESSAGE");//SAP005 接口 反馈值
-//                        if (E_SYSMSGTYPE.equals("S")) {
-//                            String e_belnr = postJsonObject.getStr("E_BELNR");
-//                            if (e_belnr.contains(";")) {
-//                                String[] split = e_belnr.split(";");
-//                                try {
-//                                    e_belnr = split[0];//+ ";";
-//                                } catch (Exception ex) {
-//                                    e_belnr = ";";
-//                                }
-//
-//                            }
-//                            voucherNumber = e_belnr;
-//                            String E_GJAHR = postJsonObject.getStr("E_GJAHR");//凭证年度
-//                            //   执行完加入,把更改表单凭证数据
-//                            ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_l9nsavm2, textField_mejezfwk, textareaField_mi5kjmxb, selectField_mi72r4s6", E_GJAHR, e_belnr, E_MESSAGE, "成功"))).build(), YDConf.FORM_OPERATION.update);
-//
-//                            /**
-//                             * 执行勾选发票
-//                             */
-//                            if (dataForm.get("selectField_mejfoona").equals("发票支付")) {
-//                                FPGX(InstanceId, voucherNumber, (String) dataForm.get("textField_mi73dy3n"));
-//                            }
-//                        } else {
-//                            //  报错写入
-//                            ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi5kjmxb, selectField_mi72r4s6", E_MESSAGE, "失败"))).build(), YDConf.FORM_OPERATION.update);
-//
-//                        }
-//
-//
-//                    } catch (Exception ex) {
-//                    }
-//                } else {
-//
-//
-//                }
-//
-//            } else {
-//
-//                //  报错写入
-//                ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi5kjmxb, selectField_mi72r4s6", post, "失败"))).build(), YDConf.FORM_OPERATION.update);
-//
-//            }
-//        } else if (PD.equals("否") && !SAPID.equals("")) {
-//            FPGX(InstanceId, SAPID, (String) dataForm.get("textField_mi73dy3n"));
-//        }
-//
-//
-//    }
+
+    //    @Override
+    public void NonPoinsetSAP0005(String type, String InstanceId) {
+        YDParam ydParam = _getYDTokenKPD();
+        ydParam.setFormInstanceId(InstanceId);
+        DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
+        Map dataForm = ddr.getFormData();
+        // dataForm.put("InstanceId", InstanceId);
+        JSONObject sapJson = new JSONObject();
+        JSONObject upJson = new JSONObject();
+        String PD = (String) dataForm.get("selectField_mj1cq2oz");//是否生成SAP凭证
+        String SAPID = (String) dataForm.get("textField_mejezfwk");//SAP凭证号码
+        String SFXCFK = (String) dataForm.get("radioField_mj1gc7qe");//仅携程付款是否
+/**
+ * 是否需要生成SAP凭证
+ */
+        if (("否".equals(PD) && !SAPID.equals("")) || "是".equals(SFXCFK)) {
+            FPGX(InstanceId, SAPID, (String) dataForm.get("textField_mi73dy3n"));
+        } else if (!"否".equals(PD)) {
+            // 添加顶级键值对
+            sapJson.put("ZDUEDATE", CusutUtil.getFormatDate((Long) dataForm.get("dateField_mejfoonv"))); //Due date / 到期日
+            sapJson.put("BKTXT", dataForm.get("textareaField_mejfoonw"));//备注  抬头文本
+            sapJson.put("ZOA_NUMBER", dataForm.get("textField_mi73dy3n")); //钉钉单据号
+            if (dataForm.get("selectField_mejfoona").equals("收据支付")) {//☑ 票据支付时 代码ZINVOICE_AMT 默认ZPAY_AMT的值
+                sapJson.put("ZINVOICE_AMT", dataForm.get("numberField_mejfoool_value").equals("") ? "0" : dataForm.get("numberField_mejfoool_value"));//支付金额
+            } else {
+                sapJson.put("ZINVOICE_AMT", dataForm.get("numberField_mejfoook_value").equals("") ? "0" : dataForm.get("numberField_mejfoook_value"));//发票总额
+            }
+
+            sapJson.put("BANKA", dataForm.get("textField_mejfoon9")); //开户行
+            sapJson.put("BLDAT", CusutUtil.getFormatDate((Long) dataForm.get("dateField_l9nsavm3"))); //凭证日期ƒ   Date / 申请日期
+            String uid = "TEST-CN001";
+            String uname = "";
+            if (!dataForm.get("employeeField_mhxdzya9_id").equals("")) {
+
+                List<Map<String, Object>> conditions = new ArrayList<>(Arrays.asList(buildCondition("textField_l6dddg5k", dataForm.get("employeeField_mhxdzya9_id"), "TEXT", "eq", "TextField")));
+                String listJson = JSON.toJSONString(conditions);
+                YDParam YGydParam = _getYDTokenZXXZ(listJson);
+                List<Map> dataList = (List<Map>) ydClient.queryData(YGydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
+                if (dataList != null && dataList.size() > 0) {
+                    Map map = dataList.get(0);
+                    Map formData = (Map) map.get("formData");
+                    uid = formData.get("textField_l6djch1m").toString();
+                    uid = "CHN-0" + uid;
+                }
+            }
+            //  uid = "CHN-01000332";//测试过账人
+            sapJson.put("USNAM", uid);   //过账人
+            sapJson.put("BUDAT", CusutUtil.getFormatDate((Long) dataForm.get("dateField_mhxdzyaa")));  //过账日期
+            sapJson.put("ZOA_TYPE", dataForm.get("selectField_mejfoona").equals("无票预付") || dataForm.get("selectField_mejfoona").equals("100%清预付款") ? "AD" : "NP");//OA单据类型
+            sapJson.put("ZPAY_AMT", dataForm.get("numberField_mejfoool_value").equals("") ? "0" : dataForm.get("numberField_mejfoool_value")); //支付金额
+            sapJson.put("BUKRS", dataForm.get("textField_mejfj9iw"));//公司代码
+            sapJson.put("BANKN", dataForm.get("textField_mejfoon8")); //银行账号
+            sapJson.put("WAERS", dataForm.get("selectField_mejfoong")); //币种
+            sapJson.put("KOINH", dataForm.get("textField_mejezfwl")); //收款方名称
+            sapJson.put("LIFNR", dataForm.get("textField_mejezfwv"));//供应商代码
+            sapJson.put("interface_id", "SAP005");
+            //获取子表
+            if (dataForm.get("selectField_mejfoona").equals("发票支付")) {
+                sapJson.put("BLART", "Z2");//凭证类型
+                JSONArray itemArray = new JSONArray();
+                int x = 1;//OA单据行号累计用
+                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
+                if (tableFils != null && tableFils.size() > 0) {
+                    for (int n = 0; n < tableFils.size(); n++) {
+                        Map<String, Object> row = new HashMap(tableFils.get(n));
+
+
+                        JSONObject itemObj = new JSONObject();
+                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi5kjmwk"))); //成本中心
+                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_l6ujr47g_value")));  //不含税金额
+                        itemObj.put("XREF1", "");//参考码  9000242
+
+                        String sjItemNo = "";
+                        if (x < 10) {
+                            sjItemNo += "00" + x;
+                        } else if (x < 100) {
+                            sjItemNo += "0" + x;
+                        } else {
+                            sjItemNo += x;
+                        }
+                        x++;
+                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
+                        itemObj.put("HKONT", String.valueOf(row.get("textField_l6lvt6lj"))); //会计科目
+                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
+                        itemObj.put("MWSKZ", String.valueOf(row.get("textField_l7a6bzpv")));///税码
+                        itemObj.put("ZTAX_AMT", String.valueOf(row.get("numberField_l6vu65fp_value")).equals("") ? "0" : String.valueOf(row.get("numberField_l6vu65fp_value")));  //税额
+                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mejfoonz")));  //行项目文本
+
+
+                        itemArray.put(itemObj);
+                    }
+
+
+                }
+
+                sapJson.put("ITEM", itemArray);
+            } else if (dataForm.get("selectField_mejfoona").equals("无票预付")) {
+
+                sapJson.put("BLART", "Z4");//凭证类型
+                sapJson.put("UMSKZ", "A");//特别总账标识
+                JSONArray SapItem = new JSONArray();       //子表
+                JSONObject itemObject = new JSONObject();
+                itemObject.put("ZOA_ITEMNO", "001");       //OA单据行号
+                itemObject.put("HKONT", "");       //会计科目
+                itemObject.put("KOSTL", "");       //成本中心
+                BigDecimal bigBhsje = new BigDecimal(dataForm.get("numberField_mejfoool_value").toString());//改大数
+                bigBhsje = bigBhsje.setScale(2, RoundingMode.HALF_UP);
+                itemObject.put("DMBTR", bigBhsje);       //不含税金额
+
+//                itemObject.put("DMBTR", object.get("numberField_l6bwb4hg").toString());       //不含税金额--支付金额
+                itemObject.put("MWSKZ", "");       //税码
+                itemObject.put("ZTAX_AMT", "0");       //税额
+                itemObject.put("ZTAXOUT_AMT", "0");       //进项税转出金额
+                itemObject.put("SGTXT", "");       //行项目文本
+                itemObject.put("XREF1", dataForm.get("textareaField_mejfoonw")); //cir项目号
+
+                SapItem.put(itemObject);
+                sapJson.put("ITEM", SapItem);
+            } else if (dataForm.get("selectField_mejfoona").equals("收据支付")) {
+
+                sapJson.put("BLART", "Z2");//凭证类型
+                JSONArray itemArray = new JSONArray();
+                int x = 1;//OA单据行号累计用
+                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_mi7c3wl9");
+                if (tableFils != null && tableFils.size() > 0) {
+                    for (int n = 0; n < tableFils.size(); n++) {
+                        Map<String, Object> row = new HashMap(tableFils.get(n));
+                        JSONObject itemObj = new JSONObject();
+                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi7c3wku"))); //成本中心
+                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_mi7c3wky_value")));  //不含税金额
+                        itemObj.put("XREF1", "");//参考码  9000242
+                        String sjItemNo = "";
+                        if (x < 10) {
+                            sjItemNo += "00" + x;
+                        } else if (x < 100) {
+                            sjItemNo += "0" + x;
+                        } else {
+                            sjItemNo += x;
+                        }
+                        x++;
+                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
+                        itemObj.put("HKONT", String.valueOf(row.get("textField_mi7c3wl5"))); //会计科目
+                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
+                        itemObj.put("MWSKZ", "");///税码
+                        itemObj.put("ZTAX_AMT", "0");  //税额
+                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mi7c3wkn")));  //行项目文本
+                        itemArray.put(itemObj);
+                    }
+
+                }
+                sapJson.put("ITEM", itemArray);
+            } else if (dataForm.get("selectField_mejfoona").equals("100%清预付款")) {
+                String XREF1 = "";
+                String XREF2 = "";
+                /***
+                 *  获取参考代码1 2
+                 */
+
+                List<Map<String, Object>> XREFlist = (List<Map<String, Object>>) dataForm.get("tableField_mi8q495e");
+
+                if (XREFlist != null && !XREFlist.isEmpty()) {
+                    if (XREFlist.size() == 1) {
+                        Map<String, Object> row = XREFlist.get(0);
+                        XREF1 = row.get("textField_mi5kjmwk") != null ? row.get("textField_mi5kjmwk").toString() : "";
+                    } else {
+                        // 多于一条,按时间戳降序排序
+                        XREFlist.sort((a, b) -> {
+                            Long timeA = a.get("dateField_mj13wpls") instanceof Number
+                                    ? ((Number) a.get("dateField_mj13wpls")).longValue()
+                                    : 0L;
+                            Long timeB = b.get("dateField_mj13wpls") instanceof Number
+                                    ? ((Number) b.get("dateField_mj13wpls")).longValue()
+                                    : 0L;
+                            return Long.compare(timeB, timeA); // 降序:最新在前
+                        });
+
+                        // 取前两条
+                        XREF1 = XREFlist.get(0).get("textField_mi8q495f") != null
+                                ? XREFlist.get(0).get("textField_mi8q495f").toString() : "";
+                        XREF2 = XREFlist.get(1).get("textField_mi8q495f") != null
+                                ? XREFlist.get(1).get("textField_mi8q495f").toString() : "";
+                    }
+                }
+
+
+                sapJson.put("BLART", "Z2");//凭证类型
+                JSONArray itemArray = new JSONArray();
+                int x = 1;//OA单据行号累计用
+                List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
+                if (tableFils != null && tableFils.size() > 0) {
+                    for (int n = 0; n < tableFils.size(); n++) {
+                        Map<String, Object> row = new HashMap(tableFils.get(n));
+
+
+                        JSONObject itemObj = new JSONObject();
+                        itemObj.put("KOSTL", String.valueOf(row.get("textField_mi5kjmwk"))); //成本中心
+                        itemObj.put("DMBTR", String.valueOf(row.get("numberField_l6ujr47g_value")));  //不含税金额
+                        itemObj.put("XREF1", XREF1);//参考码1
+                        itemObj.put("XREF2", XREF2);//参考码2
+                        String sjItemNo = "";
+                        if (x < 10) {
+                            sjItemNo += "00" + x;
+                        } else if (x < 100) {
+                            sjItemNo += "0" + x;
+                        } else {
+                            sjItemNo += x;
+                        }
+                        x++;
+                        itemObj.put("ZOA_ITEMNO", sjItemNo);//OA单据行号
+                        itemObj.put("HKONT", String.valueOf(row.get("textField_l6lvt6lj"))); //会计科目
+                        itemObj.put("ZTAXOUT_AMT", "0");//进项税转出金额  、、、 String.valueOf(row.get("numberField_l6bx7hqk_value"))
+                        itemObj.put("MWSKZ", String.valueOf(row.get("textField_l7a6bzpv")));///税码
+                        itemObj.put("ZTAX_AMT", String.valueOf(row.get("numberField_l6vu65fp_value")).equals("") ? "0" : String.valueOf(row.get("numberField_l6vu65fp_value")));  //税额
+                        itemObj.put("SGTXT", String.valueOf(row.get("textField_mejfoonz")));  //行项目文本
+
+
+                        itemArray.put(itemObj);
+                    }
+
+
+                }
+
+                sapJson.put("ITEM", itemArray);
+            }
+
+
+            /***
+             * 调用接口
+             */
+            System.out.println(sapJson);
+            log.info("发起POST请求:URL={},参数={}", QA_sapUrl + "SAP005", sapJson);
+            String post = HttpUtil.post(QA_sapUrl + "SAP005", null, sapJson.toString(), null);
+            log.info(dataForm.get("textField_mi73dy3n") + "POST反馈={}", post);
+            System.out.println("POST反馈=====" + post);
+            if (!post.equals("")) {
+                JSONArray jsonArray = new JSONArray(post);
+                if (jsonArray.size() > 0) {
+                    String voucherNumber = "";
+                    try {
+                        cn.hutool.json.JSONObject postJsonObject = jsonArray.getJSONObject(0);
+                        String E_SYSMSGTYPE = postJsonObject.getStr("E_SYSMSGTYPE");//状态
+                        String E_MESSAGE = postJsonObject.getStr("E_MESSAGE");//SAP005 接口 反馈值
+                        if (E_SYSMSGTYPE.equals("S")) {
+                            String e_belnr = postJsonObject.getStr("E_BELNR");
+                            if (e_belnr.contains(";")) {
+                                String[] split = e_belnr.split(";");
+                                try {
+                                    e_belnr = split[0];//+ ";";
+                                } catch (Exception ex) {
+                                    e_belnr = ";";
+                                }
+
+                            }
+                            voucherNumber = e_belnr;
+                            String E_GJAHR = postJsonObject.getStr("E_GJAHR");//凭证年度
+                            //   执行完加入,把更改表单凭证数据
+                            ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_l9nsavm2, textField_mejezfwk, textareaField_mi5kjmxb, selectField_mi72r4s6", E_GJAHR, e_belnr, E_MESSAGE, "成功"))).build(), YDConf.FORM_OPERATION.update);
+
+                            /**
+                             * 执行勾选发票
+                             */
+                            if (dataForm.get("selectField_mejfoona").equals("发票支付")) {
+                                FPGX(InstanceId, voucherNumber, (String) dataForm.get("textField_mi73dy3n"));
+                            }
+                        } else {
+                            //  报错写入
+                            ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi5kjmxb, selectField_mi72r4s6", E_MESSAGE, "失败"))).build(), YDConf.FORM_OPERATION.update);
+
+                        }
+
+
+                    } catch (Exception ex) {
+                    }
+                } else {
+
+
+                }
+
+            } else {
+
+                //  报错写入
+                ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi5kjmxb, selectField_mi72r4s6", post, "失败"))).build(), YDConf.FORM_OPERATION.update);
+
+            }
+        }
+
+
+    }
 
     /***
      * 发票勾选处理
@@ -659,15 +657,20 @@ public class NonPoServerImpl implements NonPoServer {
             request.put("applytime", nowDate);
             request.put("bookeepflag", "1");
             request.put("syssource", "第三方系统规定");
-
             JSONArray invoices = new JSONArray();
-            List<String> ids = new ArrayList<>();
-
             for (Map<String, Object> row : tableFils) {
+                if (!row.get("selectField_mepxp7tc").toString().contains("发票") && !row.get("selectField_mepxp7tc").toString().contains("全电")) {
+                    row.put("selectField_mgz2tut4", "不相关");
+                    continue;
+                }
+                if ("".equals(row.get("textField_l6ujr47c"))  ||"泰森(江苏)畜禽业发展有限公司".equals(row.get("textField_l6vk7131") )  ) {
+                    row.put("selectField_mgz2tut4", "不相关");
+                    continue;
+                }
+
                 Object instanceIdObj = row.get("textField_mi1l1tcc");
                 if (instanceIdObj == null) continue;
                 String instanceId = instanceIdObj.toString();
-
                 // 查询发票详情
                 DDR_New invoiceDdr = ydClient.queryData(
                         YDParam.builder()
@@ -680,16 +683,12 @@ public class NonPoServerImpl implements NonPoServer {
                 );
                 Map formdata = invoiceDdr.getFormData();
                 if (formdata == null) continue;
-
-                ids.add(instanceId);
-
                 Map<String, Object> invoice = new LinkedHashMap<>();
                 invoice.put("taxno", safeGetString(formdata, "textField_l6u55vdn"));
                 String fpType = safeGetString(formdata, "textField_l6u55vd8");
                 invoice.put("invoicecode", fpType.contains("全电") ? "全电发票" : safeGetString(formdata, "textField_l6u55vd9"));
                 invoice.put("invoicenumber", safeGetString(formdata, "textField_l6u55vd3"));
                 invoice.put("usetax", safeGetString(formdata, "textField_l6vu65fs"));
-
                 // 税率处理
                 String taxRateStr = safeGetString(formdata, "textField_l6vvuq3f");
                 double taxRate = 0.0;
@@ -707,7 +706,6 @@ public class NonPoServerImpl implements NonPoServer {
                 invoice.put("taxrate", taxRate);
                 invoice.put("autodeduct", "1");
                 invoice.put("oper", "1");
-
                 invoices.add(invoice);
             }
 
@@ -717,10 +715,7 @@ public class NonPoServerImpl implements NonPoServer {
 
             request.put("invoices", invoices);
             List<Map<String, Object>> requestList = Collections.singletonList(request);
-
             String jsonBody = new ObjectMapper().writeValueAsString(requestList);
-            System.out.println(jsonBody);
-
             RestTemplate restTemplate = new RestTemplate();
             String PROXY_URL = "https://poc.cloudpure.cn/api/ts/bookkeeping";
             HttpHeaders headers = new HttpHeaders();
@@ -738,22 +733,20 @@ public class NonPoServerImpl implements NonPoServer {
             JsonNode rootNode = objectMapper.readTree(responseBody);
             JsonNode dataArray = rootNode.path("data");
             String code = rootNode.path("code").asText();
-
             if ("0000".equals(code) && dataArray.isArray() && dataArray.size() > 0) {
                 List<Map> updatedRows = new ArrayList<>();
                 for (int i = 0; i < tableFils.size(); i++) {
                     Map<String, Object> originalRow = tableFils.get(i);
                     String fpInstanceId = safeGetString(originalRow, "textField_mi1l1tcc");
                     String invoiceNoInTable = safeGetString(originalRow, "textField_l6ujr47c");
-
-                    String status = "不相关";
+                    String status = !"".equals(originalRow.get("selectField_mgz2tut4")) ? (String) originalRow.get("selectField_mgz2tut4") : "未勾选";
                     String returnMsg = "";
 
                     // 匹配返回的发票结果
                     for (JsonNode item : dataArray) {
                         String respInvoiceNo = item.path("invoicenumber").asText();
                         returnMsg = item.path("returnmsg").asText();
-                        if (respInvoiceNo.equals(invoiceNoInTable) && !returnMsg.contains("未同步到该发票信息")) {
+                        if (respInvoiceNo.equals(invoiceNoInTable) && returnMsg.contains("申请成功")) {
                             status = "已勾选";
                             break;
                         }
@@ -786,6 +779,8 @@ public class NonPoServerImpl implements NonPoServer {
                                     .build(),
                             YDConf.FORM_OPERATION.update
                     );
+
+
                 }
 
                 // 更新主表单
@@ -802,6 +797,7 @@ public class NonPoServerImpl implements NonPoServer {
                         YDConf.FORM_OPERATION.update
                 );
 
+
             } else {
                 // 接口调用失败或无有效数据
                 updateMainFormError(InstanceId, rootNode.toString());
@@ -836,7 +832,6 @@ public class NonPoServerImpl implements NonPoServer {
     }
 
 
-
 //    @Override
 //    public void FPGX(String InstanceId, String voucherNumber, String OAnumber) {
 //        YDParam ydParam = _getYDTokenKPD();

+ 1 - 1
mjava-ts/src/main/java/com/malk/taisen/service/impl/RtrServerImpl.java

@@ -51,7 +51,7 @@ public class RtrServerImpl implements RtrServer {
         String uid = "CHN-01000332";
         String uname = "";
         if (dataForm.containsKey("employeeField_mizdsqyt_id")&&!dataForm.get("employeeField_mizdsqyt_id").equals("")) {
-            List<Map<String, Object>> conditions = new ArrayList<>(Arrays.asList(buildCondition("textField_l6dddg5k", dataForm.get("employeeField_mejfoon1_id"), "TEXT", "eq", "TextField")));
+            List<Map<String, Object>> conditions = new ArrayList<>(Arrays.asList(buildCondition("textField_l6dddg5k", dataForm.get("employeeField_mizdsqyt_id"), "TEXT", "eq", "TextField")));
             String listJson = JSON.toJSONString(conditions);
             YDParam YGydParam = _getYDTokenZXXZ(listJson);
             List<Map> dataList = (List<Map>) ydClient.queryData(YGydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();