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/impl/AgvWorkServiceImpl.java | 182 ++++++++++++-------------------------------- 1 files changed, 51 insertions(+), 131 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index cf82a7a..1ed3d71 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.EmptyPlateOutParam; @@ -25,7 +24,6 @@ import java.util.Iterator; import java.util.List; import java.util.UUID; -import java.util.concurrent.TimeUnit; /** * Created by vincent on 2020/6/11 @@ -447,26 +445,22 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) { - throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚"); + + if(wrkMast.getWrkSts() > 202){ + //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); + + //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 + if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ + //淇敼鍑哄簱绔欑偣鐘舵�� + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } + //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 + if(wrkMast.getIoType() == 110){ + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } } - // 鍏ュ簱 + 搴撲綅杞Щ - if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { - wrkMast.setWrkSts(9L); - // 鍑哄簱 - } else if (wrkMast.getWrkSts() > 20) { - wrkMast.setWrkSts(29L); - } - Date now = new Date(); - wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true)); - wrkMast.setCrnEndTime(now); - wrkMast.setModiTime(now); - wrkMast.setModiUser(userId); - // 瀹屾垚鎿嶄綔浜哄憳璁板綍 - wrkMast.setManuType("鎵嬪姩瀹屾垚"); - if (!agvWrkMastService.updateById(wrkMast)) { - throw new CoolException("淇敼宸ヤ綔妗eけ璐�"); - } + } @Transactional @@ -475,125 +469,51 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - - if (wrkMast.getWrkSts() == 200) { - //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。 - agvWrkMastService.deleteById(wrkMast); - return; + //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷 + if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){ + throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷"); } - String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� - String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� - // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 - if (wrkMast.getWrkSts() < 9) { - locNo = wrkMast.getLocNo(); - locSts = "O"; + //AGV鏈哄櫒浜烘湭鍙栬揣鍓嶅彇娑� + if(wrkMast.getWrkSts() < 203){ + //鍏ュ簱鍙栨秷 + if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){ + //婧愮珯鐐� + String devNo = wrkMast.getSourceLocNo(); + //鐩爣搴撲綅 + String locNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"O"); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode()); - // 搴撲綅杞Щ - if (wrkMast.getIoType() == 11) { - // 搴撲綅杞Щ锛氭簮搴撲綅 - AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getSourceLocNo()); - if (Cools.isEmpty(locMast)) { - throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo()); - } - locMast.setLocSts("F"); - locMast.setModiTime(new Date()); - locMast.setModiUser(userId); - agvLocMastService.updateById(locMast); + //鍑哄簱鍙栨秷 + }else { + //婧愬簱浣� + String locNo = wrkMast.getSourceLocNo(); + //鐩爣绔欑偣 + String devNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"F"); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O",""); } - // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 20) { - locNo = wrkMast.getSourceLocNo(); - // 鍑哄簱 ===>> F.鍦ㄥ簱 - if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) { - locSts = "F"; - // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉� - } else if (wrkMast.getIoType() == 110) { - locSts = "D"; - // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉� - } else if (wrkMast.getIoType() == 11) { - locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F"; - // 搴撲綅杞Щ锛氱洰鏍囧簱浣� - AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getLocNo()); - if (Cools.isEmpty(locMast)) { - throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo()); - } - locMast.setLocSts("O"); - locMast.setModiTime(new Date()); - locMast.setModiUser(userId); - agvLocMastService.updateById(locMast); - } - } else { - throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); - } - // 璁㈠崟鍏宠仈 - List<AgvWrkDetl> wrkDetls = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); - for (AgvWrkDetl wrkDetl : wrkDetls) { - if (!Cools.isEmpty(wrkDetl.getOrderNo())) { - if (!BaseController.isJSON(wrkDetl.getOrderNo())) { - if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { - throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); - } - } else { - // 璁㈠崟鍚堝苟鍑哄簱 - //瀹為檯鍙栨秷鐨勫嚭搴撴暟閲� - Double wrkDetlAnfme = wrkDetl.getAnfme(); - //璁㈠崟瀹為檯鍑哄簱鏁伴噺 - Double orderAnfme; - - List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class); - for (OrderDto orderDto : orderDtoList) { - - if(wrkDetlAnfme > orderDto.getAnfme()){ - orderAnfme = orderDto.getAnfme(); - wrkDetlAnfme -= orderAnfme; - }else { - orderAnfme = wrkDetlAnfme; - } - - if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme)) { - throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); - } - } - } - } - } - // 鍙栨秷鎿嶄綔浜哄憳璁板綍 - wrkMast.setManuType("鎵嬪姩鍙栨秷"); - wrkMast.setModiUser(userId); - wrkMast.setModiTime(new Date()); - if (!agvWrkMastService.updateById(wrkMast)) { - throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�"); - } - // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� - if (!agvWrkMastLogService.save(wrkMast)) { - throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo()); - } - // 鍒犻櫎宸ヤ綔涓绘。 - boolean wrkMastRes = agvWrkMastService.deleteById(wrkMast); - - if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) { - // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。 - if (!agvWrkDetlLogService.save(wrkMast.getWrkNo())) { -// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo()); - } - // 鍒犻櫎宸ヤ綔妗f槑缁� - boolean wrkDetlRes = agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", workNo)); } - // 淇敼搴撲綅鐘舵�� - AgvLocMast locMast = agvLocMastService.selectById(locNo); - if (Cools.isEmpty(locMast)) { - throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo); + //璁㈠崟鍥炴粴 + AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).get(0); + if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){ + OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); + orderDetlService.updateById(orderDetl); } - locMast.setLocSts(locSts); - locMast.setModiTime(new Date()); - locMast.setModiUser(userId); - boolean locMastRes = agvLocMastService.updateById(locMast); - if (!wrkMastRes || !locMastRes) { - throw new CoolException("淇濆瓨鏁版嵁澶辫触"); + + //淇濆瓨宸ヤ綔妗d互鍙婃槑缁� + agvWrkMastLogService.save(wrkMast); + agvWrkDetlLogService.save(wrkMast.getWrkNo()); + + //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁� + if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){ + throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); } + } /* -- Gitblit v1.9.1