|
|
@@ -480,6 +480,11 @@ public class ERPServiceImpl implements ERPService {
|
|
|
List<Map<String,Object>> panIdList = outdata.stream().filter(od->{
|
|
|
return (Double.valueOf(od.get("levels").toString().trim()) == 2);
|
|
|
}).collect(Collectors.toList());
|
|
|
+ // 根据标签ID排序
|
|
|
+ panIdList.sort(Comparator.comparing(
|
|
|
+ pm -> (String) pm.get("zalt_id"),
|
|
|
+ Comparator.nullsFirst(String::compareTo)
|
|
|
+ ));
|
|
|
String zeivr = StringUtil.nvl(outdata.get(0).get("zeivr"),"");
|
|
|
String zeiar = StringUtil.nvl(outdata.get(0).get("zeiar"),"");
|
|
|
//更新箱ID、袋ID
|
|
|
@@ -487,6 +492,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
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<>();
|
|
|
+ Map<String,Map<String,Object>> updateBoxStickers = new HashMap<>();
|
|
|
if(panIdList.size() == updateList.getResultList().size()){
|
|
|
for (int i = 0; i < updateList.getResultList().size(); i++) {
|
|
|
Map<String,Object> updateMap = updateList.getResultList().get(i);
|
|
|
@@ -514,19 +520,45 @@ public class ERPServiceImpl implements ERPService {
|
|
|
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(docMap.get("zzxsmount").equals(docMap.get("zbzsmount"))){//箱容量 = 盘容量 一起更
|
|
|
+ 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);
|
|
|
+ }else {
|
|
|
+ if(!updateBoxStickers.containsKey(boxId)) {
|
|
|
+ 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"));//有效日期
|
|
|
+ updateBoxStickers.put(boxId,updateBoxMap);
|
|
|
+ }else{
|
|
|
+ updateBoxMap = updateBoxStickers.get(boxId);
|
|
|
+ if(DateUtil.compare(updateBoxMap.get("manufacturing_date").toString(),updateMap.get("cd_dc").toString(),Constant.YMD2)>0){//取最小DC
|
|
|
+ updateBoxMap.put("prtbatchid",updateMap.get("cd_lotno"));//供应商批次
|
|
|
+ updateBoxMap.put("manufacturing_date",updateMap.get("cd_dc"));//生产日期
|
|
|
+ updateBoxMap.put("atlyx",updateMap.get("cd_ed"));//有效日期
|
|
|
+ updateBoxStickers.put(boxId,updateBoxMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!docMap.get("zzxsmount").equals(docMap.get("zbzsmount"))){
|
|
|
+ logger.info("updateSticker-begin: boxcode {}", docMap.get("cd_newboxcode"));
|
|
|
+ for(String boxId:updateBoxStickers.keySet()){
|
|
|
+ updateStickerList.add(updateBoxStickers.get(boxId));
|
|
|
+// logger.info("updateSticker-begin: boxId {} LOTNO {} DC {}", boxId,updateBoxStickers.get(boxId).get("prtbatchid"), updateBoxStickers.get(boxId).get("manufacturing_date"));
|
|
|
}
|
|
|
}
|
|
|
// 更新栈ID、箱ID、袋ID
|
|
|
if(sqls.size()>0){
|
|
|
baseDao.execute(sqls);
|
|
|
//第二个接口 更新供应商批次
|
|
|
- logger.info("updateSticker-begin: cd_ids {}", cd_ids);
|
|
|
+// 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>");
|