From b25fc15afed603c0c874e77d37bf93f08d5398c9 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期四, 13 二月 2025 12:18:34 +0800 Subject: [PATCH] 兼容四期 --- src/main/java/com/zy/asrs/controller/AgvMobileController.java | 137 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 122 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index b0112aa..2cc3121 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -11,6 +11,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; +import com.zy.asrs.service.impl.OrderServiceImpl; import com.zy.common.web.BaseController; import lombok.Synchronized; import org.slf4j.Logger; @@ -55,6 +56,8 @@ private SnowflakeIdWorker snowflakeIdWorker; @Autowired private FlowLogService flowLogService; + @Autowired + private OrderServiceImpl orderService; /* @@ -62,6 +65,9 @@ */ @PostMapping("/comb/auth") public R comb(@RequestBody CombParam combParam) { + if (combParam == null) { + return R.error("缂哄皯鍙傛暟"); + } agvMobileService.comb(combParam, getUserId()); return R.ok(); @@ -71,6 +77,9 @@ @RequestMapping("/pick/again/auth") @ManagerAuth(memo = "鍐嶆鎷f枡") public R pickAgain(@RequestBody PickParam pickParams) { + if (pickParams == null) { + return R.error("缂哄皯鍙傛暟"); + } agvMobileService.pickAgain(pickParams, 1l); return R.ok("鎷f枡鎴愬姛"); } @@ -80,6 +89,9 @@ */ @PostMapping("/combBinging/auth") public R combBinding(@RequestBody Map<String, Object> map) { + if (map == null || Cools.isEmpty(map.get("barcode")) || Cools.isEmpty(map.get("stationCode"))) { + return R.error("缂哄皯鍙傛暟"); + } String barcode = map.get("barcode").toString(); String stationCode = map.get("stationCode").toString(); Short containerType = Short.valueOf(barcode.substring(0, 2)); @@ -92,6 +104,9 @@ */ @PostMapping("/getBasDevp/auth") public R getBasDevpByFloor(@RequestBody Map<String, Object> map) { + if (map == null || Cools.isEmpty(map.get("floor"))) { + return R.error("缂哄皯鍙傛暟"); + } String floor = map.get("floor").toString(); if ("1".equals(floor) || "3".equals(floor)) { return R.ok(agvMobileService.getAgvBasDevpByFloor(Integer.parseInt(floor))); @@ -113,12 +128,17 @@ @PostMapping("/pakin/auth") @Synchronized public R pakin(@RequestBody Map<String, Object> map) { + if (map == null || Cools.isEmpty(map.get("devNo"))) { + return R.error("缂哄皯鍙傛暟"); + } List<String> devNos = (List<String>) map.get("devNo"); List<AgvBasDevp> agvBasDevpList = devNos.stream().map(devNo -> { return agvBasDevpService.selectById(devNo); }).collect(Collectors.toList()); - + if (agvBasDevpList == null) { + return R.error("鏆傚瓨浣嶄笉瀛樺湪"); + } workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId(), false); return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�"); @@ -132,6 +152,9 @@ @Transactional @ManagerAuth(memo = "鍚姩鍏ュ簱") public R startPakin(@RequestBody AgvMobileStartPakin params) { + if (params == null) { + return R.error("缂哄皯鍙傛暟"); + } log.info("鍚姩鍏ュ簱,{}", JSON.toJSONString(params)); // 缁勬墭 params.getCombParams().forEach(combParam -> { @@ -144,14 +167,41 @@ } /* + 鍚姩鍏ュ簱锛岀粍鎵� + 鐢熸垚宸ヤ綔妗�,涓昏鐢ㄤ簬鍚稿涓�妤肩殑鍏ュ簱 + */ + @PostMapping("/start/pakin/auth/v2") + @Synchronized + @Transactional + @ManagerAuth(memo = "鍚姩鍏ュ簱v2") + public R startPakinV2(@RequestBody AgvMobileStartPakin params) { + if (params == null) { + return R.error("缂哄皯鍙傛暟"); + } + log.info("鍚姩鍏ュ簱v2,{}", JSON.toJSONString(params)); + // 缁勬墭 + params.getCombParams().forEach(combParam -> { + agvMobileService.comb(combParam, getUserId()); + }); + params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2))); + workService.emptyPlateInV2(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false, params.getFactory()); + + return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�"); + } + + /* 鍏ュ簱 */ @PostMapping("/pakin/empty/auth") @Synchronized @ManagerAuth(memo = "绌烘澘鍏ュ簱") public R pakinEmpty(@RequestBody AgvMobileStartParam params) { - + if (params == null) { + return R.error("缂哄皯鍙傛暟"); + } for (AgvMobileStartParam.Pda pda : params.getPad()) { + if (pda == null || Cools.isEmpty(pda.getContainerCode())) { + return R.error("缂哄皯瀹瑰櫒鍙傛暟"); + } pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0, 2))); workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false); } @@ -166,8 +216,13 @@ @Synchronized @ManagerAuth(memo = "绌烘澘鍑哄簱") public R pakoutEmpty(@RequestBody AgvMobileStartParam params) { - + if (params == null) { + return R.error("缂哄皯鍙傛暟"); + } for (AgvMobileStartParam.Pda pda : params.getPad()) { + if (pda == null || Cools.isEmpty(pda.getDevNo()) || Cools.isEmpty(pda.getContainerType())) { + return R.error("缂哄皯绔欑偣淇℃伅"); + } workService.emptyPlateOut(pda.getDevNo(), pda.getContainerType(), getUserId()); } @@ -179,8 +234,13 @@ */ @PostMapping("/pakout/empty/container/selector/auth") public R containerType(@RequestBody HashMap<String, String> params) { - + if (params == null) { + return R.error("缂哄皯鍙傛暟"); + } String devNo = params.get("devNo"); + if (Cools.isEmpty(devNo)) { + return R.error("缂哄皯绔欑偣鏁版嵁"); + } AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); return R.ok(agvLocMastService.queryContainerTypeByLocType1(agvBasDevp.getLocType1())); @@ -243,7 +303,9 @@ String threeCode = params.get("threeCode"); String matnr = params.get("matnr"); String floor = params.get("floor"); - + if (Cools.isEmpty(matnr)) { + return R.error("鍙傛暟缂哄け"); + } Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts", 1); @@ -284,7 +346,9 @@ String threeCode = params.get("threeCode"); String matnr = params.get("matnr"); String floor = params.get("floor"); - + if (Cools.isEmpty(orderNo, threeCode, matnr)) { + return R.error("鍙傛暟缂哄け"); + } OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("three_code", threeCode).eq("matnr", matnr)); Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr); @@ -377,7 +441,9 @@ AgvLocMast agvLocMastByContainerCode = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("barcode", containerCode)); AgvLocMast agvLocMastByLocNo = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); - + if (agvLocMastByLocNo == null) { + return R.error("搴撲綅涓嶅瓨鍦�"); + } String barcode1 = agvLocMastByLocNo.getBarcode(); @@ -406,6 +472,9 @@ agvLocMastByContainerCode.setBarcode(barcode1); agvLocMastService.updateById(agvLocMastByContainerCode); } + // 淇濆瓨璋冩暣璁板綍 + AdjDetl adjDetl = new AdjDetl(); + return R.ok("缁存姢鎴愬姛"); } @@ -481,6 +550,7 @@ @Transactional @ManagerAuth(memo = "璋冩嫧鍗曚换鍔′笅鍙�") @Synchronized + @Deprecated //涓嶇敤浜� public R agvLocMove(@RequestBody HashMap<String, Object> params) { String fl = String.valueOf(params.get("floor")); short floor = (short) Integer.parseInt(fl.substring(0, 1)); @@ -497,6 +567,9 @@ String locNo = map.get("locNo"); Wrapper<AgvLocMast> wrapper = new EntityWrapper<AgvLocMast>().eq("loc_no", locNo); AgvLocMast agvLocMast = agvLocMastService.selectOne(wrapper); + if (agvLocMast == null) { + return R.error("搴撲綅涓嶅瓨鍦�"); + } agvLocMast.setLocType(moveType); agvLocMast.setLocType3(floor); agvLocMastService.update(agvLocMast, wrapper); @@ -505,6 +578,9 @@ for (AgvLocDetl agvLocDetl : agvLocDetls) { // 鏇存柊璁㈠崟 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); + if (orderDetl == null) { + throw new CoolException("璋冩嫧鍗曟槑缁嗕笉瀛樺湪"); + } orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); @@ -525,6 +601,7 @@ List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList"); params.get("dbList"); Object mT = params.get("moveType"); + String orderNo = params.get("orderNo").toString(); String moveType = ""; Integer ioType = 0; if (mT.equals("unAuto")) { @@ -550,7 +627,7 @@ if (Cools.isEmpty(locMastS)) { throw new CoolException("褰撳墠搴撲綅闈炲湪搴撶姸鎬侊紒搴撲綅鍙�=" + locNo); } - AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30, floor); + AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), Integer.parseInt(barcode.substring(0,2)), floor); // 鍚屾璋冩嫧鍗� long flowId = snowflakeIdWorker.nextId(); List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); @@ -559,6 +636,7 @@ wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.sync(agvLocDetl); wrkDetl.setSuppCode(agvLocDetl.getSuppCode()); + wrkDetl.setModel(orderNo); wrkDetl.setIoTime(now); wrkDetl.setAppeUser(getUserId()); wrkDetl.setAppeTime(now); @@ -567,10 +645,13 @@ if (!agvWrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } - // 鏇存柊璁㈠崟 - OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); -// FlowLog flowLog = new FlowLog(); + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); + // 鍒ゆ柇璁㈠崟鏄惁瓒呴噺 + if (orderDetl.getQty() >= orderDetl.getAnfme()) { + throw new CoolException("璋冩嫧鍗�:" + orderNo + "鐨�<" + agvLocDetl.getMatnr() + ">宸插畬鎴愯皟鎷ㄦ暟閲�,璇锋鏌�!"); + } + // FlowLog flowLog = new FlowLog(); // flowLog.setFid(String.valueOf(flowId)); // flowLog.setSpare2(wrkMast.getWrkNo().toString()); // flowLog.setLocNo(wrkMast.getSourceLocNo()); @@ -597,8 +678,16 @@ // throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); // } orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); - if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { - throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); + if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { + throw new CoolException("璁㈠崟鍙凤細{" + orderNo + "}鏇存柊璁㈠崟鏄庣粏澶辫触锛� 寮傚父鐗╂枡:" + agvLocDetl.getMatnr() + "(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)"); + } + // 鏇存柊璁㈠崟鐘舵�� + Order order = orderService.selectByNo(orderDetl.getOrderNo()); + Long settle = order.getSettle(); + if (settle == 1L) { + if (!orderService.updateSettle(order.getId(), 2L, getUserId())) { + throw new CoolException("璁㈠崟鍙凤細{" + order.getOrderNo() + "}鏇存柊璁㈠崟鐘舵�侊細1-->2 澶辫触锛�(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)"); + } } } // 鏇存柊婧愬簱浣� @@ -617,6 +706,7 @@ Date now = new Date(); List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList"); params.get("dbList"); + String orderNo = params.get("orderNo").toString(); for (HashMap<String, String> map : dbList) { String locNo = map.get("locNo"); String barcode = map.get("suppCode"); @@ -647,10 +737,18 @@ // 鏇存柊璁㈠崟 // 鍏堟煡璇㈠簱璁㈠崟鏄庣粏 鎵�灞炵殑璁㈠崟 - OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source", 36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); - if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("source", 36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { + if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); + } + // 鏇存柊璁㈠崟鐘舵�� + Order order = orderService.selectByNo(orderNo); + Long settle = order.getSettle(); + if (settle == 1L) { + if (!orderService.updateSettle(order.getId(), 2L, getUserId())) { + throw new CoolException("璁㈠崟鍙凤細{" + order.getOrderNo() + "}鏇存柊璁㈠崟鐘舵�侊細1-->2 澶辫触锛�(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)"); + } } } // 鏇存柊婧愬簱浣� @@ -736,6 +834,15 @@ return R.ok(); } + @PostMapping("/hand/control/processed/v2") + @Transactional + @ManagerAuth(memo = "纭鍔犲伐瀹屾垚V2") + @Synchronized + public R processedV2(@RequestBody AgvMobileStartPakin param) { + agvMobileService.processedV2(param, getUserId()); + return R.ok(); + } + public static void main(String[] args) { List<AgvLocDetl> agvLocDetls1 = new ArrayList<>(); -- Gitblit v1.9.1