From 81808d6e407b8b5a8d3c4d6225a3148114733f90 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期五, 06 六月 2025 10:17:59 +0800 Subject: [PATCH] #修改出库方式为按楼层东西区出,自动选择对应出库站点 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 163 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 129 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 395bd6a..adae54a 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -7,10 +7,7 @@ import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.EmptyPlateOutParam; -import com.zy.asrs.entity.param.FullStoreParam; -import com.zy.asrs.entity.param.LocDetlAdjustParam; -import com.zy.asrs.entity.param.StockOutParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.model.*; @@ -155,31 +152,81 @@ return null; } +// @Override +// @Transactional +// public void startupFullTakeStore(StockOutFloorParam param, Long userId) { +// // 鐩爣绔欑偣鐘舵�佹娴� +// BasDevp staNo = null; +// // 鑾峰彇搴撲綅鏄庣粏 +// List<LocDetlDto> locDetlDtos = new ArrayList<>(); +// for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) { +// staNo = basDevpService.checkSiteStatus(paramLocDetl.getSiteId()); +// +// if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { +// LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl); +// if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); +// } +// } +// if (!locDetlDtos.isEmpty()) { +// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); +// if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { +// // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 +// stockOut(staNo, locDetlDtos, null, userId); +// } else { +// throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); +// } +// } else { +// throw new CoolException("搴撳瓨涓嶅瓨鍦�"); +// } +// } + @Override @Transactional - public void startupFullTakeStore(StockOutParam param, Long userId) { - // 鐩爣绔欑偣鐘舵�佹娴� - BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); - // 鑾峰彇搴撲綅鏄庣粏 - List<LocDetlDto> locDetlDtos = new ArrayList<>(); - for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { + public void startupFullTakeStore(StockOutFloorParam param, Long userId) { + // 鎸� siteId 鍒嗙粍 + Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>(); + + for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl); - if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); + if (one != null) { + LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount()); + Integer siteId = paramLocDetl.getSiteId(); + + if (siteId != null) { + siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto); + } + } } } - if (!locDetlDtos.isEmpty()) { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); - if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { - // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 - stockOut(staNo, locDetlDtos, null, userId); - } else { - throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); - } - } else { + + if (siteIdToLocDetlsMap.isEmpty()) { throw new CoolException("搴撳瓨涓嶅瓨鍦�"); } + + // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱 + for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) { + Integer siteId = entry.getKey(); + List<LocDetlDto> locDetlDtos = entry.getValue(); + + // 鏍¢獙搴撲綅鐘舵�� + LocMast locMast = locMastService.selectOne( + new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()) + ); + + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { + // 鏍¢獙鐩爣绔欑偣 + BasDevp staNo = basDevpService.checkSiteStatus(siteId); + + // 鎵ц鍑哄簱 + stockOut(staNo, locDetlDtos, null, userId); + } else { + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); + } + } } + @Override @Transactional @@ -653,29 +700,77 @@ return wrkMast; } +// @Override +// @Transactional +// public void locCheckOut(StockOutParam param, Long userId) { +// // 鐩爣绔欑偣鐘舵�佹娴� +// BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); +// // 鑾峰彇搴撲綅鏄庣粏 +// List<LocDetlDto> locDetlDtos = new ArrayList<>(); +// for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { +// if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { +// LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl); +// if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); +// } +// } +// if (!locDetlDtos.isEmpty()) { +// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); +// if (locMast.getLocSts().equals("F")) { +// // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 +// stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId); +// } else { +// throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); +// } +// } else { +// throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�"); +// } +// } + @Override @Transactional - public void locCheckOut(StockOutParam param, Long userId) { - // 鐩爣绔欑偣鐘舵�佹娴� - BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); - // 鑾峰彇搴撲綅鏄庣粏 - List<LocDetlDto> locDetlDtos = new ArrayList<>(); - for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { + public void locCheckOut(StockOutFloorParam param, Long userId) { + + // 鎸� siteId 鍒嗙粍 + Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>(); + + for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl); - if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); + if (one != null) { + LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount()); + Integer siteId = paramLocDetl.getSiteId(); + + if (siteId != null) { + siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto); + } + } } } - if (!locDetlDtos.isEmpty()) { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); - if (locMast.getLocSts().equals("F")) { - // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 + + if (siteIdToLocDetlsMap.isEmpty()) { + throw new CoolException("搴撳瓨涓嶅瓨鍦�"); + } + + // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱 + for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) { + Integer siteId = entry.getKey(); + List<LocDetlDto> locDetlDtos = entry.getValue(); + + // 鏍¢獙搴撲綅鐘舵�� + LocMast locMast = locMastService.selectOne( + new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()) + ); + + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { + // 鏍¢獙鐩爣绔欑偣 + BasDevp staNo = basDevpService.checkSiteStatus(siteId); + + // 鎵ц鍑哄簱 stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId); } else { - throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); } - } else { - throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�"); } } -- Gitblit v1.9.1