From 080fdceed464c56f43633e85daeaf929d40496af Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期三, 18 十月 2023 13:16:07 +0800 Subject: [PATCH] 连接ERP 获取ERP库存信息 --- src/main/java/com/zy/asrs/service/LocDetlService.java | 2 src/main/java/com/zy/asrs/utils/Utils.java | 2 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 18 ++++++ src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 39 +++++++++++++ src/main/java/com/zy/asrs/controller/OutController.java | 86 ++++++++++++++++++++++------ 5 files changed, 128 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 41f3c3e..3c368d0 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -53,6 +53,8 @@ private ManLocDetlService manLocDetlService; @Autowired private ManPakOutService manPakOutService; + @Autowired + private DocTypeService docTypeService; @Autowired private AgvLocDetlService agvLocDetlService; @@ -69,28 +71,75 @@ @ManagerAuth public R pakoutPreview(@RequestBody List<Long> ids) { +// Order order = orderService.selectById(ids.get(0)); +// +// DocType docType = docTypeService.selectById(order.getDocType()); +// +// if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){ +// List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids); +// //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅 +// List<LocDto> locDtoList = new ArrayList<>(); +// +// for (OrderDetl orderDetl : orderDetlList) { +// +// 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()); +// +// //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛� +// issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); +// +// if (issued > 0) { +// LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); +// locDto.setLack(Boolean.TRUE); +// locDtoList.add(locDto); +// } +// } +// return R.ok().add(locDtoList); +// } + List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids); //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅 List<LocDto> locDtoList = new ArrayList<>(); for (OrderDetl orderDetl : orderDetlList) { double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); - if (issued <= 0.0D) { continue; } + Order order = orderService.selectByNo(orderDetl.getOrderNo()); + DocType docType = docTypeService.selectById(order.getDocType()); + if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){ + if (issued <= 0.0D) { continue; } + issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtoList.add(locDto); + } + }else { + //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()); + //浠庡钩搴撳鎵� + 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()); + //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵� + issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); - //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛� - issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛� + issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); - if (issued > 0) { - LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); - locDto.setLack(Boolean.TRUE); - locDtoList.add(locDto); + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtoList.add(locDto); + } } + + } return R.ok().add(locDtoList); @@ -434,13 +483,14 @@ }else{ manPakOut.setUuid(manPakOutExist.getUuid()); } - try{ - if (!manPakOutService.insert(manPakOut)){ - return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - }catch (Exception e){ - return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); - } + manPakOutService.insert(manPakOut); +// try{ +// if (!manPakOutService.insert(manPakOut)){ +// return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } +// }catch (Exception e){ +// return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } return R.ok(); } diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java index 3ac2cb5..9e3c2bc 100644 --- a/src/main/java/com/zy/asrs/service/LocDetlService.java +++ b/src/main/java/com/zy/asrs/service/LocDetlService.java @@ -54,6 +54,8 @@ double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq); + double queryStockAndSetLocDto1(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq); + Double queryStockAnfme(String matnr, String batch); List<StockVo> queryStockTotal(); diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java index 7da76c4..9638cdc 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java @@ -141,6 +141,45 @@ return issued; } + //琛ヨ揣鍑哄簱 + public double queryStockAndSetLocDto1(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) { + Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr).orderBy("modi_time"); + wapperSetCondition(wrapper,"batch",batch); + wapperSetCondition(wrapper,"three_code",csocode); + wapperSetCondition(wrapper,"dead_time",isoseq); +// if(Cools.isEmpty(batch)){ +// wrapper.isNull("batch"); +// }else { +// wrapper.eq("batch",batch); +// } + + List<LocDetl> locDetlList = this.selectList(wrapper); + for (LocDetl locDetl : locDetlList) { + //鍒ゆ柇褰撳墠搴撲綅璐х墿鏄惁F鍦ㄥ簱 + LocMast locMast = locMastService.selectById(locDetl.getLocNo()); + if(!"F".equals(locMast.getLocSts())){ + continue; + } + if (issued > 0) { + double anfme = locDetl.getAnfme(); + int ioType = anfme > issued ? 103 : 101; + //anfme = anfme > issued ? issued : anfme; + LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme); + //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType); + List<Integer> outSite = basDevpService.getAvailableOutSite(101); + + locDto.setStaNos(outSite); + locDto.setCsocode(csocode); + locDto.setIsoseq(isoseq); + locDto.setContainerCode(locDetl.getSuppCode()); + locDtoList.add(locDto); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + return issued; + } + @Override public Double queryStockAnfme(String matnr, String batch) { return this.baseMapper.queryStockAnfme(matnr, batch); 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 4a76d35..11f75cf 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -23,6 +23,7 @@ import com.zy.common.web.BaseController; import com.zy.common.web.WcsController; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,6 +78,10 @@ private RowLastnoService rowLastnoService; @Autowired private SlaveProperties slaveProperties; + @Autowired + private DocTypeService docTypeService; + @Autowired + private AgvWaitPakinService agvWaitPakinService; @Override @Transactional @@ -465,6 +470,9 @@ if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } + //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗� + generateAgvWaitpakin(wrkDetl); + // 淇敼璁㈠崟鏄庣粏 if (!BaseController.isJSON(locDto.getOrderNo())) { OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); @@ -1151,4 +1159,14 @@ return ""; } + private void generateAgvWaitpakin(WrkDetl wrkDetl){ + Order order = orderService.selectByNo(wrkDetl.getOrderNo()); + DocType docType = docTypeService.selectById(order.getDocType()); + if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){ + AgvWaitPakin agvWaitPakin = new AgvWaitPakin(); + BeanUtils.copyProperties(wrkDetl,agvWaitPakin); + agvWaitPakinService.insert(agvWaitPakin); + } + } + } diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 49274c9..d2754c8 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -387,7 +387,7 @@ } public static void wapperSetCondition(Wrapper wrapper, String column, String condition){ - if(Cools.isEmpty(condition)){ + if(Cools.isEmpty(condition) || "null".equals(condition)){ wrapper.andNew().eq(column,"").or().isNull(column); }else { wrapper.eq(column,condition); -- Gitblit v1.9.1