From e350fc16a0655dee101b3198cfa6bd6a6b56877c Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期一, 12 一月 2026 15:41:56 +0800
Subject: [PATCH] 入库流程功能 优化

---
 src/main/java/com/zy/asrs/entity/LocAroundBind.java      |   12 ++++
 src/main/java/com/zy/asrs/entity/OrderDetl.java          |    2 
 src/main/webapp/views/locAroundBind/locAroundBind.html   |   16 ++++-
 src/main/java/com/zy/asrs/utils/OrderExcelListener.java  |   60 +++++++++++++------
 src/main/webapp/static/js/locAroundBind/locAroundBind.js |    1 
 src/main/java/com/zy/asrs/entity/Mat.java                |    2 
 src/main/webapp/static/js/order/order.js                 |    5 +
 src/main/webapp/static/js/common.js                      |   18 +++---
 src/main/webapp/static/js/orderPakin/order.js            |   20 ++++--
 9 files changed, 92 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/LocAroundBind.java b/src/main/java/com/zy/asrs/entity/LocAroundBind.java
index f129d5b..a21eb0e 100644
--- a/src/main/java/com/zy/asrs/entity/LocAroundBind.java
+++ b/src/main/java/com/zy/asrs/entity/LocAroundBind.java
@@ -47,6 +47,10 @@
     @TableField("b_loc_no")
     private String bLocNo;
 
+    @ApiModelProperty("鏄惁榛樿")
+    @TableField("is_default")
+    private Integer isDefault;
+
     public LocAroundBind() {}
 
     public LocAroundBind(Long devId,String devNo,Long bLocId,String bLocNo) {
@@ -56,6 +60,14 @@
         this.bLocNo = bLocNo;
     }
 
+    public String getDef$() {
+        if (this.isDefault == 0) {
+            return "鍚�";
+        } else {
+            return "鏄�";
+        }
+    }
+
 //    LocAroundBind locAroundBind = new LocAroundBind(
 //            null,    // 鏈哄彴ID[闈炵┖]
 //            null,    // 鏈哄彴鍙穂闈炵┖]
diff --git a/src/main/java/com/zy/asrs/entity/Mat.java b/src/main/java/com/zy/asrs/entity/Mat.java
index 1ccd199..063e250 100644
--- a/src/main/java/com/zy/asrs/entity/Mat.java
+++ b/src/main/java/com/zy/asrs/entity/Mat.java
@@ -204,7 +204,7 @@
      * 浣撶Н
      */
     @ApiModelProperty(value= "浣撶Н")
-    @ExcelProperty(value = "浣撶Н")
+    @ExcelProperty(value = "姣忓叕鏂ら暱搴�")
     private Double volume;
 
     /**
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index ddf62af..34be8e5 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -191,7 +191,6 @@
      */
     @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�")
     @TableField("safe_qty")
-    @ExcelProperty(value = "褰掗浂闃�鍊�")
     private Double safeQty;
 
     /**
@@ -211,7 +210,6 @@
      * 浣撶Н
      */
     @ApiModelProperty(value= "浣撶Н")
-    @ExcelProperty(value = "kg/cm")
     private Double volume;
 
     /**
diff --git a/src/main/java/com/zy/asrs/utils/OrderExcelListener.java b/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
index 4a05dd6..76e343a 100644
--- a/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
+++ b/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
@@ -22,7 +22,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 @Slf4j
-public class OrderExcelListener  extends AnalysisEventListener<OrderExcel> {
+public class OrderExcelListener extends AnalysisEventListener<OrderExcel> {
 
     private int total = 0;
     private Long userId;
@@ -48,16 +48,17 @@
 
     /**
      * 鍗曟嵁瀵煎叆瀹炵幇
+     *
+     * @param data
+     * @param context
      * @author Ryan
      * @date 2026/1/8 17:25
-     * @param data
-     * @param context 
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void invoke(OrderExcel data, AnalysisContext context) {
-        OrderService orderService = (OrderService) SpringUtils.getBean(OrderService.class);
-        OrderDetlService detlService = (OrderDetlService) SpringUtils.getBean(OrderDetlService.class);
+        OrderService orderService = SpringUtils.getBean(OrderService.class);
+        OrderDetlService detlService = SpringUtils.getBean(OrderDetlService.class);
         MatService matService = SpringUtils.getBean(MatService.class);
         DocTypeService docTypeService = SpringUtils.getBean(DocTypeService.class);
         Date now = new Date();
@@ -77,17 +78,27 @@
 
         Order order = new Order();
         order.setOrderNo(data.getOrderNo());
-        order.setDocType(docType.getDocId());
-        order.setUuid(UUID.randomUUID().toString());
-        order.setCreateTime(now);
-        order.setUpdateTime(now);
-        order.setSettle(1L);
-        order.setStatus(1);
-        order.setCreateBy(userId);
-        order.setUpdateBy(userId);
-        order.setPakinPakoutStatus(docType.getPakin() == 1 ? 1 : 2);    
-        if (!orderService.insert(order)) {
-            throw new CoolException("璁㈠崟鍒涘缓澶辫触锛侊紒");
+        if (Objects.isNull(data.getOrderNo())) {
+            throw new CoolException("鍗曟嵁缂栫爜涓嶈兘涓虹┖锛侊紒");
+        }
+        order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", data.getOrderNo()));
+        if (!Objects.isNull(order)) {
+            //璁㈠崟宸插瓨鍦紝鍙坊鍔犳槑缁�
+        } else {
+            order = new Order();
+            order.setOrderNo(data.getOrderNo());
+            order.setDocType(docType.getDocId());
+            order.setUuid(UUID.randomUUID().toString());
+            order.setCreateTime(now);
+            order.setUpdateTime(now);
+            order.setSettle(1L);
+            order.setStatus(1);
+            order.setCreateBy(userId);
+            order.setUpdateBy(userId);
+            order.setPakinPakoutStatus(docType.getPakin() == 1 ? 1 : 2);
+            if (!orderService.insert(order)) {
+                throw new CoolException("璁㈠崟鍒涘缓澶辫触锛侊紒");
+            }
         }
         if (Objects.isNull(data.getMatnr())) {
             throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛�");
@@ -96,16 +107,27 @@
         if (Objects.isNull(mat)) {
             throw new CoolException("鐗╂枡[" + data.getMatnr() + "]涓嶅瓨鍦紒锛�");
         }
+
+        OrderDetl orderDetl = detlService.selectOne(new EntityWrapper<OrderDetl>()
+                .eq("matnr", data.getMatnr())
+                .eq("batch", data.getBatch())
+                .eq("barcode", data.getBarcode())
+                .eq("order_no", order.getOrderNo()));
+        if (!Objects.isNull(orderDetl)) {
+            return;
+        }
         OrderDetl detl = new OrderDetl();
         detl.setOrderNo(data.getOrderNo());
         detl.setOrderId(order.getId());
         detl.setMatnr(data.getMatnr());
         detl.setMaktx(mat.getMaktx());
         detl.setQty(data.getQty());
+        detl.setUnit(data.getUnit());
+        detl.setBrand(data.getBrand());
         detl.setSpecs(data.getSpecs());
         detl.setBatch(Objects.isNull(data.getBatch()) ? "1" : data.getBatch());
-        detl.setVolume(data.getVolume());
-        detl.setSafeQty(data.getSafeQty());
+        detl.setVolume(mat.getVolume());
+        detl.setSafeQty(mat.getSafeQty());
         detl.setAnfme(data.getAnfme());
         detl.setBarcode(data.getBarcode());
         detl.setUpdateTime(now);
@@ -115,7 +137,7 @@
         if (!detlService.insert(detl)) {
             throw new CoolException("璁㈠崟璇︽儏鍒涘缓澶辫触锛侊紒");
         }
-        total ++ ;
+        total++;
     }
 
     @Override
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 7c7961f..3b135cb 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -212,7 +212,7 @@
     , {field: 'weight', align: 'center', title: '鍗曠鍑�閲�', hide: true}
     , {field: 'length', align: 'center', title: '鍗曠姣涢噸', hide: true}
     , {
-        field: 'volume', align: 'center', title: 'kg/cm', templet: function (d) {
+        field: 'volume', align: 'center', title: '姣忓叕鏂ら暱搴�', templet: function (d) {
             var raw = d.volume;
             if (raw === null || raw === undefined) return '';
             if (typeof raw === 'string' && raw.trim() === '') return '';
@@ -262,10 +262,10 @@
 ]
 
 var detlCols = [
-    {field: 'matnr', align: 'center', title: '鍟嗗搧缂栧彿锛堝搧鍙凤級', sort: true}
-    , {field: 'maktx', align: 'center', title: '鍟嗗搧鍚嶇О锛堝搧鍚嶏級', sort: true}
-    , {field: 'orderNo', align: 'center', title: '鍗曟嵁缂栧彿', hide: false}
-    , {field: 'batch', align: 'center', title: '璐у搧鐗瑰緛', sort: true}
+    {field: 'matnr', align: 'center', title: '鍟嗗搧缂栧彿', sort: true, width: 160}
+    , {field: 'maktx', align: 'center', title: '鍟嗗搧鍚嶇О', sort: true, width: 120}
+    , {field: 'orderNo', align: 'center', title: '鍗曟嵁缂栧彿', hide: false, width: 120}
+    , {field: 'batch', align: 'center', title: '鎵规', sort: false}
     , {
         field: 'anfme', align: 'center', title: '鏁伴噺', hide: false, templet: function (d) {
             var raw = d.anfme;
@@ -279,7 +279,7 @@
     , {field: 'zpallet', align: 'center', title: '鎵樼洏鏉$爜', hide: false}
     , {field: 'specs', align: 'center', title: '瑙勬牸', hide: false}
     , {
-        field: 'safeQty', align: 'center', title: '褰掗浂闃�鍊�', hide: false, templet: function (d) {
+        field: 'safeQty', align: 'center', title: '褰掗浂闃�鍊�', hide: true, templet: function (d) {
             var raw = d.safeQty;
             if (raw === null || raw === undefined) return '';
             if (typeof raw === 'string' && raw.trim() === '') return '';
@@ -289,7 +289,7 @@
         }
     }
     , {
-        field: 'volume', align: 'center', title: 'km/cm', hide: false, templet: function (d) {
+        field: 'volume', align: 'center', title: '姣忓叕鏂ら暱搴�', hide: true, templet: function (d) {
             var raw = d.volume;
             if (raw === null || raw === undefined) return '';
             if (typeof raw === 'string' && raw.trim() === '') return '';
@@ -300,12 +300,12 @@
     }
     , {field: 'model', align: 'center', title: '浠g爜', hide: true}
     , {field: 'color', align: 'center', title: '棰滆壊', hide: true}
-    , {field: 'brand', align: 'center', title: '鍝佺墝', hide: true}
+    , {field: 'brand', align: 'center', title: '鍝佺墝', hide: false}
     , {field: 'unit', align: 'center', title: '鍗曚綅', hide: false}
     , {field: 'price', align: 'center', title: '鍗曚环', hide: true}
     , {field: 'sku', align: 'center', title: 'sku', hide: true}
     , {field: 'units', align: 'center', title: '鍗曚綅閲�', hide: true}
-    , {field: 'barcode', align: 'center', title: '鏉$爜', hide: true}
+    , {field: 'barcode', align: 'center', title: 'SN', hide: false}
     , {field: 'origin', align: 'center', title: '浜у湴', hide: true}
     , {field: 'manu', align: 'center', title: '鍘傚', hide: true}
     , {field: 'manuDate', align: 'center', title: '鐢熶骇鏃ユ湡', hide: true}
diff --git a/src/main/webapp/static/js/locAroundBind/locAroundBind.js b/src/main/webapp/static/js/locAroundBind/locAroundBind.js
index d5517d9..3e753b3 100644
--- a/src/main/webapp/static/js/locAroundBind/locAroundBind.js
+++ b/src/main/webapp/static/js/locAroundBind/locAroundBind.js
@@ -27,6 +27,7 @@
             , { field: 'devNo', align: 'center', title: '鏈哄彴鍙�' }
             , { field: 'blocId', align: 'center', title: '搴撲綅ID', hide: true }
             , { field: 'blocNo', align: 'center', title: '搴撲綅鐮�' }
+            , { field: 'def$', align: 'center', title: '鏄惁榛樿' }
             , { fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 120 }
         ]],
         request: {
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 27e9574..6320e65 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -126,8 +126,11 @@
                             { type: 'numbers' },
                             { field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160 },
                             { field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160 },
-                            { field: 'specs', title: '瑙勬牸' },
+                            {field: 'barcode', title: 'SN' },
+                            {field: 'brand', title: '鍝佺墝' },
                             { field: 'batch', title: '鎵瑰彿' },
+                            { field: 'specs', title: '瑙勬牸' },
+                            { field: 'unit', title: '鍗曚綅' },
                             { field: 'anfme', title: '寰呭畬缁撴暟閲�' },
                             { field: 'qty', title: '寰呬笂鎶ユ暟閲�', style: 'font-weight: bold' },
                             { field: 'workQty', title: '宸蹭笂鎶ユ暟閲�' },
diff --git a/src/main/webapp/static/js/orderPakin/order.js b/src/main/webapp/static/js/orderPakin/order.js
index d0fb309..50444da 100644
--- a/src/main/webapp/static/js/orderPakin/order.js
+++ b/src/main/webapp/static/js/orderPakin/order.js
@@ -121,13 +121,18 @@
                         page: true,
                         cellMinWidth: 100,
                         cols: [[
-                            {type: 'numbers'},
-                            {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
-                            {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
-                            {field: 'barcode', title: 'SN'},
-                            {field: 'anfme', title: '鏁伴噺'},
-                            {field: 'workQty', title: '浣滀笟鏁伴噺'},
-                            {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
+                            { type: 'numbers' },
+                            { field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160 },
+                            { field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160 },
+                            {field: 'barcode', title: 'SN', width: 140 },
+                            {field: 'brand', title: '鍝佺墝' },
+                            { field: 'batch', title: '鎵瑰彿' },
+                            { field: 'specs', title: '瑙勬牸' },
+                            { field: 'unit', title: '鍗曚綅' },
+                            { field: 'anfme', title: '寰呭畬缁撴暟閲�' },
+                            { field: 'qty', title: '寰呬笂鎶ユ暟閲�', style: 'font-weight: bold' },
+                            { field: 'workQty', title: '宸蹭笂鎶ユ暟閲�' }
+
                             // {field: 'unit', title: '鍗曚綅'},
                             // {
                             //     field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
@@ -136,7 +141,6 @@
                             // },
                             // {field: 'inQty', title: '宸插叆搴撻噺'},
                             // {field: 'color', title: '棰滆壊'},
-                            {field: 'specs', title: '瑙勬牸'}
                         ]],
                         request: {
                             pageName: 'curr',
diff --git a/src/main/webapp/views/locAroundBind/locAroundBind.html b/src/main/webapp/views/locAroundBind/locAroundBind.html
index efb7f8b..1cab9bb 100644
--- a/src/main/webapp/views/locAroundBind/locAroundBind.html
+++ b/src/main/webapp/views/locAroundBind/locAroundBind.html
@@ -74,16 +74,24 @@
                 <div class="layui-form-item">
                     <label class="layui-form-label layui-form-required">搴撲綅ID: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="bLocId" placeholder="璇疯緭鍏ュ簱浣岻D" lay-vertype="tips" lay-verify="required">
+                        <input class="layui-input" name="blocId" placeholder="璇疯緭鍏ュ簱浣岻D" lay-vertype="tips" lay-verify="required">
                     </div>
                 </div>
                 <div class="layui-form-item">
                     <label class="layui-form-label layui-form-required">搴撲綅鐮�: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="bLocNo" placeholder="璇疯緭鍏ュ簱浣嶇爜" lay-vertype="tips" lay-verify="required">
+                        <input class="layui-input" name="blocNo" placeholder="璇疯緭鍏ュ簱浣嶇爜" lay-vertype="tips" lay-verify="required">
                     </div>
                 </div>
-
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鏄惁榛樿:</label>
+                    <div class="layui-input-block">
+                        <select id="isDefault" name="isDefault" lay-filter="isDefault">
+                            <option value="1" selected="">鏄�</option>
+                            <option value="0">鍚�</option>
+                        </select>
+                    </div>
+                </div>
              </div>
         </div>
         <hr class="layui-bg-gray">
@@ -97,7 +105,7 @@
 <div id="resetLocDiv" style="margin: 20px 0 10px 30px; display: none">
     <div class="layui-form layui-form-pane">
         <div class="layui-form-item">
-            <label class="layui-form-label">鏈哄彴鍙�</label>
+            <label class="路layui-form-label">鏈哄彴鍙�</label>
             <div class="layui-input-inline">
                 <input type="text" name="devNo" autocomplete="off" class="layui-input">
             </div>

--
Gitblit v1.9.1