소스 검색

【英唐-CATL条码对接】【避免重复对接】

wuyx 7 달 전
부모
커밋
16589ba0c6
1개의 변경된 파일33개의 추가작업 그리고 27개의 파일을 삭제
  1. 33 27
      src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

+ 33 - 27
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -366,16 +366,17 @@ public class ERPServiceImpl implements ERPService {
         retMap.put("success",true);
         logger.info("createStickerByCenter-Begin:master {} id {}",master,id);
         SpObserver.putSp(master);
-        SqlRowList docLoist = baseDao.queryForRowSet("select cd_cpn,min(CD_DC) ztcnno,pr_capacity zzbsmount,pr_zxbzs zzxsmount,pr_zxbzs zbzsmount ,cd_newboxcode " +
+        SqlRowList docList = baseDao.queryForRowSet("select cd_cpn,min(CD_DC) ztcnno,pr_capacity zzbsmount,pr_zxbzs zzxsmount,pr_zxbzs zbzsmount ,cd_newboxcode " +
                 "  ,sum(CD_QTY) zmount,cd_wflag zwidth,ca_code||'_'||cd_newboxcode zzstz " +
                 "  ,cd_newboxcode||(case when cd_remark is not null then ' '||cd_remark else '' end) zremark,count(1) codecount,wm_concat(cd_id) cd_ids  " +
                 "from CatlDocDetail left join product on pr_code = CD_PRCODE left join CatlDoc on ca_id = cd_caid " +
-                "where cd_caid = ? and nvl(pr_capacity,0)>0 and CD_PANID is null " +
+                "where cd_caid = ? and nvl(pr_capacity,0)>0 " +
+                "and CD_PANID is null "+
                 " group by CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark,cd_newboxcode,ca_code||'_'||cd_newboxcode order by min(cd_detno)",id);
-        if(!docLoist.hasNext()){
+        if(!docList.hasNext()){
             retMap.put("success",false);
             retMap.put("message","没有需要对接的明细.");
-            logger.info("createStickerByCenter-F:master {} id {} no docLoist!",master,id);
+            logger.info("createStickerByCenter-F:master {} id {} no docList!",master,id);
         }
         Object[] obs = baseDao.getFieldsDataByCondition("YITOA_DATACENTER.dock_catl_config A "
                 , new String[]{"URL_","deipaaskeyauth","appKey", "appSecret","VENDCODE"}
@@ -399,27 +400,35 @@ public class ERPServiceImpl implements ERPService {
         String deipaasjwt = "Bearer "+tokenMap.get("token");
         map.put("deipaasjwt",deipaasjwt);
         StringBuffer errMsg = new StringBuffer();
-        for (Map<String,Object> docMap: docLoist.getResultList()) {
-            try {
-                // CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark
-                String matnr = String.valueOf(docMap.get("cd_cpn"));
-                String zwidth = StringUtil.nvl(docMap.get("zwidth"),"");
-                String zremark = StringUtil.nvl(docMap.get("zremark"),"");
-                String cd_ids = StringUtil.nvl(docMap.get("cd_ids"),"0");
-                Map<String,Object> paraMap=new HashMap<>();
-                paraMap.put("matnr",matnr);//物料号:客户料号
-                paraMap.put("ztcnno",docMap.get("ztcnno"));//制造日期: 取最小DC
-                paraMap.put("zzstz",docMap.get("zzstz"));//供应商批次: 用最小批次作为虚拟批次
+        List<Map<String, Object>> docMapList = docList.getResultList();
+        for (int j = 0; j < docMapList.size(); j++) {
+            Map<String,Object> docMap = docMapList.get(j);
+            // CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark
+            String matnr = String.valueOf(docMap.get("cd_cpn"));
+            String zwidth = StringUtil.nvl(docMap.get("zwidth"),"");
+            String zremark = StringUtil.nvl(docMap.get("zremark"),"");
+            String cd_ids = StringUtil.nvl(docMap.get("cd_ids"),"0");
+            Map<String,Object> paraMap=new HashMap<>();
+            paraMap.put("matnr",matnr);//物料号:客户料号
+            paraMap.put("ztcnno",docMap.get("ztcnno"));//制造日期: 取最小DC
+            paraMap.put("zzstz",docMap.get("zzstz"));//供应商批次: 用最小批次作为虚拟批次
 //				paraMap.put("zeiar",docMap.get("zeiar"));//版本
-                paraMap.put("zwidth",zwidth);//宽度
-                paraMap.put("zmount",docMap.get("zmount"));//本次生产总数量
-                paraMap.put("zzbsmount",docMap.get("zzbsmount"));//栈板容量
-                paraMap.put("zzxsmount",docMap.get("zzxsmount"));//纸箱容量
-                paraMap.put("zbzsmount",docMap.get("zbzsmount"));//包装袋容量
-                paraMap.put("zremark",zremark);//备注
-                paraMap.put("partner",vendcode);//供应商编码 固定值
-                logger.info("createSticker-begin: zremark {} matnr {} zmount {} zzbsmount {} zzxsmount {} zbzsmount {}"
+            paraMap.put("zwidth",zwidth);//宽度
+            paraMap.put("zmount",docMap.get("zmount"));//本次生产总数量
+            paraMap.put("zzbsmount",docMap.get("zzbsmount"));//栈板容量
+            paraMap.put("zzxsmount",docMap.get("zzxsmount"));//纸箱容量
+            paraMap.put("zbzsmount",docMap.get("zbzsmount"));//包装袋容量
+            paraMap.put("zremark",zremark);//备注
+            paraMap.put("partner",vendcode);//供应商编码 固定值
+            logger.info("createSticker-begin: zremark {} matnr {} zmount {} zzbsmount {} zzxsmount {} zbzsmount {}"
+                    , zremark,matnr,docMap.get("zmount"),docMap.get("zzbsmount"),docMap.get("zzxsmount"),docMap.get("zbzsmount"));
+            boolean isDoc = baseDao.checkIf("CatlDocDetail " ," cd_caid = "+id+" and CD_PANID is null and CD_id in ("+cd_ids+") ");
+            if(!isDoc){
+                logger.info("createSticker-F-重复: zremark {} matnr {} zmount {} zzbsmount {} zzxsmount {} zbzsmount {}"
                         , zremark,matnr,docMap.get("zmount"),docMap.get("zzbsmount"),docMap.get("zzxsmount"),docMap.get("zbzsmount"));
+                continue;
+            }
+            try {
                 HttpUtil.Response response = HttpUtil.doPost(url+action, JacksonUtil.toJson(paraMap), deipaaskeyauth,deipaasjwt);
                 if (response.getStatusCode() == HttpStatus.OK.value()){
                     String res = response.getResponseText();
@@ -428,7 +437,6 @@ public class ERPServiceImpl implements ERPService {
                         Map<String,Object> resData = JacksonUtil.fromJson(res);
                         if("S".equals(String.valueOf(resData.get("e_type")))){
                             List<Map<String,Object>> outdata = (List) resData.get("outdata");
-                            System.out.println("outdata.size:"+outdata.size());
                             logger.info("outdata.size {}", outdata.size());
                             for (Map<String,Object> odMap: outdata) {
                                 List<String> odsqls = new ArrayList<>();
@@ -456,8 +464,6 @@ public class ERPServiceImpl implements ERPService {
                             String zeiar = StringUtil.nvl(outdata.get(0).get("zeiar"),"");
                             //更新箱ID、袋ID
                             List<String> sqls = new ArrayList<>();
-                            // CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark
-                            // matnr,zwidth,zremark
                             SqlRowList updateList = baseDao.queryForRowSet("select cd_id,cd_lotno,cd_dc,nvl(cd_ed,to_char(to_date(cd_dc,'yyyymmdd')+365,'yyyymmdd')) cd_ed from CatlDocDetail " +
                                     " where cd_caid = "+id+" and CD_PANID is null and CD_id in ("+cd_ids+") order by cd_detno");
                             List<Map<String,Object>> updateStickerList = new ArrayList<>();
@@ -500,6 +506,7 @@ public class ERPServiceImpl implements ERPService {
                                 if(sqls.size()>0){
                                     baseDao.execute(sqls);
                                     //第二个接口 更新供应商批次
+                                    logger.info("updateSticker-begin: cd_ids {}", cd_ids);
                                     Map<String,Object> updateStickerMap = updateStickerByList(master, id,map,updateStickerList);
                                     if(!(boolean) updateStickerMap.get("success")){
                                         errMsg.append("更新供应商批次失败:客户料号:"+matnr).append(updateStickerMap.get("message")).append("</br>");
@@ -602,7 +609,6 @@ public class ERPServiceImpl implements ERPService {
         String appSecret = map.get("appSecret");
         String deipaasjwt = map.get("deipaasjwt");
         String action="/SNC/outer_SNC_updateGyspc?sap-client=810&interfacename=ZIRFC_TP2SNC_UPDATEGYSPC";
-        logger.info("updateSticker-begin: action {}", action);
         Map<String,Object> paraMap=new HashMap<>();
         paraMap.put("inputdata",updateLists);
         StringBuffer errMsg = new StringBuffer();