Browse Source

【英唐-CATL条码对接】【央仓需求调整】【多供应商批次出货】

wuyx 1 year ago
parent
commit
7c5af6fc66
1 changed files with 33 additions and 21 deletions
  1. 33 21
      src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

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

@@ -367,11 +367,11 @@ public class ERPServiceImpl implements ERPService {
         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 " +
-                "  ,sum(CD_QTY) zmount,cd_wflag zwidth,min(cd_lotno) 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  " +
+                "  ,sum(CD_QTY) zmount,cd_wflag zwidth,ca_sendcode||'_'||ca_code||'_'||cd_newboxcode||'_'||to_char(sysdate,'yymmddhh24mi') 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 " +
-                " group by CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark,cd_newboxcode order by min(cd_detno)",id);
+                " group by CD_CPN,pr_capacity,pr_zxbzs,cd_wflag,cd_remark,cd_newboxcode,ca_sendcode||'_'||ca_code||'_'||cd_newboxcode||'_'||to_char(sysdate,'yymmddhh24mi') order by min(cd_detno)",id);
         if(!docLoist.hasNext()){
             retMap.put("success",false);
             retMap.put("message","没有需要对接的明细.");
@@ -422,11 +422,21 @@ public class ERPServiceImpl implements ERPService {
                 if (response.getStatusCode() == HttpStatus.OK.value()){
                     String res = response.getResponseText();
                     if(res!=null && !"".equals(res)){
-                        System.out.println("res:"+res);
+//                        System.out.println("res:"+res);
                         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());
+                            for (Map<String,Object> odMap: outdata) {
+                                List<String> odsqls = new ArrayList<>();
+                                odsqls.add("insert into CATLDOC_OUTDATA(CDO_ID, CDO_CAID, CDO_DOCDATE,CDO_CDIDS" +
+                                        ", ZALT_ID, BATCH_ID, MATNR, ZEIVR, ZEIAR, ZLABEL_STOCK, ZLABEL_TRANSFER, PRTBATCHID, ZMANUFACTURING_DATE, ZEFFECTIVE_DATE, WBS, ZREMARKS" +
+                                        ", LEVELS_, ZALT_ID_UPPER)" +
+                                        "values (CATLDOC_OUTDATA_SEQ.NEXTVAL,"+id+",SYSDATE,'"+cd_ids+"'"
+                                        +",'"+odMap.get("zalt_id")+"' ,'"+odMap.get("batch_id")+"' ,'"+odMap.get("matnr")+"' ,'"+odMap.get("zeivr")+"' ,'"+odMap.get("zeiar")+"' ,'"+odMap.get("zlabel_stock")+"' ,'"+odMap.get("zlabel_transfer")+"' ,'"+odMap.get("prtbatchid")+"' ,'"+odMap.get("zmanufacturing_date")+"' ,'"+odMap.get("zeffective_date")+"' ,'"+odMap.get("wbs") +"' ,'"+odMap.get("zremarks")+"' " +
+                                        ",'"+odMap.get("levels")+"' ,'"+odMap.get("zalt_id_upper")+"')");
+                                baseDao.execute(odsqls);
+                            }
                             //栈ID 对应外箱
 //                            List<Map<String,Object>> palletIdList = outdata.stream().filter(od->{
 //                                return (Double.valueOf(od.get("levels").toString().trim()) == 0);
@@ -466,20 +476,22 @@ public class ERPServiceImpl implements ERPService {
                                             ",cd_batchid='"+idMap.get("batch_id")+"',cd_wbs='"+idMap.get("wbs")+"',cd_zeivr='" +zeivr+"',cd_zeiar='"+zeiar+"' "+
                                             " where cd_id = "+updateMap.get("cd_id"));
                                     //更新内箱、内包装袋真实DC LOTNO
-                                    Map<String,Object> updatePanMap = new HashMap<>();
-                                    updatePanMap.put("matnr",matnr);//物料号
-                                    updatePanMap.put("zalt_id",panId);//贴纸ID
-                                    updatePanMap.put("prtbatchid",updateMap.get("cd_lotno"));//供应商批次
-                                    updatePanMap.put("manufacturing_date",updateMap.get("cd_dc"));//生产日期
-                                    updatePanMap.put("atlyx",updateMap.get("cd_ed"));//有效日期
-                                    updateStickerList.add(updatePanMap);
-                                    Map<String,Object> updateBoxMap = new HashMap<>();
-                                    updateBoxMap.put("matnr",matnr);//物料号
-                                    updateBoxMap.put("zalt_id",boxId);//贴纸ID
-                                    updateBoxMap.put("prtbatchid",updateMap.get("cd_lotno"));//供应商批次
-                                    updateBoxMap.put("manufacturing_date",updateMap.get("cd_dc"));//生产日期
-                                    updateBoxMap.put("atlyx",updateMap.get("cd_ed"));//有效日期
-                                    updateStickerList.add(updateBoxMap);
+                                    if(!idMap.get("prtbatchid").equals(updateMap.get("cd_lotno"))){
+                                        Map<String,Object> updatePanMap = new HashMap<>();
+                                        updatePanMap.put("matnr",matnr);//物料号
+                                        updatePanMap.put("zalt_id",panId);//贴纸ID
+                                        updatePanMap.put("prtbatchid",updateMap.get("cd_lotno"));//供应商批次
+                                        updatePanMap.put("manufacturing_date",updateMap.get("cd_dc"));//生产日期
+                                        updatePanMap.put("atlyx",updateMap.get("cd_ed"));//有效日期
+                                        updateStickerList.add(updatePanMap);
+                                        Map<String,Object> updateBoxMap = new HashMap<>();
+                                        updateBoxMap.put("matnr",matnr);//物料号
+                                        updateBoxMap.put("zalt_id",boxId);//贴纸ID
+                                        updateBoxMap.put("prtbatchid",updateMap.get("cd_lotno"));//供应商批次
+                                        updateBoxMap.put("manufacturing_date",updateMap.get("cd_dc"));//生产日期
+                                        updateBoxMap.put("atlyx",updateMap.get("cd_ed"));//有效日期
+                                        updateStickerList.add(updateBoxMap);
+                                    }
                                 }
                                 // 更新栈ID、箱ID、袋ID
                                 if(sqls.size()>0){
@@ -519,14 +531,14 @@ public class ERPServiceImpl implements ERPService {
         if(errMsg.length()>0){
 //            System.out.println("errMsg:"+errMsg.toString());
             retMap.put("success",false);
-            retMap.put("message","对接失败:</br>"+errMsg.toString());
+            retMap.put("message","对接失败,请取消条码重新创建:</br>"+errMsg.toString());
         }else {
             baseDao.execute("update CatlDoc set CA_DOCSTATE=1 where ca_id = "+id);
         }
         if(errMsg.length()>0){
 //            System.out.println("errMsg:"+errMsg.toString());
             retMap.put("success",false);
-            retMap.put("message","对接失败:</br>"+errMsg.toString());
+            retMap.put("message","对接失败,请取消条码重新创建:</br>"+errMsg.toString());
         }else {
             baseDao.execute("update CatlDoc set CA_DOCSTATE=1 where ca_id = "+id);
         }