From 609a1b7daafdc351f6601c046ea3ffae64b6709a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 24 三月 2022 13:42:59 +0800
Subject: [PATCH] #杰克缝纫机立库 【手动修改订单 + 优化】

---
 src/main/java/com/zy/asrs/controller/OrderController.java        |   39 +++++++++++++------
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    2 +
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |   17 ++++++++
 src/main/webapp/static/js/order/order.js                         |   10 ++++-
 4 files changed, 54 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index cafda96..1d557aa 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -122,32 +122,47 @@
         if (order == null || order.getStatus() == 0) {
             return R.error("璁㈠崟涓嶅瓨鍦�");
         }
+        Date now = new Date();
+        Long userId = getUserId();
         // 淇敼涓绘。
         if (!param.getDocType().equals(order.getDocType())) {
             order.setDocType(param.getDocType());
-            order.setUpdateBy(getUserId());
-            order.setUpdateTime(new Date());
+            order.setUpdateBy(userId);
+            order.setUpdateTime(now);
             if (!orderService.updateById(order)) {
                 throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触");
             }
         }
         // 淇敼鏄庣粏妗�
-        Iterator<OrderDetl> iterator = param.getOrderDetlList().iterator();
-        while (iterator.hasNext()) {
-            OrderDetl orderDetl = iterator.next();
-            OrderDetl detl = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+        // 1.娓呯┖鏄庣粏妗�
+        if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
+            throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触");
+        }
+        // 2.閲嶇粍鏁版嵁
+        for (OrderDetl orderDetl : param.getOrderDetlList()) {
+            OrderDetl detl = orderDetlService.findByLook(orderDetls, order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
             // 鏂板
             if (detl == null) {
-
+                detl = orderDetl;
+                detl.setOrderId(order.getId());
+                detl.setCreateTime(now);
+                detl.setCreateBy(userId);
+                detl.setUpdateTime(now);
+                detl.setUpdateBy(userId);
+                detl.setStatus(1);
             // 淇敼
             } else {
-
+                detl.setAnfme(orderDetl.getAnfme());    // 淇敼鏁伴噺
+                detl.setUpdateTime(now);
+                detl.setUpdateBy(userId);
+            }
+            // 鎸佷箙鍖�
+            if (!orderDetlService.insert(detl)) {
+                throw new CoolException("鏂板璁㈠崟鏄庣粏澶辫触");
             }
         }
-
-        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-
-        return R.ok();
+        return R.ok("璁㈠崟淇敼鎴愬姛");
     }
 
 
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index c2c96e8..9171207 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -11,4 +11,6 @@
 
     OrderDetl selectItem(Long orderId, String matnr, String batch);
 
+    OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index bb41678..3acd86a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.zy.asrs.mapper.OrderDetlMapper;
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.OrderDetlService;
@@ -21,4 +22,20 @@
     public OrderDetl selectItem(Long orderId, String matnr, String batch) {
         return this.baseMapper.selectItem(orderId, matnr, batch);
     }
+
+    @Override
+    public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
+        for (OrderDetl orderDetl : orderDetls) {
+            if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
+                if (!Cools.isEmpty(batch)) {
+                    if (orderDetl.getBatch().equals(batch)) {
+                        return orderDetl;
+                    }
+                } else {
+                    return orderDetl;
+                }
+            }
+        }
+        return null;
+    }
 }
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 0131df6..3e57a88 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,3 +1,4 @@
+var insTbCount = 0;
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
 }).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
@@ -46,6 +47,7 @@
             if (res.code === 403) {
                 top.location.href = baseUrl+"/";
             }
+            insTbCount = count;
         }
     });
 
@@ -200,7 +202,7 @@
                             layer.closeAll('loading');
                             if (res.code === 200){
                                 layer.close(dIndex);
-                                insTb.reload({page: {curr: 1}});
+                                $(".layui-laypage-btn")[0].click();
                                 layer.msg(res.msg, {icon: 1});
                             } else if (res.code === 403){
                                 top.location.href = baseUrl+"/";
@@ -420,7 +422,11 @@
                 success: function (res) {
                     layer.closeAll('loading');
                     if (res.code === 200){
-                        insTb.reload({page: {curr: 1}});
+                        if (insTbCount === 0) {
+                            insTb.reload({page: {curr: 1}});
+                        } else {
+                            $(".layui-laypage-btn")[0].click();
+                        }
                         layer.msg(res.msg, {icon: 1});
                     } else if (res.code === 403){
                         top.location.href = baseUrl+"/";

--
Gitblit v1.9.1