From 9320540f7b6735d065fe3428484d5d47765dc160 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 30 十月 2025 12:54:41 +0800
Subject: [PATCH] gwms申请入库时判断卷号/箱号是否存在
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 162 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..bb4b011 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,51 @@
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());
+ }
+
+ // 鍗峰彿
+ HashMap<String, Object> yy = new HashMap<>();
+ // 绠卞彿
+ HashMap<String, Object> zz = new HashMap<>();
+ List<GwmsGenerateInventoryDto.Rolls> rolls = obj.getRolls();
+ for(GwmsGenerateInventoryDto.Rolls roll :rolls) {
+ barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("model", roll.getRollNo()));
+ if (barcodeCount2 > 0) {
+ throw new CoolException("鍗峰彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + roll.getRollNo());
+ }
+ zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("model", roll.getRollNo()));
+ if (zpalletCount2 > 0) {
+ throw new CoolException("鍗峰彿宸插瓨鍦ㄥ簱瀛橈細" + roll.getRollNo());
+ }
+
+ barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("unit", roll.getBoxNo()));
+ if (barcodeCount2 > 0) {
+ throw new CoolException("绠卞彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + roll.getBoxNo());
+ }
+ zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("unit", roll.getBoxNo()));
+ if (zpalletCount2 > 0) {
+ throw new CoolException("绠卞彿宸插瓨鍦ㄥ簱瀛橈細" + roll.getBoxNo());
+ }
+
+ if (yy.get(roll.getRollNo()) != null) {
+ throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑鍗峰彿锛�" + roll.getRollNo());
+ } else {
+ yy.put(roll.getRollNo(), roll.getRollNo());
+ }
+
+ if (zz.get(roll.getBoxNo()) != null) {
+ throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑绠卞彿锛�" + roll.getBoxNo());
+ } else {
+ zz.put(roll.getBoxNo(), roll.getBoxNo());
+ }
+ }
if (xx.get(obj.getPackageGroupNo()) != null) {
throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑鍖呰缁勫彿锛�" + obj.getPackageGroupNo());
} else {
@@ -1527,7 +1572,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 +2383,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