diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java index 2fc485a..e372fe2 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java @@ -109,29 +109,31 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { } DynamicObjectCollection shkd_mapping = shkd_apimapping.getDynamicObjectCollection("shkd_mapping"); + for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) { DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), sourcebillnumber); String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json:"+saveRequestBody); Map resultMap = new HashMap<>(); String res=""; - switch (shkd_jrrzxx){ - case "1": - case "2": - case "3": - case "4": - res = doPost(shkd_url,headMap,saveRequestBody,null); - logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 - String flag = otherIsJsonRS.getString("flag"); - if ("0".equals(flag)||"null".equals(flag)||flag==null){//失败 - resultMap.put("shkd_issuccess",false);//是否成功 - bei_elecreceipt.set("shkd_sfcgtsgx",false); + Boolean tiaoguo =false; + if ("1".equals(shkd_jrrzxx)){//记录所有 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); }else { - JSONArray datas = otherIsJsonRS.getJSONArray("data"); JSONObject data = datas.getJSONObject(0); String dataflag = data.getString("FLAG"); - if ("0".equals(dataflag)||"null".equals(dataflag)||dataflag==null){ + if (resError(dataflag)){ resultMap.put("shkd_issuccess",false);//是否成功 bei_elecreceipt.set("shkd_sfcgtsgx",false); }else { @@ -139,27 +141,107 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { bei_elecreceipt.set("shkd_sfcgtsgx",true); } } - break; - case "5": - res=""; + } + } else if ("2".equals(shkd_jrrzxx)) {//只记录失败的 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 resultMap.put("shkd_issuccess",false);//是否成功 bei_elecreceipt.set("shkd_sfcgtsgx",false); - break; - default: - System.out.println("无效的选项"); - break; + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + if ((Boolean) resultMap.get("shkd_issuccess")){ + tiaoguo=true; + } + }else if ("3".equals(shkd_jrrzxx)) {//只记录成功的 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + if ((Boolean) resultMap.get("shkd_issuccess")){ + }else { + tiaoguo=true; + } + }else if ("4".equals(shkd_jrrzxx)) {//不记录 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + tiaoguo=true; + }else if ("5".equals(shkd_jrrzxx)) {//只记录不推送 + resultMap.put("shkd_issuccess",false);//是否成功 + }else { + break; } - logger.info("单据"+bei_elecreceipt.getString("billno")+"返回json:"+res); resultMap.put("shkd_requesturl",shkd_url);//请求地址 resultMap.put("shkd_request",saveRequestBody);//请求体 resultMap.put("shkd_response",res);//响应数据 resultMap.put("shkd_thirdpartysys","浪潮");//第三方系统 resultMap.put("shkd_calldescription","司库->浪潮");//第三方系统 - - DynamicObject[] objects = (DynamicObject[]) saveThePushLog(resultMap); - String billno = objects[0].getString("billno");//对应日志编号 - bei_elecreceipt.set("shkd_tsgxrzwybs",billno);//推送共享日志唯一标识 + logger.info("resultMap:"+resultMap); + if (!tiaoguo){ + DynamicObject[] objects = (DynamicObject[]) saveThePushLog(resultMap); + String billno = objects[0].getString("billno");//对应日志编号 + bei_elecreceipt.set("shkd_tsgxrzwybs",billno);//推送共享日志唯一标识 + } bei_elecreceipt.set("shkd_tsgxrtime",new Date());//推送共享时间 SaveServiceHelper.update(bei_elecreceipt); } @@ -410,11 +492,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { value = dynamicObjectCollection.get(0).getString(parts[1]); } } else if (shkd_djzdms.contains(".")) { - String[] parts = shkd_djzdms.split("\\."); - DynamicObject dynamicObject = bei_elecreceipt.getDynamicObject(parts[0]); - if (dynamicObject!=null){ - value = dynamicObject.getString(parts[1]); - } + value = bei_elecreceipt.getString(shkd_djzdms); }else { value = bei_elecreceipt.getString(shkd_djzdms); } @@ -507,4 +585,11 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); return save; } + + /* + * 检查是否失败的结果 + * */ + private Boolean resError(String flag){ + return "0".equals(flag)||"null".equals(flag)||flag==null||"false".equals(flag); + } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java index 9ce450f..3a0720d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java @@ -111,21 +111,24 @@ public class SharePushTaskPlugin extends AbstractTask { logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json:"+saveRequestBody); Map resultMap = new HashMap<>(); String res=""; - switch (shkd_jrrzxx){ - case "1": - case "2": - case "3": - case "4": - res = doPost(shkd_url,headMap,saveRequestBody,null); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 - String flag = otherIsJsonRS.getString("flag"); - if ("0".equals(flag)||"null".equals(flag)||flag==null){//失败 - resultMap.put("shkd_issuccess",false);//是否成功 + Boolean tiaoguo =false; + if ("1".equals(shkd_jrrzxx)){//记录所有 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); }else { - JSONArray datas = otherIsJsonRS.getJSONArray("data"); JSONObject data = datas.getJSONObject(0); String dataflag = data.getString("FLAG"); - if ("0".equals(dataflag)||"null".equals(dataflag)||dataflag==null){ + if (resError(dataflag)){ resultMap.put("shkd_issuccess",false);//是否成功 bei_elecreceipt.set("shkd_sfcgtsgx",false); }else { @@ -133,27 +136,107 @@ public class SharePushTaskPlugin extends AbstractTask { bei_elecreceipt.set("shkd_sfcgtsgx",true); } } - break; - case "5": - res=""; + } + } else if ("2".equals(shkd_jrrzxx)) {//只记录失败的 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 resultMap.put("shkd_issuccess",false);//是否成功 bei_elecreceipt.set("shkd_sfcgtsgx",false); - break; - default: - System.out.println("无效的选项"); - break; + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + if ((Boolean) resultMap.get("shkd_issuccess")){ + tiaoguo=true; + } + }else if ("3".equals(shkd_jrrzxx)) {//只记录成功的 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + if ((Boolean) resultMap.get("shkd_issuccess")){ + }else { + tiaoguo=true; + } + }else if ("4".equals(shkd_jrrzxx)) {//不记录 + res = doPost(shkd_url,headMap,saveRequestBody,null); + logger.info("单据"+bei_elecreceipt.getString("billno")+"返回信息:"+res); + JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + String flag = otherIsJsonRS.getString("flag"); + if (resError(flag)){//失败 + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + JSONArray datas = otherIsJsonRS.getJSONArray("data"); + if (datas==null){ + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + }else { + JSONObject data = datas.getJSONObject(0); + String dataflag = data.getString("FLAG"); + if (resError(dataflag)){ + resultMap.put("shkd_issuccess",false);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",false); + }else { + resultMap.put("shkd_issuccess",true);//是否成功 + bei_elecreceipt.set("shkd_sfcgtsgx",true); + } + } + } + tiaoguo=true; + }else if ("5".equals(shkd_jrrzxx)) {//只记录不推送 + resultMap.put("shkd_issuccess",false);//是否成功 + }else { + break; } - logger.info("单据"+bei_elecreceipt.getString("billno")+"返回json:"+res); resultMap.put("shkd_requesturl",shkd_url);//请求地址 resultMap.put("shkd_request",saveRequestBody);//请求体 resultMap.put("shkd_response",res);//响应数据 resultMap.put("shkd_thirdpartysys","浪潮");//第三方系统 resultMap.put("shkd_calldescription","司库->浪潮");//第三方系统 - - DynamicObject[] objects = (DynamicObject[]) saveThePushLog(resultMap); - String billno = objects[0].getString("billno");//对应日志编号 - bei_elecreceipt.set("shkd_tsgxrzwybs",billno);//推送共享日志唯一标识 + logger.info("resultMap:"+resultMap); + if (!tiaoguo){ + DynamicObject[] objects = (DynamicObject[]) saveThePushLog(resultMap); + String billno = objects[0].getString("billno");//对应日志编号 + bei_elecreceipt.set("shkd_tsgxrzwybs",billno);//推送共享日志唯一标识 + } bei_elecreceipt.set("shkd_tsgxrtime",new Date());//推送共享时间 SaveServiceHelper.update(bei_elecreceipt); } @@ -400,11 +483,7 @@ public class SharePushTaskPlugin extends AbstractTask { value = dynamicObjectCollection.get(0).getString(parts[1]); } } else if (shkd_djzdms.contains(".")) { - String[] parts = shkd_djzdms.split("\\."); - DynamicObject dynamicObject = bei_elecreceipt.getDynamicObject(parts[0]); - if (dynamicObject!=null){ - value = dynamicObject.getString(parts[1]); - } + value = bei_elecreceipt.getString(shkd_djzdms); }else { value = bei_elecreceipt.getString(shkd_djzdms); } @@ -497,4 +576,12 @@ public class SharePushTaskPlugin extends AbstractTask { Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); return save; } + + /* + * 检查是否失败的结果 + * */ + private Boolean resError(String flag){ + return "0".equals(flag)||"null".equals(flag)||flag==null||"false".equals(flag); + } + }