From 7059a74b4213af5e3c6de691ef92564e3cb1c316 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期五, 25 十一月 2022 13:58:11 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/WrkMastController.java | 286 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 277 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/WrkMastController.java b/src/main/java/com/zy/asrs/controller/WrkMastController.java index af3c691..e903acd 100644 --- a/src/main/java/com/zy/asrs/controller/WrkMastController.java +++ b/src/main/java/com/zy/asrs/controller/WrkMastController.java @@ -5,15 +5,18 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.service.WrkMastService; -import com.zy.common.web.BaseController; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.dto.WrkDetlWithCheck; +import com.zy.asrs.service.*; +import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -23,6 +26,16 @@ @Autowired private WrkMastService wrkMastService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private LocMastService locMastService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private MatService matService; + @Autowired + private CheckRecordService checkRecordService; @RequestMapping(value = "/wrkMast/{id}/auth") @ManagerAuth @@ -36,10 +49,12 @@ @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, + @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ excludeTrash(param); EntityWrapper<WrkMast> wrapper = new EntityWrapper<>(); convert(param, wrapper); + allLike(WrkMast.class, param.keySet(), wrapper, condition); if (!Cools.isEmpty(orderByField)){ if (orderByField.endsWith("$")){ orderByField = orderByField.substring(0, orderByField.length()-1); @@ -51,14 +66,15 @@ return R.ok(wrkMastService.selectPage(new Page<>(curr, limit), wrapper)); } - private void convert(Map<String, Object> map, EntityWrapper wrapper){ + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ - if (entry.getKey().endsWith(">")) { - wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue()))); - } else if (entry.getKey().endsWith("<")) { - wrapper.le(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue()))); + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); } else { - wrapper.like(entry.getKey(), String.valueOf(entry.getValue())); + wrapper.eq(entry.getKey(), val); } } } @@ -139,6 +155,9 @@ @RequestMapping(value = "/wrkMast/add/pri/auth") @ManagerAuth(memo = "宸ヤ綔妗e鍔犱紭鍏堢骇") public R addPri(@RequestBody List<WrkMast> list) { + if (list.isEmpty()) { + return R.error("璇疯嚦灏戦�夋嫨涓�琛屾暟鎹�"); + } for (WrkMast entity : list){ entity.setIoPri(entity.getIoPri() + 1); } @@ -149,6 +168,9 @@ @RequestMapping(value = "/wrkMast/red/pri/auth") @ManagerAuth(memo = "宸ヤ綔妗i檷浣庝紭鍏堢骇") public R redPri(@RequestBody List<WrkMast> list) { + if (list.isEmpty()) { + return R.error("璇疯嚦灏戦�夋嫨涓�琛屾暟鎹�"); + } for (WrkMast entity : list){ entity.setIoPri(entity.getIoPri() - 1); } @@ -157,4 +179,250 @@ } + /********************************杈归攱鏂板**************************/ + @RequestMapping(value = "/wrkMast/red/wrk/mast") + @ManagerAuth(memo = "缁存姢宸ヤ綔妗�") + public R redWrkMast(@RequestBody List<WrkMast> list) { + if (list.isEmpty()) { + return R.error("璇疯嚦灏戦�夋嫨涓�琛屾暟鎹�"); + } + StringBuilder logWrkMast= new StringBuilder(); + try{ + for (WrkMast entity : list){ + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", entity.getWrkNo())); + if (Cools.isEmpty(wrkMast)){ + continue; + } + if (wrkMast.getIoType()==1 || wrkMast.getIoType()==10){//1.鍏ュ簱//10.绌烘澘鍏ュ簱 +// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo())); +// if (Cools.isEmpty(locMast)){ +// logWrkMast=logWrkMast+"宸ヤ綔鍙凤細"+wrkMast.getWrkNo()+"搴撲綅鏌ヨ涓烘棤!"+"//n"; +// continue; +// } +// if (wrkMast.getWrkSts()==9){//9.鍏ュ簱瀹屾垚 +// if (locMast.getLocSts().equals("F")){//F.鍦ㄥ簱 +// over(wrkMast); +// }else if (locMast.getLocSts().equals("S")){//S.鍏ュ簱棰勭害 +// doIn(wrkMast,locMast); +// } +// } + continue; + }else if (wrkMast.getIoType()==53 || wrkMast.getIoType()==57){//53.鎷f枡鍐嶅叆搴�//57.鐩樼偣鍐嶅叆搴� + continue; + }else if (wrkMast.getIoType()==101 || wrkMast.getIoType()==110){//101.鍑哄簱//110.绌烘澘鍑哄簱 + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo())); + if (Cools.isEmpty(locMast)){ + logWrkMast.append("宸ヤ綔鍙凤細").append(wrkMast.getWrkNo()).append("搴撲綅鏌ヨ涓烘棤!").append("//n"); + continue; + } + if (wrkMast.getWrkSts()==17){//17.鍑哄簱瀹屾垚 + if (locMast.getLocSts().equals("O")){//O.绌哄簱浣� + logWrkMast.append("缁存姢宸ヤ綔妗o細").append(wrkMast.getWrkNo()).append("//n"); + }else if (locMast.getLocSts().equals("R")){//R.鍑哄簱棰勭害 + doOut(wrkMast,locMast); + logWrkMast.append("缁存姢宸ヤ綔妗o細").append(wrkMast.getWrkNo()).append("//n"); + }else { + logWrkMast.append("宸ヤ綔鍙凤細").append(wrkMast.getWrkNo()).append(" 搴撲綅鐘舵�佸紓甯�!").append("//n"); + continue; + } + wrkMast.setWrkSts(18L); + wrkMastService.update(wrkMast,new EntityWrapper<WrkMast>().eq("wrk_no",wrkMast.getWrkNo())); + } +// else if (wrkMast.getWrkSts()==18){//18.鍑哄簱鏇存柊瀹屾垚 +// if (locMast.getLocSts().equals("O")){//O.绌哄簱浣� +// over(wrkMast); +// logWrkMast.append("缁存姢宸ヤ綔妗o細").append(wrkMast.getWrkNo()).append("//n"); +// }else if (locMast.getLocSts().equals("R")){//R.鍑哄簱棰勭害 +// doOut(wrkMast,locMast); +// over(wrkMast); +// logWrkMast.append("缁存姢宸ヤ綔妗o細").append(wrkMast.getWrkNo()).append("//n"); +// } else { +// logWrkMast.append("宸ヤ綔鍙凤細").append(wrkMast.getWrkNo()).append(" 搴撲綅鐘舵�佸紓甯�!").append("//n"); +// continue; +// } +// wrkMastService.delete(new EntityWrapper<WrkMast>().eq("wrk_no",wrkMast.getWrkNo())); +// } + }else if (wrkMast.getIoType()==103 || wrkMast.getIoType()==107){//103.鎷f枡鍑哄簱//107.鐩樼偣鍑哄簱 + continue; + } + } + }catch (Exception e){ + return R.error(logWrkMast+"鎿嶄綔澶辫触"); + } + return R.ok(logWrkMast+"鎿嶄綔鎴愬姛"); + } + private void doOut(WrkMast wrkMast,LocMast locMast){ + try{ + Date now = new Date(); + // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁� + if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { + throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触:workNo="+wrkMast.getWrkNo()+"sourceLocNo="+wrkMast.getSourceLocNo()); + } + // 淇敼婧愬簱浣嶇姸鎬� R ===>> O + if (locMast.getLocSts().equals("R")) { + locMast.setLocSts("O"); + locMast.setBarcode(""); + locMast.setFrozen(0); + locMast.setModiTime(now); + locMast.setIoTime(now); + locMast.setFrozenMemo(""); + if (!locMastService.updateById(locMast)) { + throw new CoolException("淇敼婧愬簱浣嶇姸鎬佸け璐�:workNo="+wrkMast.getWrkNo()+"sourceLocNo="+wrkMast.getSourceLocNo()); + } + } + }catch (Exception e){ + throw new CoolException(e+"鎿嶄綔澶辫触"); + } + } + private void doIn(WrkMast wrkMast,LocMast locMast){ } + private void over(WrkMast wrkMast){ + + } + + @GetMapping(value = "/wrkMast/checkDetl") + public R pickDetl(String barcode) { + WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); + if (Cools.isEmpty(wrkMast)) { + return R.error("鏃犳硶閫氳繃鎵樼洏鐮佹壘鍒板搴斿伐浣滄。"); + } + if (wrkMast.getIoType() != 107) { + return R.error("宸ヤ綔妗i潪鎹℃枡浠诲姟"); + } + if (wrkMast.getWrkSts() != 17){ + return R.error("鐩樼偣浠诲姟姝e湪鎵ц涓�,璇风瓑寰呰澶囪繍琛岀粨鏉熷悗杩涜鎿嶄綔"); + } + List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); + + return R.ok(wrkDetls); + } + + /** + * 鏍规嵁鐩樼偣淇敼搴撳瓨 + * @return + */ + @Transactional + @PostMapping("/wrkMast/storeCheck") + @ManagerAuth(memo = "鏍规嵁鐩樼偣淇敼搴撳瓨") + public R storeCheck(@RequestBody List<WrkDetlWithCheck> wrkDetls){ + Date now = new Date(); + Integer confirmIsZero = 0; + if (wrkDetls == null || wrkDetls.size() <= 0){ + return R.error("璇蜂紶鍏ユ暟鎹�"); + } + if (Cools.isEmpty(wrkDetls.get(0).getBarcode())) { + + return R.error("鎵樼洏鐮乕barcode]涓虹┖"); + } + WrkMast wrkMast = wrkMastService.selectByBarcode(wrkDetls.get(0).getBarcode()); + + for (WrkDetlWithCheck wrkDetl : wrkDetls) { + if (Cools.isEmpty(wrkDetl.getBarcode())) { + return R.error("鎵樼洏鐮乕barcode]涓虹┖"); + } + if (Cools.isEmpty(wrkDetl.getMatnr())) { + return R.error("鐗╂枡缂栫爜[matnr]涓虹┖"); + } + Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); + if (Cools.isEmpty(mat)) { + return R.error("鐗╂枡缂栫爜[matnr]鍦ㄧ墿鏂欐。妗堟壘涓嶅埌"); + + } + if (Cools.isEmpty(wrkDetl.getAnfme())) { + return R.error("鐩樼偣鍓嶆暟閲廩anfme]涓虹┖"); + } + if (wrkDetl.getConfirmQty() == null) { + return R.error("鐩樼偣纭閲廩confirm]涓虹┖"); + } + if (wrkDetl.getConfirmQty() == 0){ + confirmIsZero++; + } + + } + /** + * 濡傛灉鏁翠釜list閲岀殑confirmQty鏁伴噺鍏ㄦ槸0, 琛ㄧず鏁翠釜搴撲綅鏃犱换浣曞簱瀛�,鍒犲伐浣滄。, 搴撲綅鏀逛负O + */ + if (confirmIsZero == wrkDetls.size()){ + locDetlService.delete(new EntityWrapper<LocDetl>() + .eq("loc_no",wrkMast.getSourceLocNo())); + locMastService.updateLocSts(wrkMast.getSourceLocNo(),"O"); + wrkMastService.delete(new EntityWrapper<WrkMast>() + .eq("wrk_no",wrkMast.getWrkNo())); + wrkDetlService.delete(new EntityWrapper<WrkDetl>() + .eq("wrk_no",wrkMast.getWrkNo())); + return R.ok("搴撳瓨娓呯悊鎴愬姛"); + }else { + locMastService.updateLocSts(wrkMast.getSourceLocNo(),"F"); + locDetlService.delete(new EntityWrapper<LocDetl>() + .eq("loc_no",wrkMast.getSourceLocNo())); + for (WrkDetlWithCheck wrkDetl : wrkDetls) { + LocDetl locDetl = new LocDetl(); + Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); + locDetl.sync(mat); + locDetl.setZpallet(wrkMast.getBarcode()); + locDetl.setAnfme(wrkDetl.getConfirmQty()); + locDetl.setBatch(wrkDetl.getBatch()); + locDetl.setAppeTime(now); + locDetl.setModiTime(now); + locDetl.setAppeUser(getUserId()); + locDetl.setModiUser(getUserId()); + locDetl.setLocNo(wrkMast.getSourceLocNo()); + locDetlService.insert(locDetl); + + CheckRecord checkRecord = new CheckRecord(); + checkRecord.sync(mat); + checkRecord.setAnfme(wrkDetl.getAnfme()); + checkRecord.setBarcode(wrkMast.getBarcode()); + checkRecord.setLocNo(wrkMast.getSourceLocNo()); + checkRecord.setCreateTime(now); + checkRecord.setBatch(wrkDetl.getBatch()); + checkRecord.setConfirmQty(locDetl.getAnfme()); + checkRecordService.insert(checkRecord); + + } + } + + return R.ok("搴撳瓨鏇存柊宸叉垚鍔�"); + } + + @GetMapping("/wrkMast/pickToFill") + public R pickToFill(String barcode){ + Date now = new Date(); + if (Cools.isEmpty(barcode)) { + return R.error("鎵樼洏鐮佷负绌�,璇锋鏌�"); + } + WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); + if (Cools.isEmpty(wrkMast)) { + return R.error("鏃犳硶閫氳繃鎵樼洏鐮佹壘鍒拌宸ヤ綔妗�,璇锋鏌ユ墭鐩樼爜鏄惁姝g‘"); + } + if (wrkMast.getIoType() != 103) { + return R.error("浠呮湁鎹℃枡鍑哄簱鍙互浣跨敤璇ュ姛鑳�"); + } + if (wrkMast.getWrkSts() != 17) { + return R.error("鎹℃枡鍑哄簱鏈畬鎴�,璇风瓑寰呰澶囪繍琛屽畬鎴�"); + } + wrkMast.setIoType(101); + wrkMast.setMemo("鎹℃枡杞叏鏉垮伐浣滄。"); + wrkMastService.update(wrkMast,new EntityWrapper<WrkMast>() + .eq("wrk_no",wrkMast.getWrkNo())); + wrkDetlService.deleteByWrkNo(wrkMast.getWrkNo()); + List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo()); + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setZpallet(wrkDetl.getBarcode()); + wrkDetl.setBarcode(wrkMast.getBarcode()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setAppeUser(1L); + wrkDetl.setModiUser(1L); + wrkDetlService.insert(wrkDetl); + + } + locMastService.updateLocSts(wrkMast.getSourceLocNo(),"R"); + return R.ok(); + } + + } -- Gitblit v1.9.1