From d17c089f1d7ff3be848b05161917346e7f664a1d Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期二, 26 四月 2022 15:17:53 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/controller/OrderController.java        |   94 +++++
 src/main/webapp/static/js/order/orderResult.js                            |   10 
 src/main/webapp/static/js/wave/wave.js                                    |    2 
 src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java      |    8 
 src/main/webapp/static/layui/layui.js                                     |  188 +++++++++++
 src/main/webapp/views/order/matQueryBox.html                              |   45 +-
 src/main/webapp/views/order/orderResult.html                              |   41 +
 src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java |   62 +++
 src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java          |    4 
 src/main/java/zy/cloud/wms/manager/entity/dto/OrderDetlDTO.java           |   11 
 src/main/webapp/static/js/comb/comb.js                                    |  253 +++++++-------
 src/main/java/zy/cloud/wms/manager/controller/WorkController.java         |    7 
 src/main/webapp/views/order/waveback_detl.html                            |  236 +++++++++++++
 src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java                  |   11 
 src/main/resources/application.yml                                        |    5 
 15 files changed, 802 insertions(+), 175 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
index 3806cfe..7670a29 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
@@ -18,14 +18,10 @@
 import zy.cloud.wms.common.utils.BarcodeUtils;
 import zy.cloud.wms.common.utils.QrCode;
 import zy.cloud.wms.common.web.BaseController;
-import zy.cloud.wms.manager.entity.Order;
-import zy.cloud.wms.manager.entity.OrderDetl;
-import zy.cloud.wms.manager.entity.Wave;
-import zy.cloud.wms.manager.entity.WaveDetl;
-import zy.cloud.wms.manager.service.OrderDetlService;
-import zy.cloud.wms.manager.service.OrderService;
-import zy.cloud.wms.manager.service.WaveDetlService;
-import zy.cloud.wms.manager.service.WaveService;
+import zy.cloud.wms.manager.entity.*;
+import zy.cloud.wms.manager.entity.dto.OrderDetlDTO;
+import zy.cloud.wms.manager.entity.param.StockOutParam;
+import zy.cloud.wms.manager.service.*;
 import zy.cloud.wms.manager.utils.AddZero;
 
 import javax.imageio.ImageIO;
@@ -46,6 +42,13 @@
     private WaveService waveService;
     @Autowired
     private WaveDetlService waveDetlService;
+    @Autowired
+    private PickoutService pickoutService;
+    @Autowired
+    private PickoutDetlService pickoutDetlService;
+    @Autowired
+    private LocDetlService locDetlService;
+
 
     @RequestMapping(value = "/order/{id}/auth")
     @ManagerAuth
@@ -357,4 +360,79 @@
         Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit),orderDetailWrapper);
         return R.ok(orderDetlPage);
     }
+
+
+    /**
+     * 寮�濮嬫挱绉�,鏇存柊璁㈠崟缁嗚妭,鍑忓皯搴撳瓨閲�
+     * @param orderDetls
+     * @return
+     */
+    @RequestMapping("/order/waveBack")
+    public R waveBack(@RequestBody OrderDetlDTO orderDetls){
+        /**
+         * 鎺х涓庡垵濮嬪寲
+         */
+        if (Cools.isEmpty(orderDetls.getOrderDetls())) {
+
+            throw new CoolException("鏈敹鍒版湁鏁堟挱绉嶄俊鎭�,璇疯仈绯荤鐞嗗憳");
+        }
+
+        /**
+         * 鏇存柊鍘熷嚭搴撳崟,鏍规嵁鎷h揣鍗曟潵鍑忓幓搴撳瓨
+         */
+        for (OrderDetl newOne : orderDetls.getOrderDetls()) {
+            Order order = orderService.selectOne(new EntityWrapper<Order>()
+                    .eq("id", newOne.getOrderId()));
+            Pickout pickout = pickoutService.selectOne(new EntityWrapper<Pickout>()
+                    .eq("wave_no", order.getWaveNo()));
+            OrderDetl oldOne = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+                    .eq("id", newOne.getId()));
+            /**
+             * 璁$畻鍑哄樊鍊�,鍑忓幓搴撳瓨
+             */
+            double diffValue = newOne.getOutQty() - oldOne.getOutQty();
+            if (diffValue !=0) {
+                /**
+                 * 鑾峰彇鎷h揣鍗曞垎閰嶇殑搴撲綅
+                 */
+                List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>()
+                        .eq("head_id", pickout.getId())
+                        .eq("matnr", newOne.getMatnr()));
+                /**
+                 * 閫氳繃鎷h揣鍗曞垎閰嶇殑搴撲綅,閬嶅巻搴撳瓨,
+                 */
+                for (PickoutDetl pickoutDetl : pickoutDetls) {
+                    if (diffValue == 0) break;
+                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+                            .eq("node_id", pickoutDetl.getNodeId())
+                            .eq("matnr",newOne.getMatnr()));
+                    if (Cools.isEmpty(locDetl) || locDetl.getAnfme() == 0) {
+                        continue;
+                    }
+                    if (locDetl.getAnfme() > diffValue){
+                        locDetl.setAnfme(locDetl.getAnfme() - diffValue);
+                        locDetlService.update(locDetl, new EntityWrapper<LocDetl>()
+                                .eq("node_id",locDetl.getNodeId() )
+                                .eq("matnr",locDetl.getMatnr()));
+                        break;
+                    }
+                    if (locDetl.getAnfme() < diffValue){
+                        locDetl.setAnfme(0.0);
+                        diffValue = diffValue - locDetl.getAnfme();
+                        locDetlService.update(locDetl, new EntityWrapper<LocDetl>()
+                                .eq("node_id",locDetl.getNodeId() )
+                                .eq("matnr",locDetl.getMatnr()));
+                    }
+
+                }
+                orderDetlService.update(newOne, new EntityWrapper<OrderDetl>()
+                        .eq("id", newOne.getId() ));
+            }
+            Boolean result = orderDetlService.checkFinish(order.getId());
+            if (result) {
+                orderDetlService.finishOrder(order.getId());
+            }
+        }
+        return R.ok("鎾鎴愬姛");
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
index c1f4a6d..08f5b58 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -248,8 +248,11 @@
     @RequestMapping("docType/out/get")
     @ManagerAuth
     public R getDocOutTypeData(Integer docClass){
-        List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("status", 1).
-                eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass));
+
+        List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>()
+                .eq("host_id", "2")
+                .orderBy("create_time", false)
+                .eq("doc_class",docClass));
         return R.ok().add(docTypes);
     }
 
diff --git a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
index 653ae8b..092c81e 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import io.swagger.annotations.ApiModelProperty;
@@ -211,6 +212,16 @@
 //        this.memo = memo;
 //    }
 
+    public String getWaveNo$(){
+        OrderService orderService = SpringUtils.getBean(OrderService.class);
+        Order id1 = orderService.selectOne(new EntityWrapper<Order>()
+                .eq("id", this.orderId));
+        if (!Cools.isEmpty(id1)) {
+            return id1.getWaveNo();
+        }
+        return "";
+    }
+
     public Long getId() {
         return id;
     }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/dto/OrderDetlDTO.java b/src/main/java/zy/cloud/wms/manager/entity/dto/OrderDetlDTO.java
new file mode 100644
index 0000000..2850b6d
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/entity/dto/OrderDetlDTO.java
@@ -0,0 +1,11 @@
+package zy.cloud.wms.manager.entity.dto;
+
+import lombok.Data;
+import zy.cloud.wms.manager.entity.OrderDetl;
+
+import java.util.ArrayList;
+
+@Data
+public class OrderDetlDTO {
+    private ArrayList<OrderDetl> orderDetls;
+}
diff --git a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
index bbe4f1a..b449c3e 100644
--- a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
@@ -14,4 +14,8 @@
     List<OrderDetl> selectBatchByOrderNo(List<Order> orders);
 
     List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings);
+
+    Boolean checkFinish(Long id);
+
+    void finishOrder(Long id);
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
index 0bff2f8..5ba5877 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
@@ -1,17 +1,32 @@
 package zy.cloud.wms.manager.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import zy.cloud.wms.manager.entity.Order;
+import zy.cloud.wms.manager.entity.Pickout;
+import zy.cloud.wms.manager.entity.Wave;
 import zy.cloud.wms.manager.mapper.OrderDetlMapper;
 import zy.cloud.wms.manager.entity.OrderDetl;
 import zy.cloud.wms.manager.service.OrderDetlService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import zy.cloud.wms.manager.service.OrderService;
+import zy.cloud.wms.manager.service.PickoutService;
+import zy.cloud.wms.manager.service.WaveService;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @Service("orderDetlService")
 public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private WaveService waveService;
+    @Autowired
+    private PickoutService pickoutService;
 
     @Override
     public List<OrderDetl> selectByOrderNo(String orderNo, Long hostId) {
@@ -27,4 +42,51 @@
     public List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings) {
         return this.baseMapper.selectOutList(matnr,strings);
     }
+
+    /**
+     * 閫氳繃orderid鏉ユ煡璇㈡墍鏈塷rderDetl
+     * @param id
+     * @return
+     */
+    @Override
+    public Boolean checkFinish(Long id) {
+        List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+                .eq("order_id", id));
+        for (OrderDetl orderDetl : orderDetls) {
+            if (orderDetl.getAnfme() - orderDetl.getOutQty() != 0 ){
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public void finishOrder(Long id) {
+        /**
+         * 鏇存敼order鐘舵��
+         */
+        Order order = orderService.selectOne(new EntityWrapper<Order>()
+                .eq("id", id));
+        order.setSettle(5L);
+        orderService.update(order,new EntityWrapper<Order>()
+                .eq("id", id));
+        /**
+         * 鏇存敼娉㈡鐘舵��
+         */
+        Wave wave = waveService.selectOne(new EntityWrapper<Wave>()
+                .eq("wave_no", order.getWaveNo()));
+        wave.setStatus((short) 2);
+        waveService.update(wave,new EntityWrapper<Wave>()
+                .eq("wave_no", order.getWaveNo()));
+
+        /**
+         * 鏇存敼鎷h揣鍗曠姸鎬�
+         */
+        Pickout pickout = pickoutService.selectOne(new EntityWrapper<Pickout>()
+                .eq("wave_no", wave.getWaveNo()));
+        pickout.setWrkSts(3L);
+        pickoutService.update(pickout,new EntityWrapper<Pickout>()
+                .eq("wave_no", wave.getWaveNo()));
+
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java
index 446a981..4f12b29 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java
@@ -76,9 +76,13 @@
             }
             PickoutDetl pickoutDetl = new PickoutDetl();
             pickoutDetl.setHeadId(pickout.getId());
-            pickoutDetl.setNodeId(pickOutDto.getNodeId().longValue());
+            if (!Cools.isEmpty(pickOutDto.getNodeId())) {
+
+                pickoutDetl.setNodeId(pickOutDto.getNodeId().longValue());
+            }
+
             pickoutDetl.setNodeName(pickOutDto.getLocNo());
-            pickoutDetl.setAnfme(pickOutDto.getAnfme().doubleValue());
+            pickoutDetl.setAnfme(pickOutDto.getReduce().doubleValue());
             pickoutDetl.setMatnr(pickOutDto.getMatnr());
             pickoutDetl.setMaktx(mat.getMaktx());
             pickoutDetl.setName(mat.getName());
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 207b003..fe4fc24 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -14,6 +14,9 @@
 #    password: xltys1995
     # sql-server
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+#    url: jdbc:sqlserver://127.0.0.1:51433;databasename=zypms
+#    username: sa
+#    password: Zoneyung@zy56$
     url: jdbc:sqlserver://192.168.4.15:1433;databasename=wms_saas
     username: sa
     password: sa@123
@@ -50,4 +53,4 @@
     id: LTAI4GDzr6ioSHuRw2mk22ug
     secret: 84CHL7tF21LbU1qpaP0jn9mIAZP9bv
     bucket: tjdt
-    endpoint: http://oss-cn-hangzhou.aliyuncs.com
\ No newline at end of file
+    endpoint: http://oss-cn-hangzhou.aliyuncs.com
diff --git a/src/main/webapp/static/js/comb/comb.js b/src/main/webapp/static/js/comb/comb.js
index 8a7aa9f..4591436 100644
--- a/src/main/webapp/static/js/comb/comb.js
+++ b/src/main/webapp/static/js/comb/comb.js
@@ -1,5 +1,5 @@
 var pageCurr;
-layui.use(['table','laydate', 'form'], function(){
+layui.use(['table', 'laydate', 'form'], function () {
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
@@ -10,7 +10,7 @@
     tableIns = table.render({
         elem: '#comb',
         headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/comb/list/auth',
+        url: baseUrl + '/comb/list/auth',
         page: true,
         limit: 16,
         limits: [16, 30, 50, 100, 200, 500],
@@ -20,10 +20,10 @@
         cols: [[
             {type: 'checkbox'}
 //            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
-            ,{field: 'zpallet', align: 'center',title: '鎵樼洏鐮�'}
-            ,{field: 'anfme', align: 'center',title: '搴撳瓨浣欓噺'}
-            ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'}
-            ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'}
+            , {field: 'zpallet', align: 'center', title: '鎵樼洏鐮�'}
+            , {field: 'anfme', align: 'center', title: '搴撳瓨浣欓噺'}
+            , {field: 'matnr', align: 'center', title: '鍟嗗搧缂栧彿'}
+            , {field: 'maktx', align: 'center', title: '鍟嗗搧鍚嶇О'}
             // ,{field: 'name', align: 'center',title: '鍚嶇О'}
             // ,{field: 'specs', align: 'center',title: '瑙勬牸'}
             // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
@@ -37,14 +37,14 @@
             // ,{field: 'count', align: 'center',title: '鏁伴噺'}
             // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
             // ,{field: 'status$', align: 'center',title: '鐘舵��'}
-            ,{field: 'ioStatus$', align: 'center',title: '鎵ц鐘舵��'}
+            , {field: 'ioStatus$', align: 'center', title: '鎵ц鐘舵��'}
             // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳',event: 'createBy', style: 'cursor:pointer'}
             // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
             // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳',event: 'updateBy', style: 'cursor:pointer'}
             // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
-            ,{field: 'memo', align: 'center',title: '澶囨敞'}
+            , {field: 'memo', align: 'center', title: '澶囨敞'}
 
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+            , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 150}
         ]],
         request: {
             pageName: 'curr',
@@ -61,17 +61,17 @@
         response: {
             statusCode: 200
         },
-        done: function(res, curr, count) {
+        done: function (res, curr, count) {
             if (res.code === 403) {
-                top.location.href = baseUrl+"/";
+                top.location.href = baseUrl + "/";
             }
-            pageCurr=curr;
+            pageCurr = curr;
             limit();
             form.on('checkbox(tableCheckbox)', function (data) {
-                var _index = $(data.elem).attr('table-index')||0;
-                if(data.elem.checked){
+                var _index = $(data.elem).attr('table-index') || 0;
+                if (data.elem.checked) {
                     res.data[_index][data.value] = 'Y';
-                }else{
+                } else {
                     res.data[_index][data.value] = 'N';
                 }
             });
@@ -81,7 +81,7 @@
     // 鐩戝惉鎺掑簭浜嬩欢
     table.on('sort(locMast)', function (obj) {
         var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
+        $.each($('#search-box [name]').serializeArray(), function () {
             searchData[this.name] = this.value;
         });
         searchData['orderByField'] = obj.field;
@@ -93,9 +93,9 @@
             },
             done: function (res, curr, count) {
                 if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
+                    top.location.href = baseUrl + "/";
                 }
-                pageCurr=curr;
+                pageCurr = curr;
                 limit();
             }
         });
@@ -104,7 +104,7 @@
     // 鐩戝惉澶村伐鍏锋爮浜嬩欢
     table.on('toolbar(comb)', function (obj) {
         var checkStatus = table.checkStatus(obj.config.id);
-        switch(obj.event) {
+        switch (obj.event) {
             case 'addData':
                 layer.open({
                     type: 2,
@@ -112,31 +112,32 @@
                     maxmin: true,
                     area: [top.detailWidth, top.detailHeight],
                     content: 'comb_detail.html',
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         layer.getChildFrame('#data-detail-submit-edit', index).hide();
-                    	clearFormVal(layer.getChildFrame('#detail', index));
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+                        clearFormVal(layer.getChildFrame('#detail', index));
+                        layer.iframeAuto(index);
+                        layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"});
                     }
                 });
                 break;
             case 'deleteData':
                 var data = checkStatus.data;
-                if (data.length === 0){
+                if (data.length === 0) {
                     layer.msg('璇烽�夋嫨鏁版嵁');
                 } else {
-                    layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+                    layer.confirm('纭畾鍒犻櫎' + (data.length === 1 ? '姝�' : data.length) + '鏉℃暟鎹悧', function () {
                         $.ajax({
-                            url: baseUrl+"/comb/delete/auth",
+                            url: baseUrl + "/comb/delete/auth",
                             headers: {'token': localStorage.getItem('token')},
                             data: {param: JSON.stringify(data)},
                             method: 'POST',
-                            traditional:true,
+                            traditional: true,
                             success: function (res) {
-                                if (res.code === 200){
+                                if (res.code === 200) {
                                     layer.closeAll();
                                     tableReload(false);
-                                } else if (res.code === 403){
-                                    top.location.href = baseUrl+"/";
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
                                 } else {
                                     layer.msg(res.msg)
                                 }
@@ -146,9 +147,9 @@
                 }
                 break;
             case 'exportData':
-                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
+                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function () {
+                    var titles = [];
+                    var fields = [];
                     obj.config.cols[0].map(function (col) {
                         if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                             titles.push(col.title);
@@ -156,7 +157,7 @@
                         }
                     });
                     var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
+                    $.each($('#search-box [name]').serializeArray(), function () {
                         exportData[this.name] = this.value;
                     });
                     var param = {
@@ -164,18 +165,18 @@
                         'fields': fields
                     };
                     $.ajax({
-                        url: baseUrl+"/comb/export/auth",
+                        url: baseUrl + "/comb/export/auth",
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify(param),
-                        dataType:'json',
-                        contentType:'application/json;charset=UTF-8',
+                        dataType: 'json',
+                        contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
                         success: function (res) {
                             layer.closeAll();
                             if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
+                                table.exportFile(titles, res.data, 'xls');
                             } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
+                                top.location.href = baseUrl + "/";
                             } else {
                                 layer.msg(res.msg)
                             }
@@ -187,7 +188,7 @@
     });
 
     // 鐩戝惉琛屽伐鍏蜂簨浠�
-    table.on('tool(comb)', function(obj){
+    table.on('tool(comb)', function (obj) {
         var data = obj.data;
         switch (obj.event) {
             // 璇︽儏
@@ -199,11 +200,12 @@
                     area: [top.detailWidth, top.detailHeight],
                     shadeClose: true,
                     content: 'comb_detail.html',
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         setFormVal(layer.getChildFrame('#detail', index), data, true);
                         top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                         layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+                        layer.iframeAuto(index);
+                        layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"});
                         layero.find('iframe')[0].contentWindow.layui.form.render('select');
                         layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                     }
@@ -217,12 +219,13 @@
                     maxmin: true,
                     area: [top.detailWidth, top.detailHeight],
                     content: 'comb_detail.html',
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         layer.getChildFrame('#data-detail-submit-save', index).hide();
                         setFormVal(layer.getChildFrame('#detail', index), data, false);
                         top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
                         top.convertDisabled(layer.getChildFrame('', index), true);
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+                        layer.iframeAuto(index);
+                        layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"});
                         layero.find('iframe')[0].contentWindow.layui.form.render('select');
                         layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                     }
@@ -233,35 +236,36 @@
                 if (param === undefined) {
                     layer.msg("鏃犳暟鎹�");
                 } else {
-                   layer.open({
-                       type: 2,
-                       title: '娣诲姞浜哄憳璇︽儏',
-                       maxmin: true,
-                       area: [top.detailWidth, top.detailHeight],
-                       shadeClose: true,
-                       content: '../user/user_detail.html',
-                       success: function(layero, index){
-                           $.ajax({
-                               url: "baseUrl+/user/"+ param +"/auth",
-                               headers: {'token': localStorage.getItem('token')},
-                               method: 'GET',
-                               success: function (res) {
-                                   if (res.code === 200){
-                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
-                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                                   } else if (res.code === 403){
-                                       top.location.href = baseUrl+"/";
-                                   }else {
-                                       layer.msg(res.msg)
-                                   }
-                               }
-                           })
-                       }
-                   });
+                    layer.open({
+                        type: 2,
+                        title: '娣诲姞浜哄憳璇︽儏',
+                        maxmin: true,
+                        area: [top.detailWidth, top.detailHeight],
+                        shadeClose: true,
+                        content: '../user/user_detail.html',
+                        success: function (layero, index) {
+                            $.ajax({
+                                url: "baseUrl+/user/" + param + "/auth",
+                                headers: {'token': localStorage.getItem('token')},
+                                method: 'GET',
+                                success: function (res) {
+                                    if (res.code === 200) {
+                                        setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+                                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+                                        layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+                                        layer.iframeAuto(index);
+                                        layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"});
+                                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
+                                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+                                    } else if (res.code === 403) {
+                                        top.location.href = baseUrl + "/";
+                                    } else {
+                                        layer.msg(res.msg)
+                                    }
+                                }
+                            })
+                        }
+                    });
                 }
                 break;
             case 'updateBy':
@@ -269,35 +273,36 @@
                 if (param === undefined) {
                     layer.msg("鏃犳暟鎹�");
                 } else {
-                   layer.open({
-                       type: 2,
-                       title: '淇敼浜哄憳璇︽儏',
-                       maxmin: true,
-                       area: [top.detailWidth, top.detailHeight],
-                       shadeClose: true,
-                       content: '../user/user_detail.html',
-                       success: function(layero, index){
-                           $.ajax({
-                               url: "baseUrl+/user/"+ param +"/auth",
-                               headers: {'token': localStorage.getItem('token')},
-                               method: 'GET',
-                               success: function (res) {
-                                   if (res.code === 200){
-                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
-                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                                   } else if (res.code === 403){
-                                       top.location.href = baseUrl+"/";
-                                   }else {
-                                       layer.msg(res.msg)
-                                   }
-                               }
-                           })
-                       }
-                   });
+                    layer.open({
+                        type: 2,
+                        title: '淇敼浜哄憳璇︽儏',
+                        maxmin: true,
+                        area: [top.detailWidth, top.detailHeight],
+                        shadeClose: true,
+                        content: '../user/user_detail.html',
+                        success: function (layero, index) {
+                            $.ajax({
+                                url: "baseUrl+/user/" + param + "/auth",
+                                headers: {'token': localStorage.getItem('token')},
+                                method: 'GET',
+                                success: function (res) {
+                                    if (res.code === 200) {
+                                        setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+                                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+                                        layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+                                        layer.iframeAuto(index);
+                                        layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"});
+                                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
+                                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+                                    } else if (res.code === 403) {
+                                        top.location.href = baseUrl + "/";
+                                    } else {
+                                        layer.msg(res.msg)
+                                    }
+                                }
+                            })
+                        }
+                    });
                 }
                 break;
 
@@ -306,7 +311,7 @@
 
     // 鏁版嵁淇濆瓨鍔ㄤ綔
     form.on('submit(save)', function () {
-        if (banMsg != null){
+        if (banMsg != null) {
             layer.msg(banMsg);
             return;
         }
@@ -318,9 +323,9 @@
         method("update")
     });
 
-    function method(name){
+    function method(name) {
         var index = layer.load(1, {
-            shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+            shade: [0.5, '#000'] //0.1閫忔槑搴︾殑鑳屾櫙
         });
         var data = {
 //            id: $('#id').val(),
@@ -350,20 +355,20 @@
 
         };
         $.ajax({
-            url: baseUrl+"/comb/"+name+"/auth",
+            url: baseUrl + "/comb/" + name + "/auth",
             headers: {'token': localStorage.getItem('token')},
             data: top.reObject(data),
             method: 'POST',
             success: function (res) {
-                if (res.code === 200){
+                if (res.code === 200) {
                     parent.layer.closeAll();
                     parent.$(".layui-laypage-btn")[0].click();
                     $("#data-detail :input").each(function () {
                         $(this).val("");
                     });
-                } else if (res.code === 403){
-                    top.location.href = baseUrl+"/";
-                }else {
+                } else if (res.code === 403) {
+                    top.location.href = baseUrl + "/";
+                } else {
                     layer.msg(res.msg)
                 }
                 layer.close(index);
@@ -408,13 +413,13 @@
 });
 
 // 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
+$(document).on('click', '#data-detail-close', function () {
     parent.layer.closeAll();
 });
 
 function tableReload(child) {
     var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
+    $.each($('#search-box [name]').serializeArray(), function () {
         searchData[this.name] = this.value;
     });
     (child ? parent.tableIns : tableIns).reload({
@@ -424,14 +429,14 @@
         },
         done: function (res, curr, count) {
             if (res.code === 403) {
-                top.location.href = baseUrl+"/";
+                top.location.href = baseUrl + "/";
             }
-            pageCurr=curr;
+            pageCurr = curr;
             if (res.data.length === 0 && count !== 0) {
                 tableIns.reload({
                     where: searchData,
                     page: {
-                        curr: pageCurr-1
+                        curr: pageCurr - 1
                     }
                 });
                 pageCurr -= 1;
@@ -444,10 +449,10 @@
 function setFormVal(el, data, showImg) {
     for (var val in data) {
         var find = el.find(":input[id='" + val + "']");
-        if (find[0]!=null){
-            if (find[0].type === 'checkbox'){
-                if (data[val]==='Y'){
-                    find.attr("checked","checked");
+        if (find[0] != null) {
+            if (find[0].type === 'checkbox') {
+                if (data[val] === 'Y') {
+                    find.attr("checked", "checked");
                     find.val('Y');
                 } else {
                     find.remove("checked");
@@ -457,9 +462,9 @@
             }
         }
         find.val(data[val]);
-        if (showImg){
+        if (showImg) {
             var next = find.next();
-            if (next.get(0)){
+            if (next.get(0)) {
                 if (next.get(0).localName === "img") {
                     find.hide();
                     next.attr("src", data[val]);
@@ -479,13 +484,13 @@
 
 function detailScreen(index) {
     var detail = layer.getChildFrame('#data-detail', index);
-    var height = detail.height()+60;
-    if (height > ($(window).height()*0.9)) {
-        height = ($(window).height()*0.8);
+    var height = detail.height() + 60;
+    if (height > ($(window).height() * 0.9)) {
+        height = ($(window).height() * 0.8);
     }
     layer.style(index, {
 //        top: (($(window).height()-height)/3)+"px",
-        height: height+'px'
+        height: height + 'px'
     });
 }
 
diff --git a/src/main/webapp/static/js/order/orderResult.js b/src/main/webapp/static/js/order/orderResult.js
index 82ec595..4988528 100644
--- a/src/main/webapp/static/js/order/orderResult.js
+++ b/src/main/webapp/static/js/order/orderResult.js
@@ -218,6 +218,16 @@
         return false;
     });
 
+    $('#waveback').click(function (data) {
+        layer.open({
+            type: 2,
+            title: false,
+            area: ['1000px','700px'],
+            content: "waveback_detl.html",
+        })
+    });
+
+
     /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
     table.on('toolbar(orderTable)', function (obj) {
         if (obj.event === 'add') { // 娣诲姞
diff --git a/src/main/webapp/static/js/wave/wave.js b/src/main/webapp/static/js/wave/wave.js
index ed2eba6..467fd94 100644
--- a/src/main/webapp/static/js/wave/wave.js
+++ b/src/main/webapp/static/js/wave/wave.js
@@ -269,9 +269,7 @@
                             page: true,
                             cellMinWidth: 100,
                             cols: [[
-                                {type: 'numbers'},
                                 {field: 'seqNo', align:'center',title: '琛屽彿'},
-                                {field: 'matnr', align:'center',title: '鍟嗗搧缂栧彿'},
                                 {field: 'matnr', align:'center',title: '鍟嗗搧缂栧彿'},
                                 {field: 'maktx', align:'center',title: '鍟嗗搧鍚嶇О', width: 200},
                                 {field: 'anfme', align:'center',title: '鏁伴噺', width: 70},
diff --git a/src/main/webapp/static/layui/layui.js b/src/main/webapp/static/layui/layui.js
index b6c4c49..4d4899a 100644
--- a/src/main/webapp/static/layui/layui.js
+++ b/src/main/webapp/static/layui/layui.js
@@ -1,2 +1,188 @@
 /** layui-v2.5.4 MIT License By https://www.layui.com */
- ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.4"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("妯″潡鍚� "+o+" 宸茶鍗犵敤"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;o<e.length&&!t.call(e[o],o,e[o]);o++);return n},n.prototype.sort=function(e,t,o){var n=JSON.parse(JSON.stringify(e||[]));return t?(n.sort(function(e,o){var n=/^-?\d+$/,r=e[t],i=o[t];return n.test(r)&&(r=parseFloat(r)),n.test(i)&&(i=parseFloat(i)),r&&!i?1:!r&&i?-1:r>i?1:r<i?-1:0}),o&&n.reverse(),n):n},n.prototype.stope=function(t){t=t||e.event;try{t.stopPropagation()}catch(o){t.cancelBubble=!0}},n.prototype.onevent=function(e,t,o){return"string"!=typeof e||"function"!=typeof o?this:n.event(e,t,null,o)},n.prototype.event=n.event=function(e,t,n,r){var i=this,a=null,u=t.match(/\((.*)\)$/)||[],l=(e+"."+t).replace(u[0],""),s=u[1]||"",c=function(e,t){var o=t&&t.call(i,n);o===!1&&null===a&&(a=!1)};return r?(o.event[l]=o.event[l]||{},o.event[l][s]=[r],this):(layui.each(o.event[l],function(e,t){return"{*}"===s?void layui.each(t,c):(""===e&&layui.each(t,c),void(s&&e===s&&layui.each(t,c)))}),a)},e.layui=new n}(window);
\ No newline at end of file
+;!function (e) {
+    "use strict";
+    var t = document, o = {modules: {}, status: {}, timeout: 10, event: {}}, n = function () {
+        this.v = "2.5.4"
+    }, r = function () {
+        var e = t.currentScript ? t.currentScript.src : function () {
+            for (var e, o = t.scripts, n = o.length - 1, r = n; r > 0; r--) if ("interactive" === o[r].readyState) {
+                e = o[r].src;
+                break
+            }
+            return e || o[n].src
+        }();
+        return e.substring(0, e.lastIndexOf("/") + 1)
+    }(), i = function (t) {
+        e.console && console.error && console.error("Layui hint: " + t)
+    }, a = "undefined" != typeof opera && "[object Opera]" === opera.toString(), u = {
+        layer: "modules/layer",
+        laydate: "modules/laydate",
+        laypage: "modules/laypage",
+        laytpl: "modules/laytpl",
+        layim: "modules/layim",
+        layedit: "modules/layedit",
+        form: "modules/form",
+        upload: "modules/upload",
+        transfer: "modules/transfer",
+        tree: "modules/tree",
+        table: "modules/table",
+        element: "modules/element",
+        rate: "modules/rate",
+        colorpicker: "modules/colorpicker",
+        slider: "modules/slider",
+        carousel: "modules/carousel",
+        flow: "modules/flow",
+        util: "modules/util",
+        code: "modules/code",
+        jquery: "modules/jquery",
+        mobile: "modules/mobile",
+        "layui.all": "../layui.all"
+    };
+    n.prototype.cache = o, n.prototype.define = function (e, t) {
+        var n = this, r = "function" == typeof e, i = function () {
+            var e = function (e, t) {
+                layui[e] = t, o.status[e] = !0
+            };
+            return "function" == typeof t && t(function (n, r) {
+                e(n, r), o.callback[n] = function () {
+                    t(e)
+                }
+            }), this
+        };
+        return r && (t = e, e = []), !layui["layui.all"] && layui["layui.mobile"] ? i.call(n) : (n.use(e, i), n)
+    }, n.prototype.use = function (e, n, l) {
+        function s(e, t) {
+            var n = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/;
+            ("load" === e.type || n.test((e.currentTarget || e.srcElement).readyState)) && (o.modules[f] = t, d.removeChild(v), function r() {
+                return ++m > 1e3 * o.timeout / 4 ? i(f + " is not a valid module") : void (o.status[f] ? c() : setTimeout(r, 4))
+            }())
+        }
+
+        function c() {
+            l.push(layui[f]), e.length > 1 ? y.use(e.slice(1), n, l) : "function" == typeof n && n.apply(layui, l)
+        }
+
+        var y = this, p = o.dir = o.dir ? o.dir : r, d = t.getElementsByTagName("head")[0];
+        e = "string" == typeof e ? [e] : e, window.jQuery && jQuery.fn.on && (y.each(e, function (t, o) {
+            "jquery" === o && e.splice(t, 1)
+        }), layui.jquery = layui.$ = jQuery);
+        var f = e[0], m = 0;
+        if (l = l || [], o.host = o.host || (p.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0], 0 === e.length || layui["layui.all"] && u[f] || !layui["layui.all"] && layui["layui.mobile"] && u[f]) return c(), y;
+        if (o.modules[f]) !function g() {
+            return ++m > 1e3 * o.timeout / 4 ? i(f + " is not a valid module") : void ("string" == typeof o.modules[f] && o.status[f] ? c() : setTimeout(g, 4))
+        }(); else {
+            var v = t.createElement("script"),
+                h = (u[f] ? p + "lay/" : /^\{\/\}/.test(y.modules[f]) ? "" : o.base || "") + (y.modules[f] || f) + ".js";
+            h = h.replace(/^\{\/\}/, ""), v.async = !0, v.charset = "utf-8", v.src = h + function () {
+                var e = o.version === !0 ? o.v || (new Date).getTime() : o.version || "";
+                return e ? "?v=" + e : ""
+            }(), d.appendChild(v), !v.attachEvent || v.attachEvent.toString && v.attachEvent.toString().indexOf("[native code") < 0 || a ? v.addEventListener("load", function (e) {
+                s(e, h)
+            }, !1) : v.attachEvent("onreadystatechange", function (e) {
+                s(e, h)
+            }), o.modules[f] = h
+        }
+        return y
+    }, n.prototype.getStyle = function (t, o) {
+        var n = t.currentStyle ? t.currentStyle : e.getComputedStyle(t, null);
+        return n[n.getPropertyValue ? "getPropertyValue" : "getAttribute"](o)
+    }, n.prototype.link = function (e, n, r) {
+        var a = this, u = t.createElement("link"), l = t.getElementsByTagName("head")[0];
+        "string" == typeof n && (r = n);
+        var s = (r || e).replace(/\.|\//g, ""), c = u.id = "layuicss-" + s, y = 0;
+        return u.rel = "stylesheet", u.href = e + (o.debug ? "?v=" + (new Date).getTime() : ""), u.media = "all", t.getElementById(c) || l.appendChild(u), "function" != typeof n ? a : (function p() {
+            return ++y > 1e3 * o.timeout / 100 ? i(e + " timeout") : void (1989 === parseInt(a.getStyle(t.getElementById(c), "width")) ? function () {
+                n()
+            }() : setTimeout(p, 100))
+        }(), a)
+    }, o.callback = {}, n.prototype.factory = function (e) {
+        if (layui[e]) return "function" == typeof o.callback[e] ? o.callback[e] : null
+    }, n.prototype.addcss = function (e, t, n) {
+        return layui.link(o.dir + "css/" + e, t, n)
+    }, n.prototype.img = function (e, t, o) {
+        var n = new Image;
+        return n.src = e, n.complete ? t(n) : (n.onload = function () {
+            n.onload = null, "function" == typeof t && t(n)
+        }, void (n.onerror = function (e) {
+            n.onerror = null, "function" == typeof o && o(e)
+        }))
+    }, n.prototype.config = function (e) {
+        e = e || {};
+        for (var t in e) o[t] = e[t];
+        return this
+    }, n.prototype.modules = function () {
+        var e = {};
+        for (var t in u) e[t] = u[t];
+        return e
+    }(), n.prototype.extend = function (e) {
+        var t = this;
+        e = e || {};
+        for (var o in e) t[o] || t.modules[o] ? i("妯″潡鍚� " + o + " 宸茶鍗犵敤") : t.modules[o] = e[o];
+        return t
+    }, n.prototype.router = function (e) {
+        var t = this, e = e || location.hash, o = {path: [], search: {}, hash: (e.match(/[^#](#.*$)/) || [])[1] || ""};
+        return /^#\//.test(e) ? (e = e.replace(/^#\//, ""), o.href = "/" + e, e = e.replace(/([^#])(#.*$)/, "$1").split("/") || [], t.each(e, function (e, t) {
+            /^\w+=/.test(t) ? function () {
+                t = t.split("="), o.search[t[0]] = t[1]
+            }() : o.path.push(t)
+        }), o) : o
+    }, n.prototype.data = function (t, o, n) {
+        if (t = t || "layui", n = n || localStorage, e.JSON && e.JSON.parse) {
+            if (null === o) return delete n[t];
+            o = "object" == typeof o ? o : {key: o};
+            try {
+                var r = JSON.parse(n[t])
+            } catch (i) {
+                var r = {}
+            }
+            return "value" in o && (r[o.key] = o.value), o.remove && delete r[o.key], n[t] = JSON.stringify(r), o.key ? r[o.key] : r
+        }
+    }, n.prototype.sessionData = function (e, t) {
+        return this.data(e, t, sessionStorage)
+    }, n.prototype.device = function (t) {
+        var o = navigator.userAgent.toLowerCase(), n = function (e) {
+            var t = new RegExp(e + "/([^\\s\\_\\-]+)");
+            return e = (o.match(t) || [])[1], e || !1
+        }, r = {
+            os: function () {
+                return /windows/.test(o) ? "windows" : /linux/.test(o) ? "linux" : /iphone|ipod|ipad|ios/.test(o) ? "ios" : /mac/.test(o) ? "mac" : void 0
+            }(), ie: function () {
+                return !!(e.ActiveXObject || "ActiveXObject" in e) && ((o.match(/msie\s(\d+)/) || [])[1] || "11")
+            }(), weixin: n("micromessenger")
+        };
+        return t && !r[t] && (r[t] = n(t)), r.android = /android/.test(o), r.ios = "ios" === r.os, r
+    }, n.prototype.hint = function () {
+        return {error: i}
+    }, n.prototype.each = function (e, t) {
+        var o, n = this;
+        if ("function" != typeof t) return n;
+        if (e = e || [], e.constructor === Object) {
+            for (o in e) if (t.call(e[o], o, e[o])) break
+        } else for (o = 0; o < e.length && !t.call(e[o], o, e[o]); o++) ;
+        return n
+    }, n.prototype.sort = function (e, t, o) {
+        var n = JSON.parse(JSON.stringify(e || []));
+        return t ? (n.sort(function (e, o) {
+            var n = /^-?\d+$/, r = e[t], i = o[t];
+            return n.test(r) && (r = parseFloat(r)), n.test(i) && (i = parseFloat(i)), r && !i ? 1 : !r && i ? -1 : r > i ? 1 : r < i ? -1 : 0
+        }), o && n.reverse(), n) : n
+    }, n.prototype.stope = function (t) {
+        t = t || e.event;
+        try {
+            t.stopPropagation()
+        } catch (o) {
+            t.cancelBubble = !0
+        }
+    }, n.prototype.onevent = function (e, t, o) {
+        return "string" != typeof e || "function" != typeof o ? this : n.event(e, t, null, o)
+    }, n.prototype.event = n.event = function (e, t, n, r) {
+        var i = this, a = null, u = t.match(/\((.*)\)$/) || [], l = (e + "." + t).replace(u[0], ""), s = u[1] || "",
+            c = function (e, t) {
+                var o = t && t.call(i, n);
+                o === !1 && null === a && (a = !1)
+            };
+        return r ? (o.event[l] = o.event[l] || {}, o.event[l][s] = [r], this) : (layui.each(o.event[l], function (e, t) {
+            return "{*}" === s ? void layui.each(t, c) : ("" === e && layui.each(t, c), void (s && e === s && layui.each(t, c)))
+        }), a)
+    }, e.layui = new n
+}(window);
\ No newline at end of file
diff --git a/src/main/webapp/views/order/matQueryBox.html b/src/main/webapp/views/order/matQueryBox.html
index 71c1461..a986cdf 100644
--- a/src/main/webapp/views/order/matQueryBox.html
+++ b/src/main/webapp/views/order/matQueryBox.html
@@ -14,6 +14,7 @@
         body {
             padding: 0 20px;
         }
+
         .layui-table-box {
             border-right: 1px solid #9F9F9F;
             border-left: 1px solid #9F9F9F;
@@ -22,9 +23,11 @@
         #search-box {
             padding: 30px 0 20px 0;
         }
+
         #search-box .layui-inline:first-child {
             margin-left: 30px;
         }
+
         #search-box .layui-inline {
             margin-right: 5px;
         }
@@ -33,6 +36,7 @@
             margin-left: 10px;
             display: inline-block;
         }
+
         #data-search-btn.layui-btn-container .layui-btn {
             margin-right: 20px;
         }
@@ -47,7 +51,7 @@
     <div id="search-box" class="layui-form layui-card-header">
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿"  autocomplete="off">
+                <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
             </div>
         </div>
         <div class="layui-inline">
@@ -57,8 +61,10 @@
         </div>
         <!-- 寰呮坊鍔� -->
         <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
-            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
-            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储
+            </button>
+            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆
+            </button>
         </div>
     </div>
 </fieldset>
@@ -83,19 +89,20 @@
 <script>
 
     var pageCurr;
+
     function getCol() {
         var cols = [
             {type: 'checkbox'}
         ];
         cols.push.apply(cols, matCols);
         cols.push(
-            {field: 'stock', align: 'center',title: '搴撳瓨浣欓噺', style: 'font-weight: bold'}
-            ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳', hide: true}
-            ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿', hide: true})
+            {field: 'stock', align: 'center', title: '搴撳瓨浣欓噺', style: 'font-weight: bold'}
+            , {field: 'updateBy$', align: 'center', title: '淇敼浜哄憳', hide: true}
+            , {field: 'updateTime$', align: 'center', title: '淇敼鏃堕棿', hide: true})
         return cols;
     }
 
-    layui.use(['table','laydate', 'form'], function() {
+    layui.use(['table', 'laydate', 'form'], function () {
         var table = layui.table;
         var $ = layui.jquery;
         var layer = layui.layer;
@@ -105,7 +112,7 @@
         locDetlTableIns = table.render({
             elem: '#stockOut',
             headers: {token: localStorage.getItem('token')},
-            url: baseUrl+'/mat/list/auth',
+            url: baseUrl + '/mat/list/auth',
             page: true,
             limit: 8,
             even: true,
@@ -127,11 +134,11 @@
             response: {
                 statusCode: 200
             },
-            done: function(res, curr, count) {
+            done: function (res, curr, count) {
                 if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
+                    top.location.href = baseUrl + "/";
                 }
-                pageCurr=curr;
+                pageCurr = curr;
             }
         });
 
@@ -139,9 +146,9 @@
         table.on('toolbar(stockOut)', function (obj) {
             var checkStatus = table.checkStatus(obj.config.id);
             var data = checkStatus.data;
-            switch(obj.event) {
+            switch (obj.event) {
                 case 'confirm':
-                    if (data.length === 0){
+                    if (data.length === 0) {
                         layer.msg("璇烽�夋嫨鏁版嵁");
                         return;
                     }
@@ -165,14 +172,14 @@
 
         layDate.render({
             elem: '.layui-laydate-range'
-            ,type: 'datetime'
-            ,range: true
+            , type: 'datetime'
+            , range: true
         });
-    })
+    });
 
     function tableReload(child) {
         var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
+        $.each($('#search-box [name]').serializeArray(), function () {
             searchData[this.name] = this.value;
         });
         locDetlTableIns.reload({
@@ -182,9 +189,9 @@
             },
             done: function (res, curr, count) {
                 if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
+                    top.location.href = baseUrl + "/";
                 }
-                pageCurr=curr;
+                pageCurr = curr;
             }
         });
     }
diff --git a/src/main/webapp/views/order/orderResult.html b/src/main/webapp/views/order/orderResult.html
index 8e4e31f..40f1e89 100644
--- a/src/main/webapp/views/order/orderResult.html
+++ b/src/main/webapp/views/order/orderResult.html
@@ -51,6 +51,7 @@
             /* font-weight: bold; */
             text-align: left;
         }
+
     </style>
 </head>
 <body>
@@ -82,24 +83,32 @@
             <div class="layui-card">
                 <div class="layui-card-body" style="padding: 10px;">
                     <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
-                    <form class="layui-form toolbar">
-                        <div class="layui-form-item">
-                            <div class="layui-inline">
-                                <label class="layui-form-label">璁㈠崟缂栧彿:</label>
-                                <div class="layui-input-inline">
-                                    <input name="order_no" class="layui-input" id="orderNo" placeholder="杈撳叆璁㈠崟缂栧彿"/>
+                    <div class="layui-row">
+                        <form class="layui-form toolbar layui-col-md4">
+                            <div class="layui-form-item">
+                                <div class="layui-inline">
+                                    <label class="layui-form-label">璁㈠崟缂栧彿:</label>
+                                    <div class="layui-input-inline">
+                                        <input name="order_no" class="layui-input" id="orderNo" placeholder="杈撳叆璁㈠崟缂栧彿"/>
+                                    </div>
+                                </div>
+                                <div class="layui-inline">&emsp;
+                                    <button class="layui-btn icon-btn" lay-filter="orderTbSearch" lay-submit>
+                                        <i class="layui-icon">&#xe615;</i>鎼滅储
+                                    </button>
+                                    <button class="layui-btn icon-btn" lay-filter="orderTbReset" lay-submit>
+                                        <i class="layui-icon">&#xe666;</i>閲嶇疆
+                                    </button>
+
                                 </div>
                             </div>
-                            <div class="layui-inline">&emsp;
-                                <button class="layui-btn icon-btn" lay-filter="orderTbSearch" lay-submit>
-                                    <i class="layui-icon">&#xe615;</i>鎼滅储
-                                </button>
-                                <button class="layui-btn icon-btn" lay-filter="orderTbReset" lay-submit>
-                                    <i class="layui-icon">&#xe666;</i>閲嶇疆
-                                </button>
-                            </div>
-                        </div>
-                    </form>
+                        </form>
+                        <button class="layui-btn icon-btn" id="waveback">
+                            <i class="layui-icon">&#xe657;</i>鎾
+                        </button>
+                    </div>
+
+
                     <!-- 鏁版嵁琛ㄦ牸2 -->
                     <table id="orderTable" lay-filter="orderTable"></table>
                 </div>
diff --git a/src/main/webapp/views/order/waveback_detl.html b/src/main/webapp/views/order/waveback_detl.html
new file mode 100644
index 0000000..1d618d2
--- /dev/null
+++ b/src/main/webapp/views/order/waveback_detl.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+    <style>
+        body {
+            padding: 0 20px;
+        }
+
+        .layui-table-box {
+            border-right: 1px solid #9F9F9F;
+            border-left: 1px solid #9F9F9F;
+        }
+
+        #search-box {
+            padding: 30px 0 20px 0;
+        }
+
+        #search-box .layui-inline:first-child {
+            margin-left: 30px;
+        }
+
+        #search-box .layui-inline {
+            margin-right: 5px;
+        }
+
+        #data-search-btn {
+            margin-left: 10px;
+            display: inline-block;
+        }
+
+        #data-search-btn.layui-btn-container .layui-btn {
+            margin-right: 20px;
+        }
+        .red{
+            color: #CF1900;
+        }
+        .blue{
+            color: #0c64eb;
+        }
+    </style>
+</head>
+<body>
+
+
+<fieldset class="layui-elem-field" style="margin-top: 10px">
+    <legend>鎼滅储</legend>
+    <div class="layui-row" style="padding-top: 10px; padding-left: 10px">
+        <div class="layui-col-md5">
+            <form class="layui-form toolbar">
+                <div class="layui-form-item">
+                    <div class="layui-inline" >
+                        <input id="waveNo$" name="waveNo$" class="layui-input" placeholder="杈撳叆娉㈡鍙�"/>
+                    </div>
+                    <div class="layui-inline">
+                        <button class="layui-btn icon-btn" lay-filter="wavaBackResearch" lay-submit>
+                            <i class="layui-icon">&#xe615;</i>鎼滅储
+                        </button>
+                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+                            <i class="layui-icon">&#xe666;</i>閲嶇疆
+                        </button>
+                    </div>
+                </div>
+
+            </form>
+            <div class="layui-inline">
+                <input id="backOrderOne" class="layui-input" placeholder="璇疯緭鍏ユ挱绉嶇墿鏂欏彿"/>
+            </div>
+            <div class="layui-inline">
+                <button class="layui-btn icon-btn" id="once">
+                    <i class="layui-icon">&#xe657;</i>鎾涓�娆�
+                </button>
+            </div>
+            <div class="layui-inline">
+                <button class="layui-btn icon-btn" id="submit" >
+                    <i class="layui-icon">&#xe657;</i>鎻愪氦
+                </button>
+            </div>
+        </div>
+
+        <div class="layui-col-md6">
+            <div class="layui-card">
+                <div class="layui-card-header" id="cardTitile">浣跨敤璇存槑</div>
+                <div class="layui-card-body" id="cardBody">
+                    棣栧厛鎼滅储娉㈡鍙�,鐒跺悗杈撳叆闇�瑕佹挱绉嶇殑鐗╂枡ID(姣忔鎾涓�涓�)<br>
+                </div>
+            </div>
+        </div>
+
+
+    </div>
+</fieldset>
+<div class="layui-form">
+    <table id="showWave" lay-filter="showWave"></table>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+
+
+</body>
+<script>
+    var pageCurr;
+    var allRecord = [];
+
+    layui.use(['table', 'laydate', 'form', 'util'], function () {
+        var table = layui.table;
+        var $ = layui.jquery;
+        var layer = layui.layer;
+        var layDate = layui.laydate;
+        var form = layui.form;
+        var util = layui.util;
+        var insTb = table.render({
+            elem: '#showWave',
+            url: baseUrl + '/order/orderByWave/auth',
+            height: 'full-100',
+            limit: 15,
+            limits: [15, 30, 50, 100, 200, 500],
+            page: true,
+            headers: {token: localStorage.getItem('token')},
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+
+            parseData: function (res) {
+                if (allRecord.length === 0) {
+                    allRecord = res.data.records;
+                }
+
+
+                return {
+                    'code': res.code,
+                    'msg': res.msg,
+                    'count': res.data.total,
+                    'data': allRecord
+                }
+            },
+            response: {
+                statusCode: 200
+            },
+
+            defaultToolbar: [],
+            cols: [[
+                {field: 'waveNo$', title: '娉㈡鍙�', minWidth: 175}
+                , {field: 'orderNo', align: 'center', title: '鍗曟嵁缂栧彿'}
+                , {field: 'matnr', align: 'center', title: '鐗╂枡ID' , minWidth: 175}
+                , {field: 'maktx', align: 'center', title: '鐗╂枡鍚嶇О'}
+                , {field: 'anfme', align: 'center', title: '搴斿嚭搴撻噺', minWidth: 50}
+                , {field: 'outQty', align: 'center', title: '宸插嚭搴撻噺', minWidth: 50}
+
+            ]]
+        });
+        $('#once').click(function () {
+
+            var matNo = $('input[id="backOrderOne"]').val();
+            for (let i = 0; i < allRecord.length; i++) {
+                if (matNo === allRecord[i].matnr) {
+                    if (allRecord[i].anfme > allRecord[i].outQty){
+                        allRecord[i].outQty = allRecord[i].outQty + 1
+                        break;
+                    }
+                }
+            }
+            insTb.reload({
+                page: {curr: 1}
+            })
+        });
+
+        $('#submit').click(function (data) {
+            layer.confirm('[閲嶈]纭畾鎻愪氦鍚�?',{
+                skin: 'layui-layer-admin',
+                shade: .1
+            },function (data) {
+
+                $.ajax({
+                    url: baseUrl+"/order/waveBack",
+
+                    header:{'token': localStorage.getItem('token')},
+                    contentType:'application/json;charset=UTF-8',
+                    data:JSON.stringify({
+                        orderDetls: allRecord
+                    }),
+                    // data:{
+                    //     orders: allRecord
+                    // },
+
+                    method: 'POST',
+                    success: function (res) {
+                        layer.msg(res.msg, {icon: 1})
+                    }
+                });
+            });
+        });
+        form.on('submit(wavaBackResearch)', function (data) {
+            var newRecord = [];
+            if (data.field.waveNo$ === "") {
+                allRecord.length = 0;
+
+            } else {
+                for (let i = 0; i < allRecord.length; i++) {
+                    let record = allRecord[i];
+                    if (record.waveNo$ === data.field.waveNo$) {
+                        newRecord.push(record);
+                    }
+                }
+                allRecord = newRecord;
+            }
+            insTb.reload({
+                page: {curr: 1}
+
+            });
+            return false;
+        });
+        form.on('submit(reset)', function (data) {
+            $('#waveNo$').val = "";
+            allRecord.length = 0;
+            insTb.reload({
+                page: {curr: 1}
+            });
+            return false;
+        });
+    });
+</script>
+</html>
\ No newline at end of file

--
Gitblit v1.9.1