瀏覽代碼

【华信科小米EDI对接】【测试】

wub 1 周之前
父節點
當前提交
ddf1bd4f10
共有 1 個文件被更改,包括 74 次插入65 次删除
  1. 74 65
      src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

+ 74 - 65
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -51,9 +51,9 @@ public class ERPServiceImpl implements ERPService {
 
             ObjectMapper objectMapper = new ObjectMapper();
             String sign = null;
+            String body = null;
             String decode = URLDecoder.decode(data, StandardCharsets.UTF_8.toString());
             String jsonString = X5StringUtils.decodeBase64(decode);
-
             Map<String, Object> map = objectMapper.readValue(jsonString, Map.class);
 
             if(map.size()>0 && map.get("header")!=null ){
@@ -61,81 +61,90 @@ public class ERPServiceImpl implements ERPService {
                 sign = header_map.get("sign") == null ? "" : header_map.get("sign").toString();
             }
 
+            logger.info("前:"+decode);
             boolean checkSign = X5StringUtils.checkSign(sign, "test", jsonString, "218A05A252469F5A62B0B3204F669E1D");
+            logger.info("前1:"+jsonString);
             if(checkSign || true){
-                if(map.get("body")!=null){
-                    String body = map.get("body") == null ? "" : map.get("body").toString();
-                    String body_qczy = unescapeJsonWithJackson(body);
-                    PurchaseMain purchaseMain = objectMapper.readValue(body_qczy, PurchaseMain.class);
-                    String purord_num = purchaseMain.getPURORD_NUM();
-                    resultSuccessMsg="采购订单:"+purord_num+"处理成功";
-                    resultErrorMsg="采购订单:"+purord_num+"处理失败,";
+                try {
+                    if(map.get("body")!=null){
+                        body = map.get("body") == null ? "" : map.get("body").toString();
+                        PurchaseMain purchaseMain = objectMapper.readValue(body, PurchaseMain.class);
+                        String purord_num = purchaseMain.getPURORD_NUM();
+                        resultSuccessMsg="采购订单:"+purord_num+"处理成功";
+                        resultErrorMsg="采购订单:"+purord_num+"处理失败,";
 
-                    String operation_type = purchaseMain.getOPERATION_TYPE();
-                    if("I".equals(operation_type)){
-                        int count = baseDao.getCount("select * from PurchaseMainXM where PURORD_NUM='" + purord_num + "'");
-                        if (count == 0){
-                            //主表
-                            Map<String, Object> purchaseMain_map = ObjectToMapConverter.objectToMap(purchaseMain);
-                            purchaseMain_map.remove("ET_ITEM");
-                            purchaseMain_map.put("PMXID", 0);
-                            baseDao.execute(SqlUtil.getInsertSql(purchaseMain_map,"PurchaseMainXM","PMXID"));
-                            Object PMXID = baseDao.getFieldDataByCondition("PurchaseMainXM", "PMXID", "GUID='" + purchaseMain_map.get("GUID")+"'");
-                            //从表
-                            List<PurchaseItem> et_item = purchaseMain.getET_ITEM();
-                            for (PurchaseItem purchaseItem:et_item) {
-                                //List<String> ItemSqls = new ArrayList<>();
-                                Map<String, Object> purchaseItem_map = ObjectToMapConverter.objectToMap(purchaseItem);
-                                purchaseItem_map.remove("ET_ITEM_AMOUNT");
-                                purchaseItem_map.put("PIXID",0);
-                                purchaseItem_map.put("PIXPMXID",PMXID);
-                                String insertItemSql = SqlUtil.getInsertSql(purchaseItem_map, "PURCHASEITEMXM", "PIXID");
-                                //ItemSqls.add(insertItemSql);
-                                baseDao.execute(insertItemSql);
-                                Object PIXID = baseDao.getFieldDataByCondition("PURCHASEITEMXM left join PurchaseMainXM on PIXPMXID=PMXID", "PIXID", "GUID='" + purchaseMain_map.get("GUID")+"' and PURORD_ITEM_NUM='"+purchaseItem_map.get("PURORD_ITEM_NUM")+"'");
-                                List<PurchaseItemAmount> et_item_amount = purchaseItem.getET_ITEM_AMOUNT();
-                                List<String> ItemAmountSqls = new ArrayList<>();
-                                for (PurchaseItemAmount purchaseItemAmount:et_item_amount) {
-                                    Map<String, Object> purchaseItemAmount_map = ObjectToMapConverter.objectToMap(purchaseItemAmount);
-                                    purchaseItemAmount_map.put("PIMAID",0);
-                                    purchaseItemAmount_map.put("PIMAPMXID",PMXID);
-                                    purchaseItemAmount_map.put("PIMAPIXID",PIXID);
+                        String operation_type = purchaseMain.getOPERATION_TYPE();
+                        if("I".equals(operation_type)){
+                            int count = baseDao.getCount("select * from PurchaseMainXM where PURORD_NUM='" + purord_num + "'");
+                            if (count == 0){
+                                //主表
+                                Map<String, Object> purchaseMain_map = ObjectToMapConverter.objectToMap(purchaseMain);
+                                purchaseMain_map.remove("ET_ITEM");
+                                purchaseMain_map.put("PMXID", 0);
+                                baseDao.execute(SqlUtil.getInsertSql(purchaseMain_map,"PurchaseMainXM","PMXID"));
+                                Object PMXID = baseDao.getFieldDataByCondition("PurchaseMainXM", "PMXID", "GUID='" + purchaseMain_map.get("GUID")+"'");
+                                //从表
+                                List<PurchaseItem> et_item = purchaseMain.getET_ITEM();
+                                for (PurchaseItem purchaseItem:et_item) {
+                                    //List<String> ItemSqls = new ArrayList<>();
+                                    Map<String, Object> purchaseItem_map = ObjectToMapConverter.objectToMap(purchaseItem);
+                                    purchaseItem_map.remove("ET_ITEM_AMOUNT");
+                                    purchaseItem_map.put("PIXID",0);
+                                    purchaseItem_map.put("PIXPMXID",PMXID);
+                                    String insertItemSql = SqlUtil.getInsertSql(purchaseItem_map, "PURCHASEITEMXM", "PIXID");
+                                    //ItemSqls.add(insertItemSql);
+                                    baseDao.execute(insertItemSql);
+                                    Object PIXID = baseDao.getFieldDataByCondition("PURCHASEITEMXM left join PurchaseMainXM on PIXPMXID=PMXID", "PIXID", "GUID='" + purchaseMain_map.get("GUID")+"' and PURORD_ITEM_NUM='"+purchaseItem_map.get("PURORD_ITEM_NUM")+"'");
+                                    List<PurchaseItemAmount> et_item_amount = purchaseItem.getET_ITEM_AMOUNT();
+                                    List<String> ItemAmountSqls = new ArrayList<>();
+                                    for (PurchaseItemAmount purchaseItemAmount:et_item_amount) {
+                                        Map<String, Object> purchaseItemAmount_map = ObjectToMapConverter.objectToMap(purchaseItemAmount);
+                                        purchaseItemAmount_map.put("PIMAID",0);
+                                        purchaseItemAmount_map.put("PIMAPMXID",PMXID);
+                                        purchaseItemAmount_map.put("PIMAPIXID",PIXID);
 
-                                    String insertItemAmountSql = SqlUtil.getInsertSql(purchaseItemAmount_map, "PURCHASEITEMAMOUNTXM", "PIMAID");
-                                    ItemAmountSqls.add(insertItemAmountSql);
+                                        String insertItemAmountSql = SqlUtil.getInsertSql(purchaseItemAmount_map, "PURCHASEITEMAMOUNTXM", "PIMAID");
+                                        ItemAmountSqls.add(insertItemAmountSql);
+                                    }
+                                    baseDao.execute(ItemAmountSqls);
                                 }
-                                baseDao.execute(ItemAmountSqls);
+                            }else{
+                                //更新
+                                header_result.put("code", "400");
+                                header_result.put("desc", resultErrorMsg+"重复推送,采购单号已存在!");
+                                result.put("header", header_result);
+                                return result;
                             }
                         }else{
-                            //更新
-                            header_result.put("code", "400");
-                            header_result.put("desc", resultErrorMsg+"重复推送,采购单号已存在!");
-                            result.put("header", header_result);
-                            return result;
+                            int count = baseDao.getCount("select * from PurchaseMainXM where PURORD_NUM='" + purord_num + "'");
+                            if (count == 0){
+                                //更新
+                                header_result.put("code", "400");
+                                header_result.put("desc", resultErrorMsg+"采购单号不存在,不能执行更新操作!");
+                                result.put("header", header_result);
+                                return result;
+                            }else{
+                                //更新
+                                header_result.put("code", "200");
+                                header_result.put("desc", resultSuccessMsg+"执行更新操作中!");
+                                result.put("header", header_result);
+                                return result;
+                            }
                         }
+
+                        header_result.put("code", "200");
+                        header_result.put("desc", resultSuccessMsg);
+                        result.put("header", header_result);
                     }else{
-                        int count = baseDao.getCount("select * from PurchaseMainXM where PURORD_NUM='" + purord_num + "'");
-                        if (count == 0){
-                            //更新
-                            header_result.put("code", "400");
-                            header_result.put("desc", resultErrorMsg+"采购单号不存在,不能执行更新操作!");
-                            result.put("header", header_result);
-                            return result;
-                        }else{
-                            //更新
-                            header_result.put("code", "200");
-                            header_result.put("desc", resultSuccessMsg+"执行更新操作中!");
-                            result.put("header", header_result);
-                            return result;
-                        }
+                        header_result.put("code", "400");
+                        header_result.put("desc", resultErrorMsg+"body数据不存在!");
+                        result.put("header", header_result);
+                        return result;
                     }
-
-                    header_result.put("code", "200");
-                    header_result.put("desc", resultSuccessMsg);
-                    result.put("header", header_result);
-                }else{
+                }catch (Exception e){
+                    logger.info("同步收料单异常信息:"+body);
                     header_result.put("code", "400");
-                    header_result.put("desc", resultErrorMsg+"body数据不存在!");
+                    header_result.put("desc", resultErrorMsg+"解析body失败!");
                     result.put("header", header_result);
                     return result;
                 }