From c832c7f5d6f8c015d609e044e902e070da5240b0 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 24 九月 2023 14:22:57 +0800 Subject: [PATCH] 拣货单 --- src/main/java/com/zy/asrs/controller/OutController.java | 122 +++++++++++++++++++++++++++------------- 1 files changed, 81 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index efaaee0..f851843 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -17,9 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -51,6 +49,10 @@ private AgvBasDevpService agvBasDevpService; @Autowired private AgvWorkService agvWorkService; + @Autowired + private ManLocDetlService manLocDetlService; + @Autowired + private ManPakOutService manPakOutService; @Autowired private AgvLocDetlService agvLocDetlService; @@ -75,6 +77,9 @@ double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); if (issued <= 0.0D) { continue; } + //浠庡钩搴撳鎵� + issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵� issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); @@ -89,44 +94,6 @@ } return R.ok().add(locDtoList); - /* - if (Cools.isEmpty(ids)) { - return R.parse(BaseRes.PARAM); - } - List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); - List<LocDto> locDtos = new ArrayList<>(); - - Set<String> exist = new HashSet<>(); - - for (OrderDetl orderDetl : orderDetls) { - double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); - if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist); - for (LocDetl locDetl : locDetls) { - if (issued > 0) { -// LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), -// issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); - LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), - locDetl.getAnfme()); -// int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103; - int ioType = 101; - List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType); - locDto.setStaNos(staNos); - locDtos.add(locDto); - exist.add(locDetl.getLocNo()); - // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 - issued = issued - locDetl.getAnfme(); - } else { - break; - } - } - if (issued > 0) { - LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); - locDto.setLack(Boolean.TRUE); - locDtos.add(locDto); - } - } - return R.ok().add(locDtos); */ } @PostMapping("/out/pakout/auth") @@ -350,6 +317,10 @@ if (locDto.isLack()) { continue; } //AGV搴� if(!Cools.isEmpty(locDto.getAgvStaNos())){ + //骞冲簱 + if("鏃犻渶绔欑偣".equals(locDto.getAgvStaNo())){ + generateManPakout(locDto); + } generateTaskDtoForAgv(locDto,agvTaskDtos); //鍥涢」搴� @@ -406,6 +377,75 @@ } /* + 鐢熸垚骞冲簱鎷h揣鍗� + */ + private void generateManPakout(LocDto locDto){ + ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch()); + if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>manLocDetl.getAnfme())) { + manLocDetl.setStatus(0); + manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("loc_no", manLocDetl.getLocNo()).eq("matnr",manLocDetl.getMatnr())); + if (addPakOUT(locDto).equals(R.ok())) { + Order order = orderService.selectByNo(locDto.getOrderNo()); + if (Cools.isEmpty(order)){ + throw new CoolException("鏌ヨ璁㈠崟澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()); + } + if (order.getSettle()==1){ + if (!orderService.updateSettle(order.getId(),2L,null)){ + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐ワ紝璇疯仈绯荤鐞嗗憳"+locDto.getOrderNo()); + } + } + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr())); + if (Cools.isEmpty(orderDetl)){ + throw new CoolException("鏌ヨ璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr()); + } + orderDetl.setQty(orderDetl.getQty() + locDto.getAnfme()); + if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr()))){ + throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr()); + } + } + }else { + throw new CoolException("搴撳瓨涓嶈冻"); + } + } + + private R addPakOUT(LocDto locDto){ + ManPakOut manPakOut=new ManPakOut(); + manPakOut.setWrkNo(locDto.getOrderNo()+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(locDto.getAnfme()); + manPakOut.setLocNo(locDto.getLocNo()); + manPakOut.setMatnr(locDto.getMatnr()); + manPakOut.setMaktx(locDto.getMaktx()); + manPakOut.setDocNum(locDto.getOrderNo()); + manPakOut.setCount(0.0); + manPakOut.setStatus(0); + manPakOut.setCreateTime(new Date()); + manPakOut.setBatch(locDto.getBatch()); + manPakOut.setUpdateTime(new Date()); + manPakOut.setUuid(UUID.randomUUID().toString()); + + manPakOut.setContainerCode(locDto.getContainerCode()); + manPakOut.setCsocode(locDto.getCsocode()); + manPakOut.setIsoseq(locDto.getIsoseq()); + + ManPakOut manPakOutExist = manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num", locDto.getOrderNo())); + if (Cools.isEmpty(manPakOutExist)){ + manPakOut.setName(locDto.getMaktx()); + }else{ + manPakOut.setUuid(manPakOutExist.getUuid()); + } + try{ + if (!manPakOutService.insert(manPakOut)){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok(); + + } + + /* 璁㈠崟棰勬牎楠� ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺 */ private List<OrderDto> orderPreVerification(List<LocDto> locDtos){ -- Gitblit v1.9.1