From 2ded9514aa9a93ee440af0b1437d788fb052028b Mon Sep 17 00:00:00 2001 From: pjb <pjb123456> Date: 星期六, 23 八月 2025 08:36:59 +0800 Subject: [PATCH] wms功能完善 --- src/main/java/com/zy/system/controller/UserController.java | 3 src/main/webapp/static/js/pakStore/stockAdjust.js | 24 src/main/java/com/zy/asrs/controller/MobileController.java | 19 + src/main/java/com/zy/common/web/WcsController.java | 95 ++++++ src/main/java/com/zy/asrs/task/MdqzScheduler.java | 53 +++ src/main/java/com/zy/asrs/entity/WaitPakin.java | 3 src/main/java/com/zy/asrs/entity/param/BarcodeCombParam.java | 49 +++ src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java | 62 ++- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 105 ++++++ src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 46 +++ src/main/java/com/zy/asrs/controller/OutController.java | 16 + src/main/java/com/zy/common/service/CommonService.java | 297 ++++++++++---------- src/main/java/com/zy/asrs/service/MobileService.java | 12 13 files changed, 584 insertions(+), 200 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 6a9a1e9..b6e9244 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -219,6 +219,25 @@ return R.ok("缁勬墭鎴愬姛"); } + @RequestMapping("/getMatInfoByBarcode/auth") + @ManagerAuth(memo = "鏍规嵁鏉$爜鑾峰彇鐗╂枡淇℃伅") + public R getMatInfoByBarcode(@RequestBody CombParam combParam){ + String barcode = combParam.getBarcode(); + if(Cools.isEmpty(barcode)) { + return R.error("鏉$爜涓嶈兘涓虹┖"); + } + return mobileService.getMatInfoByBarcode(barcode); + } + + @RequestMapping("/barcodeComb/auth") +// @ManagerAuth(memo = "鍒涘缓缁勬嫋") + public R barcodeComb(@RequestBody BarcodeCombParam combParam){ + if(Cools.isEmpty(combParam,combParam.getBarcode(),combParam.getCombMats().get(0).getMatnr())) { + return R.error("鏉$爜鍜屽晢鍝佺紪鐮佷笉鑳戒负绌�"); + } + return mobileService.barcodeComb(combParam); + } + @RequestMapping("/pack/get/auth") @ManagerAuth public R packGet(@RequestParam String barcode){ diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 5336d71..b97f668 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -5,11 +5,14 @@ import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; +import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.common.model.LocDto; import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -46,6 +49,9 @@ @Resource private OrderPakoutService orderPakOutService; + + @Resource + private ConfigService configService; @PostMapping("/out/pakout/orderDetlIds/auth") @@ -217,6 +223,16 @@ // ----------------------------------------------------------------------------------------------- for (TaskDto taskDto : taskDtos) { BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); + // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮� + if (staNo.getDevNo() == 1016 || staNo.getDevNo() == 1043) { + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inOrOutBoundMode").eq("status", 1)); + if (config != null && !Cools.isEmpty(config.getValue())) { + int value = Integer.parseInt(config.getValue()); + if (value != 2) { + throw new CoolException("鐩爣绔欑偣" + staNo.getDevNo() + "涓嶆槸鍑哄簱妯″紡锛屽綋鍓嶆ā寮忎负锛�" + value); + } + } + } workService.stockOut(staNo, taskDto, getUserId()); } return R.ok(); diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java index e1bfb4c..fcd113b 100644 --- a/src/main/java/com/zy/asrs/entity/WaitPakin.java +++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java @@ -93,7 +93,8 @@ private Double weight; @ApiModelProperty(value= "闀垮害") - private Double man_length; + @TableField("man_length") + private Double manLength; @ApiModelProperty(value= "浣撶Н") private Double volume; diff --git a/src/main/java/com/zy/asrs/entity/param/BarcodeCombParam.java b/src/main/java/com/zy/asrs/entity/param/BarcodeCombParam.java new file mode 100644 index 0000000..5c545df --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/BarcodeCombParam.java @@ -0,0 +1,49 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +import java.util.List; + +/** + * 鏉$爜缁勬嫋 + */ +@Data +public class BarcodeCombParam { + + // 鎵樼洏鏉$爜 + private String barcode; + private List<CombMat> combMats; + + @Data + public static class CombMat { + + // 鍟嗗搧缂栫爜 + private String matnr; + + // 鍟嗗搧鍚嶇О + private String maktx; + + // 鎵规 + private String batch; + + // 妗跺瀷 + private String model; + + // 鏁伴噺 + private Double anfme; + + // 鐢熶骇鏃ユ湡 + private String manuDate; + + // 鍑�閲� + private Double weight; + + // 姣涢噸 + private Double manLength; + + // 缃愯閲� + private Double volume; + + } + +} diff --git a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java index 381d7c2..b742456 100644 --- a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java +++ b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java @@ -1,9 +1,7 @@ package com.zy.asrs.entity.param; -import com.core.common.Cools; import lombok.Data; -import java.util.ArrayList; import java.util.List; /** @@ -30,33 +28,43 @@ // 鍙樻洿鏁伴噺 private Double count; - public LocDetlAdjust(String matnr, String batch, Double count) { - this.matnr = matnr; - this.batch = batch; - this.count = count; - } + private String zpallet; + + private String model; + + private String manuDate; + + private Double weight; + private Double manLength; + private Double volume; + +// public LocDetlAdjust(String matnr, String batch, Double count) { +// this.matnr = matnr; +// this.batch = batch; +// this.count = count; +// } } - public void integrate() { - if (Cools.isEmpty(list)) { - return; - } - List<LocDetlAdjust> copyList = new ArrayList<>(); - for (LocDetlAdjust adjust : list) { - boolean exit = false; - for (LocDetlAdjust copy : copyList) { - if (adjust.getMatnr().equals(copy.getMatnr()) && Cools.eq(adjust.getBatch(), copy.getBatch())) { - copy.setCount(copy.getCount() + adjust.getCount()); - exit = true; - break; - } - } - if (!exit) { - copyList.add(new LocDetlAdjustParam.LocDetlAdjust(adjust.getMatnr(), adjust.getBatch(), adjust.getCount())); - } - } - list = copyList; - } +// public void integrate() { +// if (Cools.isEmpty(list)) { +// return; +// } +// List<LocDetlAdjust> copyList = new ArrayList<>(); +// for (LocDetlAdjust adjust : list) { +// boolean exit = false; +// for (LocDetlAdjust copy : copyList) { +// if (adjust.getMatnr().equals(copy.getMatnr()) && Cools.eq(adjust.getBatch(), copy.getBatch())) { +// copy.setCount(copy.getCount() + adjust.getCount()); +// exit = true; +// break; +// } +// } +// if (!exit) { +// copyList.add(new LocDetlAdjustParam.LocDetlAdjust(adjust.getMatnr(), adjust.getBatch(), adjust.getCount())); +// } +// } +// list = copyList; +// } } diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index c1d97d0..bc51a18 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -67,4 +67,16 @@ void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now); + + /** + * 鏍规嵁鏉$爜鑾峰彇涓婁竴娆″嚭搴撶墿鏂欎俊鎭� + * @param barcode 鏉$爜 + * @return 鐗╂枡淇℃伅 + */ + R getMatInfoByBarcode(String barcode); + + /** + * 鍒涘缓缁勬嫋閫氱煡妗f + */ + R barcodeComb(BarcodeCombParam combParam); } diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index c401b70..651a14f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -96,6 +96,9 @@ @Resource private OrderDetlPakoutService orderDetlPakoutService; + @Resource + private WrkDetlLogService wrkDetlLogService; + @Override @Transactional public R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId, Long userId) { @@ -1111,4 +1114,47 @@ throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + @Override + public R getMatInfoByBarcode(String barcode) { + WrkDetlLog wrkDetl = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>().eq("zpallet", barcode).orderBy("io_time", false)); + if(wrkDetl == null) { + return R.parse("璇ユ潯鐮佹病鏈夋煡璇㈠埌鐗╂枡淇℃伅"); + } + return R.ok(wrkDetl); + } + + @Override + public R barcodeComb(BarcodeCombParam combParams) { + String barcode = combParams.getBarcode(); + BarcodeCombParam.CombMat combParam = combParams.getCombMats().get(0); + String matnr = combParam.getMatnr(); + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode)); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode)); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode)); + if (countLoc > 0 || countWrk > 0 || countwait > 0) { + throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode); + } + + Mat mat = matService.selectByMatnr(matnr); + if (Cools.isEmpty(mat)) { + throw new CoolException(matnr + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + + Date now = new Date(); + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(combParam); + waitPakin.setZpallet(barcode); // 鎵樼洏鐮� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setDanger(1); // 鎵嬪姩缁勬嫋鍏ュ簱 +// waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); +// waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + return R.ok("缁勬嫋缁戝畾鎴愬姛"); + } } 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 b6df9d2..a713524 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -24,6 +24,8 @@ import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import com.zy.common.web.WcsController; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -97,6 +99,9 @@ @Resource private OrderDetlPakoutMapper orderDetlPakoutMapper; + + @Resource + private ConfigService configService; @Override @Transactional @@ -184,6 +189,16 @@ public void startupFullTakeStore(StockOutParam param, Long userId) { // 鐩爣绔欑偣鐘舵�佹娴� BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮� + if (param.getOutSite() == 1016 || param.getOutSite() == 1043) { + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inOrOutBoundMode").eq("status", 1)); + if (config != null && !Cools.isEmpty(config.getValue())) { + int value = Integer.parseInt(config.getValue()); + if (value != 2) { + throw new CoolException("鐩爣绔欑偣" + param.getOutSite() + "涓嶆槸鍑哄簱妯″紡锛屽綋鍓嶆ā寮忎负锛�" + value); + } + } + } // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { @@ -897,7 +912,7 @@ wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locMast.getLocNo()); wrkMast.setLocNo(locMast.getLocNo()); - wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮� + wrkMast.setBarcode(list.get(0).getZpallet()); // 鎵樼洏鐮� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� @@ -914,6 +929,10 @@ boolean deleteFlag = true; boolean addFlag = true; + // 搴撲綅鐘舵�佹槸绌猴紝鍒欐坊鍔� + // 搴撲綅鐘舵�佸湪搴擄紝鏈夋彁浜ゆ暟鎹紝鍒欎慨鏀� + // 搴撲綅鐘舵�佸湪搴擄紝娌℃湁鎻愪氦鏁版嵁锛屽垯鍒犻櫎 + // 淇敼鏁伴噺 Iterator<LocDetl> iterator = locDetls.iterator(); while (iterator.hasNext()) { @@ -924,13 +943,20 @@ LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { - if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), - locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) { - throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); - } +// if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), +// locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) { +// throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); +// } + locDetl.setAnfme(adjust.getCount()); + locDetl.setZpallet(adjust.getZpallet()); + locDetl.setModel(adjust.getModel()); + locDetl.setManuDate(adjust.getManuDate()); + locDetl.setWeight(adjust.getWeight()); + locDetl.setManLength(adjust.getManLength()); + locDetl.setVolume(adjust.getVolume()); + locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no",locDetl.getLocNo()).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getBatch())); // 淇濆瓨璋冩暣璁板綍 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); @@ -960,6 +986,13 @@ wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setIoTime(wrkMast.getIoTime()); wrkDetl.setAnfme(adjust.getCount()); + wrkDetl.setAnfme(adjust.getCount()); + wrkDetl.setZpallet(adjust.getZpallet()); + wrkDetl.setModel(adjust.getModel()); + wrkDetl.setManuDate(adjust.getManuDate()); + wrkDetl.setWeight(adjust.getWeight()); + wrkDetl.setManLength(adjust.getManLength()); + wrkDetl.setVolume(adjust.getVolume()); wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); wrkMast.setAppeUser(userId); @@ -967,7 +1000,6 @@ if (!wrkDetlLogService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } - } iterator.remove(); iterator1.remove(); } @@ -1027,8 +1059,13 @@ locDetl.sync(mat); locDetl.setBatch(adjust.getBatch()); locDetl.setLocNo(locMast.getLocNo()); - locDetl.setZpallet(locMast.getBarcode()); + locDetl.setZpallet(adjust.getZpallet()); locDetl.setAnfme(adjust.getCount()); // 鏁伴噺 + locDetl.setModel(adjust.getModel()); + locDetl.setManuDate(adjust.getManuDate()); + locDetl.setWeight(adjust.getWeight()); + locDetl.setManLength(adjust.getManLength()); + locDetl.setVolume(adjust.getVolume()); locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅 locDetl.setModiTime(now); locDetl.setAppeUser(userId); @@ -1077,12 +1114,15 @@ int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); if (locMast.getLocSts().equals("F")) { if (count == 0) { - locMast.setLocSts("D"); + locMast.setLocSts("O"); + } else { + locMast.setBarcode(wrkMast.getBarcode()); } } if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) { if (count > 0) { locMast.setLocSts("F"); + locMast.setBarcode(wrkMast.getBarcode()); } } locMast.setModiUser(userId); @@ -1103,7 +1143,52 @@ } String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� + Long wrkSts = wrkMast.getWrkSts(); + Integer ioType = wrkMast.getIoType(); + + // 浠诲姟瀹屾垚锛屾棤娉曞彇娑� + if(wrkSts == 4 || wrkSts == 5 || wrkSts == 14 || wrkSts == 15 || wrkSts == 54) { + throw new CoolException(workNo+"浠诲姟宸插畬鎴愶紝鏃犳硶鍙栨秷"); + } + + if(ioType == 101 || ioType == 110) { + if(wrkSts == 11 || wrkSts == 12) { + + } else { + throw new CoolException(workNo+"搴撳瓨淇℃伅宸叉洿鏂帮紝鏃犳硶鍙栨秷"); + } + } // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 +// if(ioType == 1 || ioType == 10) { +// if(wrkSts == 1 || wrkSts == 2|| wrkSts == 3 || wrkSts == 9 || wrkSts == 10) { +// locNo = wrkMast.getLocNo(); +// locSts = "O"; +// } else { +// throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts); +// } +// } else if(ioType == 11){ +// if(wrkSts <= 10) { +// locNo = wrkMast.getLocNo(); +// locSts = "O"; +// // 搴撲綅杞Щ锛氭簮搴撲綅 +// LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); +// if (Cools.isEmpty(locMast)) { +// throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo()); +// } +// locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F"); +// locMast.setModiTime(now); +// locMast.setModiUser(userId); +// locMastService.updateById(locMast); +// } else { +// throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts); +// } +// } else if(ioType == 3) { +// +// } else if(ioType == 101) { +// +// } else if(ioType == 110) { +// +// } if (wrkMast.getWrkSts() <= 10 && wrkMast.getIoType()!=120) { locNo = wrkMast.getLocNo(); locSts = "O"; @@ -1135,7 +1220,7 @@ locSts = "F"; // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉� } else if (wrkMast.getIoType() == 11) { - locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F"; + locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F"; // 搴撲綅杞Щ锛氱洰鏍囧簱浣� LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); if (Cools.isEmpty(locMast)) { diff --git a/src/main/java/com/zy/asrs/task/MdqzScheduler.java b/src/main/java/com/zy/asrs/task/MdqzScheduler.java index f585916..94fe738 100644 --- a/src/main/java/com/zy/asrs/task/MdqzScheduler.java +++ b/src/main/java/com/zy/asrs/task/MdqzScheduler.java @@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.LocMastService; +import com.zy.asrs.service.WrkDetlService; import com.zy.asrs.service.WrkMastService; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; @@ -11,6 +15,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; /** * @author pang.jiabao @@ -27,15 +33,60 @@ @Resource private WrkMastService wrkMastService; + @Resource + private LocMastService locMastService; + + @Resource + private WrkDetlService wrkDetlService; + // 璇昏ˉ灏炬《閰嶇疆锛岀粰瀵瑰簲浠诲姟鍙疯ˉ灏炬《淇″彿--鏇挎崲涓哄叆搴撳鎵惧簱浣嶆椂锛屽彂鐜板墠闈㈢被鍨嬩笉涓�鏍峰崟鐫�锛岃嚜鍔ㄨˉ灏炬《 @Scheduled(cron = "0/5 * * * * ?") private void tailFillingBuckets() { Config config = configService.selectConfigByCode("tailFillingBuckets"); if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) { WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", config.getValue())); + if (wrkMast != null && wrkMast.getCtnType() == 0) { - wrkMast.setCtnType(1); + Integer wrkNo = wrkMast.getWrkNo(); + // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); + List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); + List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 + if (collect.size() <= 0 && collect1.size() <= 0) { + log.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,wrkNo); + return; + } + // 鍙敤搴撲綅缁� + List<LocMast> locMastList = new ArrayList<>(); + for(LocMast locMast1:collect) { + Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) + && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); + first.ifPresent(locMastList::add); + } + + if (locMastList.size() == 0) { + log.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,wrkNo); + return; + } + WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); + if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� + locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); + } else { + locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); + } + LocMast locMast = locMastList.get(0); + wrkMast.setLocNo(locMast.getLocNo()); + wrkMast.setCtnType(1); // 灏炬墭鏍囪瘑 wrkMastService.updateById(wrkMast); + if (locMast.getLocSts().equals("O")){ + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)){ + log.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1050,wrkNo,locMast.getLocNo(),locMast.getLocSts()); + } + } else { + log.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1050,wrkNo,locMast.getLocNo()); + } } } } diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 0ca5ca9..dce1bc3 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -185,162 +185,165 @@ throw new CoolException("鍏ョ┖妗跺簱杈撻�佺嚎缂撳瓨浠诲姟鏁帮細"+count+"锛岃秴閰嶇疆缂撳瓨鏁帮細" + value); } } + locMast = new LocMast(); + locMast.setCrnNo(4); + locMast.setLocNo(""); List<WrkMast> wrkMastList = wrkMastMapper.selectLastInEmptyLoc(); // 鍓嶉潰鍏ョ┖妗跺簱鐨勪换鍔�(鏈墽琛屽爢鍨涙満鍏ュ簱) - if (wrkMastList.size() == 0) { +// if (wrkMastList.size() == 0) { // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 - if (collect.size() == 0 || collect1.size() == 0) { + if (collect.size() - wrkMastList.size() <= 0 && collect1.size() - wrkMastList.size() <= 0) { log.error("-----绌烘《搴撴棤绌哄簱浣�----"); throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); } - // 鍙敤搴撲綅缁� - List<LocMast> locMastList = new ArrayList<>(); - for(LocMast locMast1:collect) { - Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) - && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); - first.ifPresent(locMastList::add); - } - - if (locMastList.size() == 0) { - log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); - throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); - } - String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� - if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } else { - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } - locMast = locMastList.get(0); - - } else { - WrkMast wrkMast = wrkMastList.get(0); // 鏈�鍚庝竴涓叆绌烘《搴撲换鍔� - // 鍓嶄竴涓换鍔℃《绫诲瀷 - String oldModel = wrkMast.getPdcType(); - // 鍓嶄竴涓换鍔″熬鎵樻爣璇� - Integer oldCtnType = wrkMast.getCtnType(); - // 褰撳墠妗剁被鍨� - String matnr = findLocNoAttributeVo.getMatnr(); - if(findLocNoAttributeVo.getMatnr().equals(wrkMast.getPdcType())) { // 褰撳墠妗朵笌鍓嶆《鏄竴绉嶇被鍨� - // 褰撳墠妗剁被鍨嬬殑浠诲姟鏈夊嚑涓� - long count = wrkMastList.stream().filter(wrkMast1 -> wrkMast1.getPdcType().equals(matnr)).count(); - if (count % 2 == 0) { // 鍋舵暟锛屽彇涓�缁勬柊搴撲綅 - // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); - List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); - List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 - if (collect.size() == 0 || collect1.size() == 0) { - log.error("-----绌烘《搴撴棤绌哄簱浣�----"); - throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); - } - // 鍙敤搴撲綅缁� - List<LocMast> locMastList = new ArrayList<>(); - for(LocMast locMast1:collect) { - Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) - && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); - first.ifPresent(locMastList::add); - } - - if (locMastList.size() == 0) { - log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); - throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); - } - String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� - if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } else { - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } - locMast = locMastList.get(0); - } else { // 濂囨暟锛屽彇鍓嶄竴搴撲綅瀵瑰簲鐨勭┖搴撲綅 - String locNo = wrkMast.getLocNo(); - int row = Integer.parseInt(locNo.substring(0, 2)); - if(row == 10 || row == 12) { - String newLocNo =(row == 10 ? "09" : "11") + locNo.substring(2); - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", newLocNo).eq("loc_sts","O")); - if (locMast == null) { - log.error("-----涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛�10锛�12鎺�,浣嗘槸瀵瑰簲搴撲綅涓嶄负绌�----"); - throw new CoolException("涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屾槸10锛�12鎺�,浣嗘槸瀵瑰簲搴撲綅涓嶄负绌�"); - } - } else { - // 鑷姩缁欏墠闈换鍔¤ˉ灏炬《淇″彿 - wrkMastService.updateCtnType(wrkMast); - log.error("-----涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屼絾鏄笉鏄�10锛�12鎺�----"); - throw new CoolException("涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屼絾鏄笉鏄�10锛�12鎺�"); - } - } - } else { // 褰撳墠妗朵笌鍓嶆《涓嶆槸涓�绉嶇被鍨� - if(oldCtnType == 1) { // 鍓嶉潰鏄熬妗� - // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); - List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); - List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 - if (collect.size() == 0 || collect1.size() == 0) { - log.error("-----绌烘《搴撴棤绌哄簱浣�----"); - throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); - } - // 鍙敤搴撲綅缁� - List<LocMast> locMastList = new ArrayList<>(); - for(LocMast locMast1:collect) { - Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) - && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); - first.ifPresent(locMastList::add); - } - - if (locMastList.size() == 0) { - log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); - throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); - } - String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� - if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } else { - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } - locMast = locMastList.get(0); - } else { // 鍓嶉潰涓嶆槸灏炬《 - // 鍒ゆ柇鍓嶉潰鍏ョ┖妗跺簱浠诲姟鏁伴噺(鏈墽琛屽爢鍨涙満鍏ュ簱) - long count = wrkMastList.stream().filter(wrkMast1 -> wrkMast1.getPdcType().equals(oldModel)).count(); - if (count % 2 == 0) { // 鍋舵暟锛屽彲浠ュ叆搴� - // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); - List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); - List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 - if (collect.size() == 0 || collect1.size() == 0) { - log.error("-----绌烘《搴撴棤绌哄簱浣�----"); - throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); - } - // 鍙敤搴撲綅缁� - List<LocMast> locMastList = new ArrayList<>(); - for(LocMast locMast1:collect) { - Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) - && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); - first.ifPresent(locMastList::add); - } - - if (locMastList.size() == 0) { - log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); - throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); - } - String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� - if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } else { - locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); - } - locMast = locMastList.get(0); - } else { // 濂囨暟锛屼笉鍙互鍏ュ簱 - // 鑷姩缁欏墠闈换鍔¤ˉ灏炬《淇″彿 - wrkMastService.updateCtnType(wrkMast); - log.error("-----涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱----"); - throw new CoolException("涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱"); - } - } - } - } +// // 鍙敤搴撲綅缁� +// List<LocMast> locMastList = new ArrayList<>(); +// for(LocMast locMast1:collect) { +// Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) +// && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); +// first.ifPresent(locMastList::add); +// } +// +// if (locMastList.size() == 0) { +// log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); +// throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); +// } +// String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� +// if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } else { +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } +// locMast = locMastList.get(0); +// +// } else { +// WrkMast wrkMast = wrkMastList.get(0); // 鏈�鍚庝竴涓叆绌烘《搴撲换鍔� +// // 鍓嶄竴涓换鍔℃《绫诲瀷 +// String oldModel = wrkMast.getPdcType(); +// // 鍓嶄竴涓换鍔″熬鎵樻爣璇� +// Integer oldCtnType = wrkMast.getCtnType(); +// // 褰撳墠妗剁被鍨� +// String matnr = findLocNoAttributeVo.getMatnr(); +// if(findLocNoAttributeVo.getMatnr().equals(wrkMast.getPdcType())) { // 褰撳墠妗朵笌鍓嶆《鏄竴绉嶇被鍨� +// // 褰撳墠妗剁被鍨嬬殑浠诲姟鏈夊嚑涓� +// long count = wrkMastList.stream().filter(wrkMast1 -> wrkMast1.getPdcType().equals(matnr)).count(); +// if (count % 2 == 0) { // 鍋舵暟锛屽彇涓�缁勬柊搴撲綅 +// // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� +// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); +// List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); +// List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 +// if (collect.size() == 0 || collect1.size() == 0) { +// log.error("-----绌烘《搴撴棤绌哄簱浣�----"); +// throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); +// } +// // 鍙敤搴撲綅缁� +// List<LocMast> locMastList = new ArrayList<>(); +// for(LocMast locMast1:collect) { +// Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) +// && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); +// first.ifPresent(locMastList::add); +// } +// +// if (locMastList.size() == 0) { +// log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); +// throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); +// } +// String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� +// if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } else { +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } +// locMast = locMastList.get(0); +// } else { // 濂囨暟锛屽彇鍓嶄竴搴撲綅瀵瑰簲鐨勭┖搴撲綅 +// String locNo = wrkMast.getLocNo(); +// int row = Integer.parseInt(locNo.substring(0, 2)); +// if(row == 10 || row == 12) { +// String newLocNo =(row == 10 ? "09" : "11") + locNo.substring(2); +// locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", newLocNo).eq("loc_sts","O")); +// if (locMast == null) { +// log.error("-----涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛�10锛�12鎺�,浣嗘槸瀵瑰簲搴撲綅涓嶄负绌�----"); +// throw new CoolException("涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屾槸10锛�12鎺�,浣嗘槸瀵瑰簲搴撲綅涓嶄负绌�"); +// } +// } else { +// // 鑷姩缁欏墠闈换鍔¤ˉ灏炬《淇″彿 +// wrkMastService.updateCtnType(wrkMast); +// log.error("-----涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屼絾鏄笉鏄�10锛�12鎺�----"); +// throw new CoolException("涓庡墠闈㈡《绫诲瀷涓�鏍凤紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁版槸濂囨暟锛屼絾鏄笉鏄�10锛�12鎺�"); +// } +// } +// } else { // 褰撳墠妗朵笌鍓嶆《涓嶆槸涓�绉嶇被鍨� +// if(oldCtnType == 1) { // 鍓嶉潰鏄熬妗� +// // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� +// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); +// List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); +// List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 +// if (collect.size() == 0 || collect1.size() == 0) { +// log.error("-----绌烘《搴撴棤绌哄簱浣�----"); +// throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); +// } +// // 鍙敤搴撲綅缁� +// List<LocMast> locMastList = new ArrayList<>(); +// for(LocMast locMast1:collect) { +// Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) +// && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); +// first.ifPresent(locMastList::add); +// } +// +// if (locMastList.size() == 0) { +// log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); +// throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); +// } +// String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� +// if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } else { +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } +// locMast = locMastList.get(0); +// } else { // 鍓嶉潰涓嶆槸灏炬《 +// // 鍒ゆ柇鍓嶉潰鍏ョ┖妗跺簱浠诲姟鏁伴噺(鏈墽琛屽爢鍨涙満鍏ュ簱) +// long count = wrkMastList.stream().filter(wrkMast1 -> wrkMast1.getPdcType().equals(oldModel)).count(); +// if (count % 2 == 0) { // 鍋舵暟锛屽彲浠ュ叆搴� +// // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣� +// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O")); +// List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList()); +// List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓 +// if (collect.size() == 0 || collect1.size() == 0) { +// log.error("-----绌烘《搴撴棤绌哄簱浣�----"); +// throw new CoolException("绌烘《搴撴棤绌哄簱浣�"); +// } +// // 鍙敤搴撲綅缁� +// List<LocMast> locMastList = new ArrayList<>(); +// for(LocMast locMast1:collect) { +// Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1()) +// && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst(); +// first.ifPresent(locMastList::add); +// } +// +// if (locMastList.size() == 0) { +// log.error("-----绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍----"); +// throw new CoolException("绌烘《搴撴棤瀵瑰簲绌虹┖妗剁粍"); +// } +// String model = findLocNoAttributeVo.getModel(); // 褰撳墠妗剁被鍨� +// if (model.equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀� +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } else { +// locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList()); +// } +// locMast = locMastList.get(0); +// } else { // 濂囨暟锛屼笉鍙互鍏ュ簱 +// // 鑷姩缁欏墠闈换鍔¤ˉ灏炬《淇″彿 +// wrkMastService.updateCtnType(wrkMast); +// log.error("-----涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱----"); +// throw new CoolException("涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱"); +// } +// } +// } +// } } else if ((staDescId == 1 && locArea == 1) || staDescId == 10) { // 婊℃澘鍏ユ垚鍝佸簱鎴栬�呯┖鏉垮叆鎴愬搧搴� diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index be0c951..5a1e540 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -93,7 +93,14 @@ if (Cools.isEmpty(param.getSourceStaNo())) { return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖"); } - WaitPakin waitPakin = null; + + WaitPakin waitPakin; + // 鍒ゆ柇鏄笉鏄垚鍝佸叆搴� + waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>(). + eq("zpallet", param.getBarcode()).eq("danger", 1)); + if (waitPakin != null) { + param.setIoType(0); + } if (param.getIoType() == 1) { // 鍏堝垱寤哄叆搴撻�氱煡妗� waitPakin = comb(param.getBarcode(),param.getBucketType(),param.getBucketCount()); @@ -144,6 +151,9 @@ } switch (param.getIoType()) { + case 0: // 鎴愬搧鍏ュ簱 + dto = finishedProductIn(param.getSourceStaNo(), param.getBarcode(), waitPakin); + break; case 1://婊℃墭鐩樺叆搴� assert waitPakin != null; dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakin, param.isTailSupportFlag()); @@ -794,7 +804,7 @@ wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("Y"); - wrkMast.setCtnType(tailSupportFlag ? 1 : 0); // 灏炬墭鏍囪瘑 + wrkMast.setCtnType(0); // 灏炬墭鏍囪瘑 wrkMast.setPdcType(waitPakins.getMatnr()); // 绌烘《绫诲瀷 // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(now); @@ -829,6 +839,87 @@ if (!basDevpService.updateById(sourceStaNo)){ throw new CoolException("鏇存柊婧愮珯澶辫触"); } + if(!dto.getLocNo().isEmpty()) { + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")){ + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + } + + return dto; + } + + /** + * 鎴愬搧鍏ュ簱 + */ + @Transactional(propagation = Propagation.REQUIRED) + public StartupDto finishedProductIn(Integer devpNo, String barcode, WaitPakin waitPakins) { + // 婧愮珯鐐圭姸鎬佹娴� + BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); + // 妫�绱㈠簱浣� + FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins); + StartupDto dto = commonService.getLocNoNew( 1, devpNo,findLocNoAttributeVo,1); + int workNo = dto.getWorkNo(); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(barcode); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); +// wrkMast.setCtnType(tailSupportFlag ? 1 : 0); // 灏炬墭鏍囪瘑 + wrkMast.setPdcType(waitPakins.getModel()); // 绌烘《绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakins); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y + Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() + .eq("zpallet", barcode); + WaitPakin setParam = new WaitPakin(); + setParam.setLocNo(dto.getLocNo()); + setParam.setIoStatus("Y"); + setParam.setModiTime(now); + if (!waitPakinService.update(setParam, wrapper)) { + throw new CoolException("鏇存柊閫氱煡妗eけ璐�"); + } + // 鏇存柊婧愮珯鐐逛俊鎭� + sourceStaNo.setWrkNo(workNo); + sourceStaNo.setModiTime(now); + if (!basDevpService.updateById(sourceStaNo)){ + throw new CoolException("鏇存柊婧愮珯澶辫触"); + } // 鏇存柊鐩爣搴撲綅鐘舵�� LocMast locMast = locMastService.selectById(dto.getLocNo()); if (locMast.getLocSts().equals("O")){ diff --git a/src/main/java/com/zy/system/controller/UserController.java b/src/main/java/com/zy/system/controller/UserController.java index a823f5a..78623cd 100644 --- a/src/main/java/com/zy/system/controller/UserController.java +++ b/src/main/java/com/zy/system/controller/UserController.java @@ -117,6 +117,9 @@ if (user.getMobile()!=null) { entity.setMobile(user.getMobile()); } + if (user.getRoleId() !=null) { + entity.setRoleId(user.getRoleId()); + } userService.updateById(entity); return R.ok(); } diff --git a/src/main/webapp/static/js/pakStore/stockAdjust.js b/src/main/webapp/static/js/pakStore/stockAdjust.js index c6ff8a7..36d71fe 100644 --- a/src/main/webapp/static/js/pakStore/stockAdjust.js +++ b/src/main/webapp/static/js/pakStore/stockAdjust.js @@ -8,21 +8,21 @@ {fixed: 'left', field: 'count', title: '瀹為檯鏁伴噺', align: 'center', edit:'text', width: 120, style:'color: blue;font-weight: bold'} ,{field: 'anfme', align: 'center',title: '鏁伴噺'} ,{field: 'batch', align: 'center',title: '鎵瑰彿锛堢紪杈戯級', edit: true, style: 'font-weight:bold'} - // ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', edit: true} - // ,{field: 'model', align: 'center',title: '妗跺瀷', edit: true} - // ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡', edit: true} - // ,{field: 'weight', align: 'center',title: '鍑�閲�', edit: true} - // ,{field: 'manLength', align: 'center',title: '姣涢噸', edit: true} - // ,{field: 'volume', align: 'center',title: '缃愯閲�', edit: true} + ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', edit: true} + ,{field: 'model', align: 'center',title: '妗跺瀷', edit: true} + ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡', edit: true} + ,{field: 'weight', align: 'center',title: '鍑�閲�', edit: true} + ,{field: 'manLength', align: 'center',title: '姣涢噸', edit: true} + ,{field: 'volume', align: 'center',title: '缃愯閲�', edit: true} ]; arrRemove(detlCols, "field", "anfme"); arrRemove(detlCols, "field", "batch"); - // arrRemove(detlCols, "field", "zpallet"); - // arrRemove(detlCols, "field", "model"); - // arrRemove(detlCols, "field", "manuDate"); - // arrRemove(detlCols, "field", "weight"); - // arrRemove(detlCols, "field", "manLength"); - // arrRemove(detlCols, "field", "volume"); + arrRemove(detlCols, "field", "zpallet"); + arrRemove(detlCols, "field", "model"); + arrRemove(detlCols, "field", "manuDate"); + arrRemove(detlCols, "field", "weight"); + arrRemove(detlCols, "field", "manLength"); + arrRemove(detlCols, "field", "volume"); cols.push.apply(cols, detlCols); cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:80}) return cols; -- Gitblit v1.9.1