From 061753c5c014862564e56f22af0a685f0efd0fde Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 19 十二月 2025 08:56:16 +0800
Subject: [PATCH] #库存预留
---
src/main/webapp/views/inventoryReserve/inventoryReserve.html | 2
src/main/java/com/zy/asrs/controller/OrderPakoutController.java | 17 +++--
src/main/java/com/zy/asrs/controller/InventoryReserveController.java | 1
src/main/java/com/zy/asrs/controller/OrderPakinController.java | 19 ++++++
src/main/java/com/zy/asrs/entity/InventoryReserve.java | 30 +++++++++
src/main/java/com/zy/common/constant/ApiInterfaceConstant.java | 2
src/main/java/com/zy/asrs/controller/InventoryReserveLogController.java | 1
src/main/webapp/static/js/inventoryReserve/inventoryReserve.js | 9 ++-
src/main/java/com/zy/asrs/controller/OrderDetlPakinController.java | 9 +++
src/main/java/com/zy/asrs/controller/OutController.java | 37 +++++++++++
src/main/java/com/zy/asrs/entity/InventoryReserveLog.java | 28 +++++++++
11 files changed, 140 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/InventoryReserveController.java b/src/main/java/com/zy/asrs/controller/InventoryReserveController.java
index eebe4f9..fd84f06 100644
--- a/src/main/java/com/zy/asrs/controller/InventoryReserveController.java
+++ b/src/main/java/com/zy/asrs/controller/InventoryReserveController.java
@@ -43,6 +43,7 @@
convert(param, wrapper);
allLike(InventoryReserve.class, param.keySet(), wrapper, condition);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ wrapper.orderBy("create_time", false);
return R.ok(inventoryReserveService.selectPage(new Page<>(curr, limit), wrapper));
}
diff --git a/src/main/java/com/zy/asrs/controller/InventoryReserveLogController.java b/src/main/java/com/zy/asrs/controller/InventoryReserveLogController.java
index b68c6d8..6031ef2 100644
--- a/src/main/java/com/zy/asrs/controller/InventoryReserveLogController.java
+++ b/src/main/java/com/zy/asrs/controller/InventoryReserveLogController.java
@@ -43,6 +43,7 @@
convert(param, wrapper);
allLike(InventoryReserveLog.class, param.keySet(), wrapper, condition);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ wrapper.orderBy("create_time", false);
return R.ok(inventoryReserveLogService.selectPage(new Page<>(curr, limit), wrapper));
}
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlPakinController.java b/src/main/java/com/zy/asrs/controller/OrderDetlPakinController.java
index 1b18ad7..4241895 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlPakinController.java
@@ -9,6 +9,7 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.OrderDetlPakin;
import com.zy.asrs.service.OrderDetlPakinService;
import com.zy.common.web.BaseController;
@@ -27,6 +28,14 @@
@Autowired
private OrderDetlPakinService orderDetlService;
+ @PostMapping("/orderDetl/list/pda/auth")
+ public R getPdaOrderDetl(@RequestBody Map<String,Object> map) {
+ EntityWrapper<OrderDetlPakin> wrapper = new EntityWrapper<>();
+ wrapper.eq("order_no", map.get("orderNo"));
+ List<OrderDetlPakin> orderDetls = orderDetlService.selectList(wrapper);
+ return R.ok(orderDetls);
+ }
+
@RequestMapping(value = "/orderDetl/{id}/auth")
@ManagerAuth
public R get(@PathVariable("id") String id) {
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakinController.java b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
index 4b61e60..5dc404f 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
@@ -45,6 +45,25 @@
@Autowired
private ClientService clientService;
+ @RequestMapping(value = "/order/list/pda/page/auth")
+ @ManagerAuth
+ public R pdaPageList(@RequestParam(required = true)Long tagId,
+ @RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit){
+ List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+ ArrayList<Integer> arrayList = new ArrayList<>();
+ docTypes.forEach(docType -> {
+ arrayList.add(docType.getDocId().intValue());
+ });
+ EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>();
+// wrapper.eq("tag_id", tagId);
+ wrapper.in("doc_type", arrayList);
+ wrapper.in("settle",1,2);
+ wrapper.orderBy("create_time", false);
+ Page<OrderPakin> orderPage = orderService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok().add(orderPage);
+ }
+
@RequestMapping(value = "/order/nav/list/auth")
@ManagerAuth
public R navList(@RequestParam(required = false) String orderNo) {
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
index 461175e..99b7899 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
@@ -202,18 +202,21 @@
if (null == client){
return R.error("瀹㈡埛涓嶅瓨鍦�");
}
+ order.setCstmr(client.getCode());
+ order.setCstmrName(client.getName());
// 淇敼涓绘。
if (!param.getDocType().equals(order.getDocType()) || !param.getOrderTime().equals(order.getOrderTime())) {
- order.setCstmr(client.getCode());
- order.setCstmrName(client.getName());
+
order.setDocType(param.getDocType());
order.setOrderTime(param.getOrderTime());
- order.setUpdateBy(userId);
- order.setUpdateTime(now);
- if (!orderService.updateById(order)) {
- throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触");
- }
+
}
+ order.setUpdateBy(userId);
+ order.setUpdateTime(now);
+ if (!orderService.updateById(order)) {
+ throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触");
+ }
+
// 淇敼鏄庣粏妗�
// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
// 1.娓呯┖鏄庣粏妗�
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 0c5feea..f729b42 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -17,6 +17,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -46,6 +47,9 @@
@Resource
private OrderPakoutService orderPakOutService;
+
+ @Autowired
+ private InventoryReserveService inventoryReserveService;
@PostMapping("/out/pakout/orderDetlIds/auth")
@@ -122,12 +126,41 @@
}
} else {
for (OrderDetlPakout orderDetl : orderDetlPakouts) {
+
+ List<InventoryReserve> inventoryReserves = inventoryReserveService.selectList(new EntityWrapper<InventoryReserve>()
+ .eq("matnr", orderDetl.getMatnr())
+ .eq("batch", orderDetl.getBatch())
+ //濡傛灉璁㈠崟鍙蜂笉涓虹┖锛屽垯鏌ヨ璁㈠崟鍙蜂笉涓簅rderDetl.getOrderNo()鐨勫簱瀛橀鐣欒褰曪紝鍚﹀垯鏌ヨ鎵�鏈夊簱瀛橀鐣欒褰�
+ .ne(!Cools.isEmpty(orderDetl.getOrderNo()), "order_no", orderDetl.getOrderNo())
+ .eq(!Cools.isEmpty(orderDetl.getBrand()), "brand", orderDetl.getBrand())
+ .eq(!Cools.isEmpty(orderDetl.getStandby1()), "standby1", orderDetl.getStandby1())
+ .eq(!Cools.isEmpty(orderDetl.getStandby2()), "standby2", orderDetl.getStandby2())
+ .eq(!Cools.isEmpty(orderDetl.getStandby3()), "standby3", orderDetl.getStandby3())
+ .eq(!Cools.isEmpty(orderDetl.getBoxType1()), "box_type1", orderDetl.getBoxType1())
+ .eq(!Cools.isEmpty(orderDetl.getBoxType2()), "box_type2", orderDetl.getBoxType2())
+ .eq(!Cools.isEmpty(orderDetl.getBoxType3()), "box_type3", orderDetl.getBoxType3())
+
+ );
+ // 濡傛灉搴撳瓨棰勭暀璁板綍涓嶄负绌猴紝浣跨敤steam灏嗗簱瀛橀鐣欒褰曚腑鐨勫簱瀛樻暟閲忓叏閮ㄥ姞璧锋潵,瀛楁涓簈uantity锛岀被鍨嬩负BigDecimal
+ BigDecimal inventoryReserveQuantity = inventoryReserves.stream().map(InventoryReserve::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+ //鑾峰彇搴撳瓨涓殑搴撳瓨鏁伴噺
+ List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist, orderDetl.getMatnr(), orderDetl.getBatch(),
+ orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3());
+
+ // 浣跨敤steam灏唋ocDetls涓殑搴撳瓨鏁伴噺鍏ㄩ儴鍔犺捣鏉�,瀛楁涓簈uantity锛孌ouble绫诲瀷
+ BigDecimal locDetlQuantity = locDetls.stream().map(LocDetl::getAnfme).map(BigDecimal::valueOf).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+ if (locDetlQuantity.subtract(new BigDecimal(orderDetl.getAnfme())).compareTo(inventoryReserveQuantity) < 0) {
+ return R.parse("搴撳瓨棰勭暀鏁伴噺澶т簬搴撳瓨鏁伴噺");
+ }
+
+
+
+
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
if (issued <= 0.0D) {
continue;
}
- List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist, orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3());
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
diff --git a/src/main/java/com/zy/asrs/entity/InventoryReserve.java b/src/main/java/com/zy/asrs/entity/InventoryReserve.java
index 8e7072c..0a252a0 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryReserve.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryReserve.java
@@ -7,6 +7,10 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
+
+import com.core.common.SpringUtils;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -137,7 +141,7 @@
// null // 鏇存柊浜哄憳
// );
- public String getExpiceTime$(){
+ public String getExpireTime$(){
if (Cools.isEmpty(this.expireTime)){
return "";
}
@@ -158,5 +162,29 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
}
+ public String getCreateBy$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.createBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ if (this.createBy == 9527){
+ return "super";
+ }
+ return null;
+ }
+
+ public String getUpdateBy$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.updateBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ if (this.createBy == 9527){
+ return "super";
+ }
+ return null;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java b/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
index 5cceeeb..abe39e4 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryReserveLog.java
@@ -7,6 +7,10 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
+
+import com.core.common.SpringUtils;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -158,5 +162,29 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
}
+ public String getCreateBy$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.createBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ if (this.createBy == 9527){
+ return "super";
+ }
+ return null;
+ }
+
+ public String getUpdateBy$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.updateBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ if (this.createBy == 9527){
+ return "super";
+ }
+ return null;
+ }
+
}
diff --git a/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java b/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java
index fb4ec32..c5f93a0 100644
--- a/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java
+++ b/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java
@@ -14,7 +14,7 @@
*/
// public static final String URI = "http://192.168.99.130:80";
// 娴嬭瘯鍦板潃
- public static final String ERP_IP = "http://127.0.0.1:8080/yhfzwms/open/asrs";
+ public static final String ERP_IP = "http://127.0.0.1:8080/wms/open/asrs";
/**
* 鍏ュ簱瀹屾垚涓婃姤璺緞
diff --git a/src/main/webapp/static/js/inventoryReserve/inventoryReserve.js b/src/main/webapp/static/js/inventoryReserve/inventoryReserve.js
index 9ddcf97..1d2d852 100644
--- a/src/main/webapp/static/js/inventoryReserve/inventoryReserve.js
+++ b/src/main/webapp/static/js/inventoryReserve/inventoryReserve.js
@@ -29,8 +29,11 @@
{ field: 'orderNo', align: 'center', title: '璁㈠崟鍙�', width: 150 },
{ field: 'batch', align: 'center', title: '鎵规', width: 120 },
{ field: 'quantity', align: 'center', title: '鏁伴噺', width: 100 },
- { field: 'expiceTime$', align: 'center', title: '杩囨湡鏃堕棿', width: 180 },
- { field: 'createTime$', align: 'center', title: '鍒涘缓鏃堕棿', width: 180 },
+ { field: 'expireTime$', align: 'center', title: '杩囨湡鏃堕棿', width: 180 },
+ { field: 'createTime$', align: 'center', title: '鍒涘缓鏃堕棿', width: 180 ,hide:true},
+ { field: 'updateTime$', align: 'center', title: '鏇存柊鏃堕棿', width: 180 },
+ { field: 'createBy$', align: 'center', title: '鍒涘缓浜�', width: 100 },
+ { field: 'updateBy$', align: 'center', title: '鏇存柊浜�', width: 100 },
{ fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 150 }
]],
request: {
@@ -107,7 +110,7 @@
// 娓叉煋鏃ユ湡閫夋嫨鍣�
layDate.render({
- elem: '#expiceTime',
+ elem: '#expireTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss'
});
diff --git a/src/main/webapp/views/inventoryReserve/inventoryReserve.html b/src/main/webapp/views/inventoryReserve/inventoryReserve.html
index 5a6bd1e..42780c5 100644
--- a/src/main/webapp/views/inventoryReserve/inventoryReserve.html
+++ b/src/main/webapp/views/inventoryReserve/inventoryReserve.html
@@ -121,7 +121,7 @@
<div class="layui-form-item">
<label class="layui-form-label">杩囨湡鏃堕棿</label>
<div class="layui-input-block">
- <input id="expiceTime" name="expiceTime" placeholder="閫夋嫨杩囨湡鏃堕棿锛堝彲閫夛級" class="layui-input" autocomplete="off">
+ <input id="expireTime" name="expireTime" placeholder="閫夋嫨杩囨湡鏃堕棿锛堝彲閫夛級" class="layui-input" autocomplete="off">
</div>
</div>
<hr class="layui-bg-gray">
--
Gitblit v1.9.1