|
|
@@ -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());
|