From b0d80cc56a883a6fac242623e778a3ae20c71b79 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 19 十二月 2025 14:59:08 +0800
Subject: [PATCH] #库存预留
---
src/main/java/com/zy/asrs/controller/OrderPakoutController.java | 7 +
src/main/java/com/zy/asrs/task/handler/InventoryReserveExpireHandler.java | 85 +++++++++++++--------
src/main/java/com/zy/asrs/entity/InventoryReserve.java | 42 ++++++++++
src/main/webapp/static/js/inventoryReserveLog/inventoryReserveLog.js | 3
src/main/java/com/zy/asrs/entity/InventoryReserveLog.java | 45 +++++++++++
5 files changed, 149 insertions(+), 33 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
index 5fc8cc9..0165712 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
@@ -492,6 +492,13 @@
reserve.setCreateBy(userId);
reserve.setUpdateTime(now);
reserve.setUpdateBy(userId);
+ reserve.setBrand(detl.getBrand());
+ reserve.setStandby1(detl.getStandby1());
+ reserve.setStandby2(detl.getStandby2());
+ reserve.setStandby3(detl.getStandby3());
+ reserve.setBoxType1(detl.getBoxType1());
+ reserve.setBoxType2(detl.getBoxType2());
+ reserve.setBoxType3(detl.getBoxType3());
inventoryReserveService.insert(reserve);
}
return R.ok("棰勭暀鎴愬姛锛屽叡鍒涘缓 " + orderDetls.size() + " 鏉¢鐣欒褰�");
diff --git a/src/main/java/com/zy/asrs/entity/InventoryReserve.java b/src/main/java/com/zy/asrs/entity/InventoryReserve.java
index 0a252a0..120ea02 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryReserve.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryReserve.java
@@ -111,6 +111,48 @@
@TableField("update_by")
private Long updateBy;
+ @ApiModelProperty(value = "鍝佺墝")
+ private String brand;
+
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value = "澶囩敤1")
+ private String standby1 = "";
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value = "澶囩敤2")
+ private String standby2 = "";
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value = "澶囩敤3")
+ private String standby3 = "";
+
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value = "澶囩敤1")
+ @TableField("box_type1")
+ private String boxType1 = "1";
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value = "澶囩敤2")
+ @TableField("box_type2")
+ private String boxType2 = "1";
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value = "澶囩敤3")
+ @TableField("box_type3")
+ private String boxType3 = "1";
+
public InventoryReserve() {}
public InventoryReserve(String matnr,String maktx,String orderNo,String batch,BigDecimal quantity,Date expiceTime,Long deptId,Date createTime,Long createBy,Date updateTime,Long updateBy) {
diff --git a/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java b/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
index abe39e4..bbfe958 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
@@ -111,6 +111,51 @@
@TableField("update_by")
private Long updateBy;
+ @ApiModelProperty(value = "鍝佺墝")
+ private String brand;
+
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value = "澶囩敤1")
+ private String standby1 = "";
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value = "澶囩敤2")
+ private String standby2 = "";
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value = "澶囩敤3")
+ private String standby3 = "";
+
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value = "澶囩敤1")
+ @TableField("box_type1")
+ private String boxType1 = "1";
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value = "澶囩敤2")
+ @TableField("box_type2")
+ private String boxType2 = "1";
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value = "澶囩敤3")
+ @TableField("box_type3")
+ private String boxType3 = "1";
+
+ @ApiModelProperty(value = "澶囨敞")
+ private String memo;
+
public InventoryReserveLog() {}
public InventoryReserveLog(String matnr,String maktx,String orderNo,String batch,BigDecimal quantity,Date expiceTime,Long deptId,Date createTime,Long createBy,Date updateTime,Long updateBy) {
diff --git a/src/main/java/com/zy/asrs/task/handler/InventoryReserveExpireHandler.java b/src/main/java/com/zy/asrs/task/handler/InventoryReserveExpireHandler.java
index 701d3d0..6fc75c0 100644
--- a/src/main/java/com/zy/asrs/task/handler/InventoryReserveExpireHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/InventoryReserveExpireHandler.java
@@ -1,13 +1,17 @@
package com.zy.asrs.task.handler;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.zy.asrs.entity.InventoryReserve;
import com.zy.asrs.entity.InventoryReserveLog;
+import com.zy.asrs.entity.OrderPakout;
import com.zy.asrs.service.InventoryReserveLogService;
import com.zy.asrs.service.InventoryReserveService;
+import com.zy.asrs.service.OrderPakoutService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
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;
@@ -18,6 +22,9 @@
/**
* 棰勭暀搴撳瓨杩囨湡澶勭悊鍣�
* 灏嗚繃鏈熺殑棰勭暀搴撳瓨杞Щ鍒版棩蹇楄〃
+ * 杞巻鍙叉潯浠讹細
+ * 1. 杩囨湡鏃堕棿涓嶄负绌轰笖宸茶繃鏈�
+ * 2. 璁㈠崟鍙蜂笉涓虹┖涓旇鍗曠姸鎬佷负浣滀笟涓�(1)鎴栧凡瀹屾垚(2)
*/
@Slf4j
@Service
@@ -29,55 +36,69 @@
@Autowired
private InventoryReserveLogService inventoryReserveLogService;
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> start() {
- // 鏌ヨ杩囨湡鐨勯鐣欏簱瀛橈紙杩囨湡鏃堕棿涓嶄负绌轰笖灏忎簬褰撳墠鏃堕棿锛�
Date now = new Date();
- List<InventoryReserve> expiredList = inventoryReserveService.selectList(
- new EntityWrapper<InventoryReserve>()
- .isNotNull("expire_time")
- .lt("expire_time", now));
- if (expiredList.isEmpty()) {
+ // 鏌ヨ鎵�鏈夐鐣欏簱瀛樿褰�
+ List<InventoryReserve> allReserves = inventoryReserveService.selectList(new EntityWrapper<>());
+
+ if (allReserves.isEmpty()) {
return SUCCESS;
}
- log.info("鍙戠幇 {} 鏉¤繃鏈熺殑棰勭暀搴撳瓨璁板綍", expiredList.size());
-
- for (InventoryReserve reserve : expiredList) {
+ int processedCount = 0;
+ for (InventoryReserve reserve : allReserves) {
try {
- // 杞Щ鍒版棩蹇楄〃
- InventoryReserveLog logRecord = getInventoryReserveLog(reserve);
+ boolean shouldArchive = false;
+ String archiveReason = null;
- inventoryReserveLogService.insert(logRecord);
+ // 鏉′欢1锛氳繃鏈熸椂闂翠笉涓虹┖涓斿凡杩囨湡
+ if (reserve.getExpireTime() != null && reserve.getExpireTime().before(now)) {
+ shouldArchive = true;
+ archiveReason = "宸茶繃鏈�";
+ }
- // 鍒犻櫎鍘熻褰�
- inventoryReserveService.deleteById(reserve.getId());
+ // 鏉′欢2锛氳鍗曞彿涓嶄负绌轰笖璁㈠崟鐘舵�佷负浣滀笟涓垨宸插畬鎴�
+ if (!shouldArchive && !Cools.isEmpty(reserve.getOrderNo())) {
+ OrderPakout order = orderPakoutService.selectOne(
+ new EntityWrapper<OrderPakout>().eq("order_no", reserve.getOrderNo()));
+ if (null != order) {
+ if (order.getSettle() != 1) {
+ shouldArchive = true;
+ archiveReason = "璁㈠崟涓嶄负寰呭鐞嗙姸鎬�";
+ }
+ }
+ }
- log.info("棰勭暀搴撳瓨杩囨湡澶勭悊瀹屾垚: id={}, matnr={}, batch={}",
- reserve.getId(), reserve.getMatnr(), reserve.getBatch());
+ if (shouldArchive) {
+ // 杞Щ鍒版棩蹇楄〃
+ InventoryReserveLog logRecord = new InventoryReserveLog();
+ BeanUtils.copyProperties(reserve, logRecord);
+ logRecord.setMemo(archiveReason);
+ inventoryReserveLogService.insert(logRecord);
+
+ // 鍒犻櫎鍘熻褰�
+ inventoryReserveService.deleteById(reserve.getId());
+
+ log.info("棰勭暀搴撳瓨杞巻鍙插畬鎴�: id={}, matnr={}, batch={}, 鍘熷洜={}",
+ reserve.getId(), reserve.getMatnr(), reserve.getBatch(), archiveReason);
+ processedCount++;
+ }
} catch (Exception e) {
- log.error("棰勭暀搴撳瓨杩囨湡澶勭悊澶辫触: id={}, error={}", reserve.getId(), e.getMessage());
+ log.error("棰勭暀搴撳瓨杞巻鍙插け璐�: id={}, error={}", reserve.getId(), e.getMessage());
}
}
- return SUCCESS;
- }
+ if (processedCount > 0) {
+ log.info("鏈鍏卞鐞� {} 鏉¢鐣欏簱瀛樿浆鍘嗗彶璁板綍", processedCount);
+ }
- private static InventoryReserveLog getInventoryReserveLog(InventoryReserve reserve) {
- InventoryReserveLog logRecord = new InventoryReserveLog();
- logRecord.setMatnr(reserve.getMatnr());
- logRecord.setMaktx(reserve.getMaktx());
- logRecord.setOrderNo(reserve.getOrderNo());
- logRecord.setBatch(reserve.getBatch());
- logRecord.setQuantity(reserve.getQuantity());
- logRecord.setExpireTime(reserve.getExpireTime());
- logRecord.setDeptId(reserve.getDeptId());
- logRecord.setCreateTime(reserve.getCreateTime());
- logRecord.setCreateBy(reserve.getCreateBy());
- logRecord.setUpdateTime(new Date());
- return logRecord;
+ return SUCCESS;
}
}
diff --git a/src/main/webapp/static/js/inventoryReserveLog/inventoryReserveLog.js b/src/main/webapp/static/js/inventoryReserveLog/inventoryReserveLog.js
index 041b05c..c3d896a 100644
--- a/src/main/webapp/static/js/inventoryReserveLog/inventoryReserveLog.js
+++ b/src/main/webapp/static/js/inventoryReserveLog/inventoryReserveLog.js
@@ -26,7 +26,8 @@
{ field: 'quantity', align: 'center', title: '鏁伴噺', width: 100 },
{ field: 'expiceTime$', align: 'center', title: '杩囨湡鏃堕棿', width: 180 },
{ field: 'createTime$', align: 'center', title: '鍘熷垱寤烘椂闂�', width: 180 },
- { field: 'updateTime$', align: 'center', title: '杞Щ鏃堕棿', width: 180 }
+ { field: 'updateTime$', align: 'center', title: '杞Щ鏃堕棿', width: 180 },
+ { field: 'memo', align: 'center', title: '杩囨湡鍘熷洜', width: 180 }
]],
request: {
pageName: 'curr',
--
Gitblit v1.9.1