| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069 |
- package com.malk.taisen.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.fasterxml.jackson.databind.JsonNode;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.malk.taisen.util.CusutUtil;
- import com.malk.taisen.util.HttpUtil;
- import cn.hutool.json.JSONArray;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.dingtalk.DDR_New;
- import com.malk.service.aliwork.YDClient;
- import com.malk.service.aliwork.YDService;
- import com.malk.service.dingtalk.DDClient;
- import com.malk.taisen.service.NonPoServer;
- import com.malk.utils.UtilMap;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.http.HttpEntity;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Service;
- import org.springframework.web.client.RestTemplate;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- @Slf4j
- @Service
- public class NonPoServerImpl implements NonPoServer {
- @Autowired
- private YDClient ydClient;
- @Autowired
- private YDService ydService;
- @Autowired
- private DDClient ddClient;
- /**
- * 测试地址
- */
- 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_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 方法)===
- // 注意:这些方法必须定义在类中,但未扩展主逻辑
- private String getString(Map map, String key, String defaultValue) {
- Object val = map.get(key);
- return val instanceof String ? (String) val : defaultValue;
- }
- private String getNumberValue(Map map, String key) {
- Object val = map.get(key);
- if (val == null || "".equals(val)) return "0";
- return val.toString();
- }
- private Long getDateTimestamp(Map map, String key) {
- Object val = map.get(key);
- if (val instanceof Number) {
- return ((Number) val).longValue();
- }
- return 0L;
- }
- private String formatDate(Map map, String dateKey) {
- Object val = map.get(dateKey);
- if (val instanceof Long) {
- return CusutUtil.getFormatDate((Long) val);
- }
- return "";
- }
- @SuppressWarnings("unchecked")
- private List<Map<String, Object>> getList(Map map, String key) {
- Object val = map.get(key);
- if (val instanceof List) {
- return (List<Map<String, Object>>) val;
- }
- return null;
- }
- private String getPostingUserUid(Map dataForm) {
- String empId = dataForm.get("employeeField_mhxdzya9_id").toString();
- if (empId.isEmpty()) {
- return "TEST-CN001";
- }
- List<Map<String, Object>> conditions = Arrays.asList(
- buildCondition("textField_l6dddg5k", empId, "TEXT", "eq", "TextField")
- );
- String listJson = JSON.toJSONString(conditions);
- YDParam YGydParam = _getYDTokenZXXZ(listJson);
- DDR_New result = ydClient.queryData(YGydParam, YDConf.FORM_QUERY.retrieve_search_form);
- List<Map> dataList = (List<Map>) result.getData();
- if (dataList != null && !dataList.isEmpty()) {
- Map formData = (Map) dataList.get(0).get("formData");
- Object uidObj = formData.get("textField_l6djch1m");
- if (uidObj != null) {
- return "CHN-0" + uidObj.toString();
- }
- }
- return "TEST-CN001";
- }
- private void buildInvoicePaymentItems(Map dataForm, String tableKey, JSONArray itemArray) {
- buildCommonItems(dataForm, tableKey, itemArray, true, "", "");
- }
- private void buildReceiptPaymentItems(Map dataForm, String tableKey, JSONArray itemArray) {
- buildCommonItems(dataForm, tableKey, itemArray, false, "", "");
- }
- private void buildClearAdvanceItems(Map dataForm, String tableKey, String xref1, String xref2, JSONArray itemArray) {
- buildCommonItems(dataForm, tableKey, itemArray, true, xref1, xref2);
- }
- private void buildCommonItems(Map dataForm, String tableKey, JSONArray itemArray, boolean hasTax, String xref1, String xref2) {
- List<Map<String, Object>> rows = getList(dataForm, tableKey);
- if (rows == null || rows.isEmpty()) return;
- int index = 1;
- for (Map<String, Object> row : rows) {
- JSONObject item = new JSONObject();
- item.put("KOSTL", getString(row, "textField_mi5kjmwk", ""));
- item.put("DMBTR", getNumberValue(row, "numberField_mi7c3wky"));
- item.put("XREF1", xref1);
- if (!xref2.isEmpty()) {
- item.put("XREF2", xref2);
- }
- item.put("ZOA_ITEMNO", formatItemNo(index++));
- 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") : "0");
- item.put("SGTXT", getString(row, "textField_mejfoonz", ""));
- itemArray.add(item);
- }
- }
- private void buildAdvancePaymentItem(Map dataForm, JSONArray itemArray) {
- JSONObject item = new JSONObject();
- item.put("ZOA_ITEMNO", "001");
- item.put("HKONT", "");
- item.put("KOSTL", "");
- item.put("MWSKZ", "");
- item.put("ZTAX_AMT", "0");
- item.put("ZTAXOUT_AMT", "0");
- item.put("SGTXT", "");
- String payAmtStr = getNumberValue(dataForm, "numberField_mejfoool_value");
- try {
- BigDecimal amt = new BigDecimal(payAmtStr).setScale(2, RoundingMode.HALF_UP);
- item.put("DMBTR", amt);
- } catch (Exception e) {
- item.put("DMBTR", "0");
- }
- item.put("XREF1", getString(dataForm, "textareaField_mejfoonw", ""));
- itemArray.add(item);
- }
- private String formatItemNo(int index) {
- if (index < 10) return "00" + index;
- if (index < 100) return "0" + index;
- return String.valueOf(index);
- }
- private void handleSapResponse(String post, String instanceId, Map dataForm, String paymentType) {
- if (post == null || post.trim().isEmpty()) {
- updateFormStatus(instanceId, post, "失败");
- return;
- }
- try {
- JSONArray jsonArray = new JSONArray(post);
- if (jsonArray.isEmpty()) {
- updateFormStatus(instanceId, "Empty response", "失败");
- return;
- }
- cn.hutool.json.JSONObject resp = jsonArray.getJSONObject(0);
- String msgType = resp.getStr("E_SYSMSGTYPE");
- String message = resp.getStr("E_MESSAGE");
- if ("S".equals(msgType)) {
- String e_belnr = resp.getStr("E_BELNR");
- if (e_belnr != null && e_belnr.contains(";")) {
- e_belnr = e_belnr.split(";")[0];
- }
- String year = resp.getStr("E_GJAHR");
- updateFormStatus(instanceId, year, e_belnr, message, "成功");
- if ("发票支付".equals(paymentType)) {
- FPGX(instanceId, e_belnr, getString(dataForm, "textField_mi73dy3n", ""));
- }
- } else {
- updateFormStatus(instanceId, message, "失败");
- }
- } catch (Exception ex) {
- log.error("解析 SAP 响应失败", ex);
- updateFormStatus(instanceId, "Response parse error: " + ex.getMessage(), "失败");
- }
- }
- private void updateFormStatus(String instanceId, String field1, String field2, String field3, String status) {
- ydClient.operateData(
- YDParam.builder()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formInstanceId(instanceId)
- .updateFormDataJson(JSON.toJSONString(UtilMap.map(
- "textField_l9nsavm2, textField_mejezfwk, textareaField_mi5kjmxb, selectField_mi72r4s6",
- field1, field2, field3, status)))
- .build(),
- YDConf.FORM_OPERATION.update
- );
- }
- private void updateFormStatus(String instanceId, String message, String status) {
- ydClient.operateData(
- YDParam.builder()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formInstanceId(instanceId)
- .updateFormDataJson(JSON.toJSONString(UtilMap.map(
- "textareaField_mi5kjmxb, selectField_mi72r4s6",
- message, status)))
- .build(),
- 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("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")); //钉钉单据号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%清预付款") || 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_memejxqp")).equals("") ? "0" : String.valueOf(row.get("numberField_memejxqp"))); //税额
- 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_mi8q495f") != null ? row.get("textField_mi8q495f").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_memejxqp")).equals("") ? "0" : String.valueOf(row.get("numberField_memejxqp"))); //税额
- itemObj.put("SGTXT", String.valueOf(row.get("textField_mejfoonz"))); //行项目文本
- 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_mi8q495f") != null ? row.get("textField_mi8q495f").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_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", 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_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);
- }
- /***
- * 调用接口
- */
- 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("发票支付") || dataForm.get("selectField_mejfoona").equals("100%清预付款")) {
- 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);
- }
- }
- }
- /***
- * 发票勾选处理
- * @param InstanceId
- * @param voucherNumber
- */
- @Override
- public void FPGX(String InstanceId, String voucherNumber, String OAnumber) {
- try {
- YDParam ydParam = _getYDTokenKPD();
- ydParam.setFormInstanceId(InstanceId);
- DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
- Map dataForm = ddr.getFormData();
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
- if (tableFils == null || tableFils.isEmpty()) {
- return;
- }
- String nowDate = CusutUtil.getNowDate();
- Map<String, Object> request = new LinkedHashMap<>();
- request.put("voucherNumber", voucherNumber);
- request.put("voucherstatus", "0");
- request.put("voucherdate", nowDate);
- request.put("applytime", nowDate);
- request.put("bookeepflag", "1");
- request.put("syssource", "第三方系统规定");
- JSONArray invoices = new JSONArray();
- 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()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formUuid("FORM-4J7669A1Z1X22RIL61LB7AOXGRX82OHP45U6L51")
- .formInstanceId(instanceId)
- .build(),
- YDConf.FORM_QUERY.retrieve_id
- );
- Map formdata = invoiceDdr.getFormData();
- if (formdata == null) continue;
- 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;
- if (!taxRateStr.isEmpty()) {
- try {
- if (taxRateStr.endsWith("%")) {
- taxRate = Double.parseDouble(taxRateStr.substring(0, taxRateStr.lastIndexOf('%'))) / 100.0;
- } else {
- taxRate = Double.parseDouble(taxRateStr) / 100.0;
- }
- } catch (NumberFormatException ignored) {
- taxRate = 0.0;
- }
- }
- invoice.put("taxrate", taxRate);
- invoice.put("autodeduct", "1");
- invoice.put("oper", "1");
- invoices.add(invoice);
- }
- if (invoices.isEmpty()) {
- return;
- }
- request.put("invoices", invoices);
- List<Map<String, Object>> requestList = Collections.singletonList(request);
- String jsonBody = new ObjectMapper().writeValueAsString(requestList);
- RestTemplate restTemplate = new RestTemplate();
- String PROXY_URL = "https://poc.cloudpure.cn/api/ts/bookkeeping";
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON);
- HttpEntity<String> entity = new HttpEntity<>(jsonBody, headers);
- ResponseEntity<String> response = restTemplate.postForEntity(PROXY_URL, entity, String.class);
- String responseBody = response.getBody();
- if (responseBody == null) {
- updateMainFormError(InstanceId, "Empty response from bookkeeping API");
- return;
- }
- ObjectMapper objectMapper = new ObjectMapper();
- 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 = originalRow.containsKey("selectField_mgz2tut4") && !"".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("申请成功")) {
- status = "已勾选";
- break;
- }
- }
- if ("不相关".equals(status)) {
- returnMsg = "";
- }
- // 构建更新后的行数据
- Map<String, Object> updatedRow = new HashMap<>(originalRow);
- updatedRow.put("selectField_mgz2tut4", status);
- updatedRow.put("textareaField_mi5kjmxc", returnMsg);
- // 保留级联字段原始ID(防止丢失)
- Object cascadeId = originalRow.get("cascadeSelectField_mejfoony_id");
- if (cascadeId != null) {
- updatedRow.put("cascadeSelectField_mejfoony", cascadeId);
- }
- updatedRows.add(updatedRow);
- // 更新发票子表单状态
- Map<String, Object> fpUpdateMap = new HashMap<>();
- fpUpdateMap.put("textField_l7efm5az", status);
- fpUpdateMap.put("textField_l7efm5ay", "是");
- fpUpdateMap.put("textField_lz0v4x8o", voucherNumber);
- fpUpdateMap.put("textField_lz0v4x8p", OAnumber);
- ydClient.operateData(
- YDParam.builder()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formInstanceId(fpInstanceId)
- .updateFormDataJson(JSON.toJSONString(fpUpdateMap))
- .build(),
- YDConf.FORM_OPERATION.update
- );
- }
- // 更新主表单
- Map<String, Object> mainUpdate = new HashMap<>();
- mainUpdate.put("tableField_l6ujr47b", updatedRows);
- mainUpdate.put("textareaField_mi7et0wm", rootNode.toString());
- ydClient.operateData(
- YDParam.builder()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formInstanceId(InstanceId)
- .updateFormDataJson(JSON.toJSONString(mainUpdate))
- .build(),
- YDConf.FORM_OPERATION.update
- );
- } else {
- // 接口调用失败或无有效数据
- updateMainFormError(InstanceId, rootNode.toString());
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- updateMainFormError(InstanceId, "Exception: " + ex.getMessage());
- }
- }
- // === 内联辅助逻辑(以局部方法形式模拟,实际用 private 方法,但按要求不扩展 => 改为内联表达式)===
- // 因不能新增方法,以下逻辑直接内联,但为清晰起见,此处用注释说明“安全获取”逻辑:
- // 实际替换为:(map.get(key) instanceof String ? (String) map.get(key) : "")
- private String safeGetString(Map map, String key) {
- Object val = map.get(key);
- return val instanceof String ? (String) val : "";
- }
- private void updateMainFormError(String instanceId, String errorMsg) {
- ydClient.operateData(
- YDParam.builder()
- .appType("APP_N9NPHVTQLPBPO8MR6WFG")
- .systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW")
- .formInstanceId(instanceId)
- .updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi7et0wm", errorMsg)))
- .build(),
- YDConf.FORM_OPERATION.update
- );
- }
- // @Override
- // public void FPGX(String InstanceId, String voucherNumber, String OAnumber) {
- // YDParam ydParam = _getYDTokenKPD();
- // ydParam.setFormInstanceId(InstanceId);
- // DDR_New ddr = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
- // Map dataForm = ddr.getFormData();
- // try {
- // String nowDate = CusutUtil.getNowDate();
- // List<Map<String, Object>> requestList = new ArrayList<>();
- // Map<String, Object> request = new LinkedHashMap<>();
- // JSONArray invoices = new JSONArray();
- // ArrayList<String> ids = new ArrayList<>();
- // request.put("voucherNumber", voucherNumber);
- // request.put("voucherstatus", "0");
- // request.put("voucherdate", nowDate);
- // request.put("applytime", nowDate);
- // request.put("bookeepflag", "1");
- // request.put("syssource", "第三方系统规定");
- // List<Map> list = new ArrayList<>();
- // List<Map<String, Object>> tableFils = (List<Map<String, Object>>) dataForm.get("tableField_l6ujr47b");
- // if (tableFils != null && tableFils.size() > 0) {
- // list = (List<Map>) dataForm.get("tableField_l6ujr47b");
- // for (int n = 0; n < tableFils.size(); n++) {
- //
- // Map<String, Object> row = new HashMap(tableFils.get(n));
- // Map<Object, Object> invoice = new LinkedHashMap<>();
- //// String substring = row.getString("associationFormField_l6yglav7_id").replaceAll("\\\\", "").substring(1);
- // String instanceId = row.get("textField_mi1l1tcc").toString();
- //
- // Map formdata = ydClient.queryData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-4J7669A1Z1X22RIL61LB7AOXGRX82OHP45U6L51").formInstanceId(instanceId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
- // if (formdata != null) {
- // ids.add(instanceId);
- // JSONObject jsonObject = new JSONObject();
- // invoice.put("taxno", formdata.get("textField_l6u55vdn"));
- // if (formdata.get("textField_l6u55vd8").toString().contains("全电")) {
- // invoice.put("invoicecode", "全电发票");
- // } else {
- // invoice.put("invoicecode", formdata.get("textField_l6u55vd9"));
- // }
- // invoice.put("invoicenumber", formdata.get("textField_l6u55vd3"));
- // invoice.put("usetax", formdata.get("textField_l6vu65fs").toString());
- // try {
- // if (!formdata.containsKey("textField_l6vvuq3f") || formdata.get("textField_l6vvuq3f").equals("")) {
- // formdata.remove("textField_l6vvuq3f");
- // formdata.put("textField_l6vvuq3f", "0");
- // }
- // invoice.put("taxrate", Double.parseDouble(formdata.get("textField_l6vvuq3f").toString().substring(0, formdata.get("textField_l6vvuq3f").toString().lastIndexOf("%"))) / 100);
- // } catch (Exception ex) {
- // try {
- // invoice.put("taxrate", Double.parseDouble(formdata.get("textField_l6vvuq3f").toString()) / 100);
- // } catch (Exception ex2) {
- // invoice.put("taxrate", 0);
- // }
- // }
- // invoice.put("autodeduct", "1");
- // invoice.put("oper", "1");
- // jsonObject.toString();
- // invoices.put(invoice);
- // request.put("invoices", invoices);
- // }
- //
- // }
- // requestList.add(request);
- // String jsonBody = new ObjectMapper().writeValueAsString(requestList);
- // System.out.println(jsonBody.toString());
- // RestTemplate restTemplate = new RestTemplate();
- // String PROXY_URL = "https://poc.cloudpure.cn/api/ts/bookkeeping";
- // HttpHeaders headers = new HttpHeaders();
- // headers.setContentType(MediaType.APPLICATION_JSON);
- // ResponseEntity<String> response = restTemplate.postForEntity(PROXY_URL, new HttpEntity<>(jsonBody, headers), String.class);
- //
- // String responseBody = response.getBody();
- // try {
- // ObjectMapper objectMapper = new ObjectMapper();
- // JsonNode rootNode = objectMapper.readTree(responseBody);
- // ArrayList<Map> maps_YD = new ArrayList<>();
- // HashMap map = new HashMap();
- // // 获取 data 数组
- // JsonNode dataArray = rootNode.get("data");
- // String code = String.valueOf(rootNode.get("code"));
- // // 循环遍历 data 数组
- // if (dataArray.size() > 0 && code.equals("\"0000\"")) {
- //
- // for (int i = 0; i < list.size(); i++) {
- // Map sss2 = (Map) list.get(i);
- // String pd = (String) sss2.get("selectField_mgz2tut4");//发票是否勾选?
- // String fpidInstanceId = (String) sss2.get("textField_mi1l1tcc");//发票实例ID
- //
- // String returnMsg = "";
- // for (JsonNode dataItem : dataArray) {
- // returnMsg = dataItem.get("returnmsg").asText();
- // String invoicenumber = dataItem.get("invoicenumber").asText();
- // if (invoicenumber.equals(sss2.get("textField_l6ujr47c")) && !returnMsg.equals("未同步到该发票信息,请先进行同步发票操作!")) {
- // pd = "已勾选";
- // } else {
- // pd = "不相关";
- // }
- // }
- // sss2.put("cascadeSelectField_mejfoony", list.get(i).get("cascadeSelectField_mejfoony_id"));
- // sss2.put("selectField_mgz2tut4", pd);
- // sss2.put("textareaField_mi5kjmxc", returnMsg);
- // maps_YD.add(sss2);
- // //更改发票信息
- // HashMap FPMAP = new HashMap();
- // FPMAP.put("textField_l7efm5az", pd);
- // FPMAP.put("textField_l7efm5ay", "是");
- // FPMAP.put("textField_lz0v4x8o", voucherNumber);
- // FPMAP.put("textField_lz0v4x8p", OAnumber);
- // ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(fpidInstanceId)).updateFormDataJson(JSON.toJSONString(FPMAP)).build(), YDConf.FORM_OPERATION.update);
- // }
- // map.put("tableField_l6ujr47b", maps_YD);
- // map.put("textareaField_mi7et0wm", rootNode);
- // ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(map)).build(), YDConf.FORM_OPERATION.update);
- //
- // } else {
- //
- // // 报错写入
- // ydClient.operateData(YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formInstanceId(String.valueOf(InstanceId)).updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_mi7et0wm", rootNode))).build(), YDConf.FORM_OPERATION.update);
- //
- //
- // }
- //
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- //
- //
- // }
- //
- // } catch (Exception ex) {
- // ex.printStackTrace();
- // System.out.println(ex);
- // }
- //
- // }
- public YDParam _getYDTokenKPD() {
- /**
- * 泰森付款
- */
- return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").build();
- }
- /**
- * 泰森付款 人员档案表
- */
- public static YDParam _getYDTokenZXXZ(String searchFieldJson) {
- return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-4J7669A10FO250UJ9C6Q7CM00PC62YPW8DD6LT").searchFieldJson(searchFieldJson).build();
- }
- //匹配条件用
- private static final String KEY = "key";
- private static final String VALUE = "value";
- private static final String TYPE = "type";
- private static final String OPERATOR = "operator";
- private static final String COMPONENT_NAME = "componentName";
- private static Map<String, Object> buildCondition(String key, Object value, String type, String operator, String componentName) {
- Map<String, Object> condition = new HashMap<>();
- condition.put(KEY, key);
- condition.put(VALUE, value);
- condition.put(TYPE, type);
- condition.put(OPERATOR, operator);
- condition.put(COMPONENT_NAME, componentName);
- return condition;
- }
- }
|