瀏覽代碼

NPO问题处理

chenkang11 16 小時之前
父節點
當前提交
dbc359981b
共有 1 個文件被更改,包括 16 次插入18 次删除
  1. 16 18
      mjava-ts/src/main/java/com/malk/taisen/service/impl/NonPoServerImpl.java

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

@@ -355,13 +355,13 @@ public class NonPoServerImpl implements NonPoServer {
 /**
  * 是否需要生成SAP凭证
  */
-        if ( ("否".equals(PD) && !SAPID.equals("") )||  "是".equals(SFXCFK) ) {
+        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")); //钉钉单据号
+            sapJson.put("ZOA_NUMBER", "NP6510230193"); //钉钉单据号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 {
@@ -657,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()
@@ -678,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;
@@ -705,7 +706,6 @@ public class NonPoServerImpl implements NonPoServer {
                 invoice.put("taxrate", taxRate);
                 invoice.put("autodeduct", "1");
                 invoice.put("oper", "1");
-
                 invoices.add(invoice);
             }
 
@@ -715,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();
@@ -736,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;
                         }
@@ -784,6 +779,8 @@ public class NonPoServerImpl implements NonPoServer {
                                     .build(),
                             YDConf.FORM_OPERATION.update
                     );
+
+
                 }
 
                 // 更新主表单
@@ -800,6 +797,7 @@ public class NonPoServerImpl implements NonPoServer {
                         YDConf.FORM_OPERATION.update
                 );
 
+
             } else {
                 // 接口调用失败或无有效数据
                 updateMainFormError(InstanceId, rootNode.toString());