From ebde535c52a9a17c599321104b13b136915b385f Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 25 九月 2025 16:53:23 +0800 Subject: [PATCH] 出库任务手动完成时直接推送mes --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 127 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index cebb70d..77b3e03 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -1227,7 +1227,7 @@ @Override @Transactional - public R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { + public synchronized R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { if (Cools.isEmpty(param)) { throw new CoolException("璇锋眰鍙傛暟鏈夎锛�" + param); @@ -1246,6 +1246,14 @@ HashMap<String, Object> xx = new HashMap<>(); List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList(); for (GwmsGenerateInventoryDto.MatList obj : matList) { + int barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("brand", obj.getPackageGroupNo())); + if (barcodeCount2 > 0) { + throw new CoolException("鍖呰缁勫彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + obj.getPackageGroupNo()); + } + int zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("brand", obj.getPackageGroupNo())); + if (zpalletCount2 > 0) { + throw new CoolException("鍖呰缁勫彿宸插瓨鍦細" + obj.getPackageGroupNo()); + } if (xx.get(obj.getPackageGroupNo()) != null) { throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑鍖呰缁勫彿锛�" + obj.getPackageGroupNo()); } else { @@ -1527,7 +1535,7 @@ return "鍑哄簱缁撴灉涓婃姤鎴愬姛"; } - private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { + public void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto(); gwmsGenerateInventoryDto.setWarehouseType(4); gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); @@ -2338,7 +2346,122 @@ } + @Override + @Transactional + public R returnOrder(ReturnOrderConfirmParam param) { + if (Cools.isEmpty(param.getOrderNumber())) { + param.setOrderNumber("THCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd)); + } + // 1. 鏌ヨ鍗曟嵁鏄惁瀛樺湪 + Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (order == null) { + // 1.1 涓嶅瓨鍦紝鏂板缓鍗曟嵁 + order = new Order(); + order.setOrderNo(param.getOrderNumber()); + order.setStatus(1); + order.setOrderTime(sdf.format(new Date())); + order.setCreateTime(new Date()); + order.setSettle(1L); + order.setDocType(26L); + order.setMemo(param.getMemo()); + orderMapper.insert(order); + } else { + // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬� + if (order.getStatus() == 4) { + order.setStatus(2); + } + orderMapper.updateById(order); + } + + + // 2. 涓�涓�瀵瑰簲閬嶅巻 + List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); + + for (int i = 0; i < volList.size(); i++) { + ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i); + + // 鏌ヨ鏄惁宸插瓨鍦ㄨ detl + OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( + param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber() + ); + + if (detl == null) { + detl = new OrderDetl(); + detl.setOrderId(order.getId()); + detl.setOrderNo(param.getOrderNumber()); + detl.setCreateTime(new Date()); + detl.setAnfme(1.0); + detl.setBrand(param.getPackageGroupNo()); // 鍖呰缁勫彿 + detl.setModel(vn.getVolumeNumber()); // 鍗峰彿 + detl.setMemo(param.getMemo()); + orderDetlMapper.insert(detl); + } else { + throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber()); + } + } + + return R.ok("缁勮揣纭鎴愬姛"); + } + + @Override + @Transactional + public R unQualifiedOrder(UnQualifiedOrderConfirmParam param) { + if (Cools.isEmpty(param.getOrderNumber())) { + param.setOrderNumber("UQCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd)); + } + // 1. 鏌ヨ鍗曟嵁鏄惁瀛樺湪 + Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + if (order == null) { + // 1.1 涓嶅瓨鍦紝鏂板缓鍗曟嵁 + order = new Order(); + order.setOrderNo(param.getOrderNumber()); + order.setStatus(1); + order.setOrderTime(sdf.format(new Date())); + order.setCreateTime(new Date()); + order.setSettle(1L); + order.setDocType(27L); + order.setMemo(param.getMemo()); + orderMapper.insert(order); + } else { + // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬� + if (order.getStatus() == 4) { + order.setStatus(2); + } + orderMapper.updateById(order); + } + + + // 2. 涓�涓�瀵瑰簲閬嶅巻 + List<UnQualifiedOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); + + for (int i = 0; i < volList.size(); i++) { + UnQualifiedOrderConfirmParam.VolumeNumber vn = volList.get(i); + + // 鏌ヨ鏄惁宸插瓨鍦ㄨ detl + OrderDetl detl = orderDetlMapper.selectByOrderNoAndVolumeNo( + param.getOrderNumber(), vn.getVolumeNumber() + ); + + if (detl == null) { + detl = new OrderDetl(); + detl.setOrderId(order.getId()); + detl.setOrderNo(param.getOrderNumber()); + detl.setCreateTime(new Date()); + detl.setAnfme(1.0); + detl.setModel(vn.getVolumeNumber()); // 鍗峰彿 + detl.setMemo(param.getMemo()); + orderDetlMapper.insert(detl); + } else { + throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber()); + } + } + + return R.ok("缁勮揣纭鎴愬姛"); + } /*...........................涓婇ザ姹熼摐..............浠ヤ笂.............寰愬伐姹変簯...........................*/ } -- Gitblit v1.9.1