From a3776853fa6ff1c4a9805615a79852d54f700e3f Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期六, 20 七月 2024 09:21:04 +0800
Subject: [PATCH] 增加库位明细导出功能,曾加物料、单据、库存全局搜索功能

---
 zy-asrs-wms/src/main/webapp/views/order/order.html                          |    5 
 zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java     |   56 ++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Mat.java         |   25 +++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Order.java       |   31 +++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java   |   37 +++--
 zy-asrs-wms/src/main/webapp/views/mat/mat.html                              |    5 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java     |   20 ++
 zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js                    |  110 +++++++++++----
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java     |   47 +++++-
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java     |   10 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java |   74 ++++++++-
 11 files changed, 346 insertions(+), 74 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
index 7a7572a..55bd786 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.common.web;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.sys.entity.User;
 import com.zy.asrs.common.sys.entity.UserLogin;
@@ -125,4 +127,58 @@
         return tagService.getTop(getHostId());
     }
 
+    /**
+     * 鍏ㄥ瓧娈垫ā绯婃悳绱�
+     * @param cls 妯″瀷绫�
+     * @param set 鎺掗櫎瀛楁闆嗗悎
+     * @param condition 鎼滅储鍐呭
+     */
+    protected <T> void allLike(Class<T> cls, Set<String> set, QueryWrapper<T> wrapper, String condition){
+        if (Cools.isEmpty(condition)) {
+            return;
+        }
+        final List<String> columns = new ArrayList<>();
+        for (Field field :Cools.getAllFields(cls)){
+            if (Modifier.isFinal(field.getModifiers())
+                    || Modifier.isStatic(field.getModifiers())
+                    || Modifier.isTransient(field.getModifiers())){
+                continue;
+            }
+            String column = null;
+            if (field.isAnnotationPresent(TableField.class)) {
+                column = field.getAnnotation(TableField.class).value();
+            }
+            if (Cools.isEmpty(column)) {
+                column = field.getName();
+            }
+            if (!set.contains(column)) {
+                columns.add(column);
+            }
+        }
+        if (columns.isEmpty()) {
+            return;
+        }
+
+        wrapper.and( w -> {
+            for (int i=0;i<columns.size();i++){
+                String colums = columns.get(i);
+                if (i==0){
+                    w.like(colums, condition);
+                }else {
+                    w.or().like(colums, condition);
+                }
+            }
+        });
+
+//        for (int i=0;i<columns.size();i++){
+//            String colums = columns.get(i);
+//            if (i==0){
+//                wrapper.and(w -> w.like(colums, condition));
+//            } else {
+//                wrapper.or(w -> w.like(colums, condition));
+//            }
+////            wrapper.like(columns.get(i), condition);
+//        }
+    }
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java
index a816f62..5ec4d48 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java
@@ -3,6 +3,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.*;
 import com.zy.asrs.common.utils.Synchro;
 import com.zy.asrs.common.wms.service.DocTypeService;
 import com.zy.asrs.common.wms.service.LocMastService;
@@ -11,10 +12,6 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -42,6 +39,7 @@
      * 搴撲綅鍙�
      */
     @ApiModelProperty(value= "搴撲綅鍙�")
+    @TableField("loc_no")
     private String locNo;
 
     /**
@@ -72,6 +70,7 @@
     private String batch;
 
     @ApiModelProperty(value= "")
+    @TableField("order_no")
     private String orderNo;
 
     /**
@@ -117,12 +116,15 @@
     private String manu;
 
     @ApiModelProperty(value= "")
+    @TableField("manu_date")
     private String manuDate;
 
     @ApiModelProperty(value= "")
+    @TableField("item_num")
     private String itemNum;
 
     @ApiModelProperty(value= "")
+    @TableField("safe_qty")
     private Double safeQty;
 
     @ApiModelProperty(value= "")
@@ -135,21 +137,26 @@
     private Double volume;
 
     @ApiModelProperty(value= "")
+    @TableField("three_code")
     private String threeCode;
 
     @ApiModelProperty(value= "")
     private String supp;
 
     @ApiModelProperty(value= "")
+    @TableField("supp_code")
     private String suppCode;
 
     @ApiModelProperty(value= "")
+    @TableField("be_batch")
     private Integer beBatch;
 
     @ApiModelProperty(value= "")
+    @TableField("dead_time")
     private String deadTime;
 
     @ApiModelProperty(value= "")
+    @TableField("dead_warn")
     private Integer deadWarn;
 
     @ApiModelProperty(value= "")
@@ -165,6 +172,7 @@
      * 淇敼浜哄憳
      */
     @ApiModelProperty(value= "淇敼浜哄憳")
+    @TableField("modi_user")
     private Long modiUser;
 
     /**
@@ -172,12 +180,14 @@
      */
     @ApiModelProperty(value= "淇敼鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("modi_time")
     private Date modiTime;
 
     /**
      * 鍒涘缓鑰�
      */
     @ApiModelProperty(value= "鍒涘缓鑰�")
+    @TableField("appe_user")
     private Long appeUser;
 
     /**
@@ -185,6 +195,7 @@
      */
     @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("appe_time")
     private Date appeTime;
 
     /**
@@ -197,6 +208,7 @@
      * 鎺堟潈鍟嗘埛
      */
     @ApiModelProperty(value= "鎺堟潈鍟嗘埛")
+    @TableField("host_id")
     private Long hostId;
 
     @ApiModelProperty(value= "璐т富")
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Mat.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Mat.java
index 4612333..afd169f 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Mat.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Mat.java
@@ -4,6 +4,7 @@
 import java.util.Date;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.zy.asrs.common.wms.service.TagService;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -42,6 +43,7 @@
      * 鎵�灞炲綊绫�
      */
     @ApiModelProperty(value= "鎵�灞炲綊绫�")
+    @TableField("tag_id")
     private Long tagId;
 
     /**
@@ -132,12 +134,14 @@
      * 鐢熶骇鏃ユ湡
      */
     @ApiModelProperty(value= "鐢熶骇鏃ユ湡")
+    @TableField("manu_date")
     private String manuDate;
 
     /**
      * 鍝侀」鏁�
      */
     @ApiModelProperty(value= "鍝侀」鏁�")
+    @TableField("item_num")
     private String itemNum;
 
     /**
@@ -162,6 +166,7 @@
      * 涓夋柟缂栫爜
      */
     @ApiModelProperty(value= "涓夋柟缂栫爜")
+    @TableField("three_code")
     private String threeCode;
 
     /**
@@ -174,12 +179,14 @@
      * 渚涘簲鍟嗙紪鐮�
      */
     @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�")
+    @TableField("supp_code")
     private String suppCode;
 
     /**
      * 淇濊川鏈�
      */
     @ApiModelProperty(value= "淇濊川鏈�")
+    @TableField("dead_time")
     private String deadTime;
 
     /**
@@ -192,6 +199,7 @@
      * 娣诲姞浜哄憳
      */
     @ApiModelProperty(value= "娣诲姞浜哄憳")
+    @TableField("create_by")
     private Long createBy;
 
     /**
@@ -199,12 +207,14 @@
      */
     @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("create_time")
     private Date createTime;
 
     /**
      * 淇敼浜哄憳
      */
     @ApiModelProperty(value= "淇敼浜哄憳")
+    @TableField("update_by")
     private Long updateBy;
 
     /**
@@ -212,6 +222,7 @@
      */
     @ApiModelProperty(value= "淇敼鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("update_time")
     private Date updateTime;
 
     /**
@@ -224,19 +235,24 @@
      * 浠撳簱ID
      */
     @ApiModelProperty(value= "浠撳簱ID")
+    @TableField("host_id")
     private Long hostId;
 
     //蹇靛垵浣跨敤浠ヤ笅棰濆瀛楁
     //涓昏浠撳簱
+    @TableField("main_host")
     private String mainHost;
 
     //涓昏鏉ユ簮
+    @TableField("main_source")
     private String mainSource;
 
     //寰幆鐩樼偣鐮�
+    @TableField("cycle_pick_code")
     private String cyclePickCode;
 
     //瀛樻斁浣嶇疆
+    @TableField("location_stock")
     private String locationStock;
 
     //鏉愯川
@@ -246,24 +262,30 @@
     private String decrees;
 
     //鍥惧彿
+    @TableField("img_num")
     private String imgNum;
 
     //閲囪喘鍗曚綅
+    @TableField("purchasing_units")
     private String purchasingUnits;
 
     //宸ヨ壓缂栧彿
+    @TableField("process_number")
     private String processNumber;
 
     //鎸囧畾bom
     private String bom;
 
     //瀹夊叏瀛橀噺
+    @TableField("safe_num")
     private String safeNum;
 
     //鏈�浣庤ˉ閲�
+    @TableField("mini_count")
     private String miniCount;
 
     //琛ヨ揣鍊嶉噺
+    @TableField("replenishment_num")
     private String replenishmentNum;
 
     //鑷畾涔�1
@@ -276,6 +298,7 @@
     private String tmp3;
 
     //鎸夐渶姹傝ˉ璐�
+    @TableField("replenishment_num")
     private String restockDemand;
 
     //澶辨晥
@@ -291,12 +314,14 @@
     private String height;
 
     //浼氳鍒嗙被
+    @TableField("accounting_class")
     private String accountingClass;
 
     //鎵瑰彿绠$悊
     private String batch;
 
     //瀛樿揣鏍哥畻
+    @TableField("inventory_account")
     private String inventoryAccount;
 
 
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Order.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Order.java
index 64e74b7..ed97eeb 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Order.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/Order.java
@@ -3,6 +3,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.*;
 import com.zy.asrs.common.wms.service.CstmrService;
 import com.zy.asrs.common.wms.service.DocTypeService;
 import com.zy.asrs.common.wms.service.ItemService;
@@ -15,10 +16,6 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -53,40 +50,47 @@
     /**
      * 璁㈠崟缂栧彿
      */
+    @TableField("order_no")
     @ApiModelProperty(value= "璁㈠崟缂栧彿")
     private String orderNo;
 
     /**
      * 鍗曟嵁鏃ユ湡
      */
+    @TableField("order_time")
     @ApiModelProperty(value= "鍗曟嵁鏃ユ湡")
     private String orderTime;
 
     /**
      * 鍗曟嵁绫诲瀷
      */
+    @TableField("doc_type")
     @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
     private Long docType;
 
     /**
      * 椤圭洰缂栧彿
      */
+    @TableField("item_id")
     @ApiModelProperty(value= "椤圭洰缂栧彿")
     private Long itemId;
 
     @ApiModelProperty(value= "")
+    @TableField("item_name")
     private String itemName;
 
     /**
      * 璋冩嫧椤圭洰缂栧彿
      */
     @ApiModelProperty(value= "璋冩嫧椤圭洰缂栧彿")
+    @TableField("allot_item_id")
     private Long allotItemId;
 
     /**
      * 鍒濆绁ㄦ嵁鍙�
      */
     @ApiModelProperty(value= "鍒濆绁ㄦ嵁鍙�")
+    @TableField("def_number")
     private String defNumber;
 
     /**
@@ -105,6 +109,7 @@
      * 瀹㈡埛
      */
     @ApiModelProperty(value= "瀹㈡埛")
+    @TableField("cstmr_name")
     private String cstmrName;
 
     /**
@@ -117,12 +122,14 @@
      * 鎿嶄綔浜哄憳
      */
     @ApiModelProperty(value= "鎿嶄綔浜哄憳")
+    @TableField("oper_memb")
     private String operMemb;
 
     /**
      * 鍚堣閲戦
      */
     @ApiModelProperty(value= "鍚堣閲戦")
+    @TableField("total_fee")
     private Double totalFee;
 
     /**
@@ -135,24 +142,28 @@
      * 浼樻儬閲戦
      */
     @ApiModelProperty(value= "浼樻儬閲戦")
+    @TableField("discount_fee")
     private Double discountFee;
 
     /**
      * 閿�鍞垨閲囪喘璐圭敤鍚堣
      */
     @ApiModelProperty(value= "閿�鍞垨閲囪喘璐圭敤鍚堣")
+    @TableField("other_fee")
     private Double otherFee;
 
     /**
      * 瀹炰粯閲戦
      */
     @ApiModelProperty(value= "瀹炰粯閲戦")
+    @TableField("act_fee")
     private Double actFee;
 
     /**
      * 浠樻绫诲瀷 1: 鐜伴噾  2: 璁拌处  
      */
     @ApiModelProperty(value= "浠樻绫诲瀷 1: 鐜伴噾  2: 璁拌处  ")
+    @TableField("pay_type")
     private Integer payType;
 
     /**
@@ -165,18 +176,21 @@
      * 缁撶畻澶╂暟
      */
     @ApiModelProperty(value= "缁撶畻澶╂暟")
+    @TableField("account_day")
     private Integer accountDay;
 
     /**
      * 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯  2: 璐у埌浠樻  
      */
     @ApiModelProperty(value= "閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯  2: 璐у埌浠樻  ")
+    @TableField("post_fee_type")
     private Integer postFeeType;
 
     /**
      * 閭垂
      */
     @ApiModelProperty(value= "閭垂")
+    @TableField("post_fee")
     private Double postFee;
 
     /**
@@ -184,6 +198,7 @@
      */
     @ApiModelProperty(value= "浠樻鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("pay_time")
     private Date payTime;
 
     /**
@@ -191,18 +206,21 @@
      */
     @ApiModelProperty(value= "鍙戣揣鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("send_time")
     private Date sendTime;
 
     /**
      * 鐗╂祦鍚嶇О
      */
     @ApiModelProperty(value= "鐗╂祦鍚嶇О")
+    @TableField("ship_name")
     private String shipName;
 
     /**
      * 鐗╂祦鍗曞彿
      */
     @ApiModelProperty(value= "鐗╂祦鍗曞彿")
+    @TableField("ship_code")
     private String shipCode;
 
     /**
@@ -221,6 +239,7 @@
      * 娣诲姞浜哄憳
      */
     @ApiModelProperty(value= "娣诲姞浜哄憳")
+    @TableField("create_by")
     private Long createBy;
 
     /**
@@ -228,12 +247,14 @@
      */
     @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("create_time")
     private Date createTime;
 
     /**
      * 淇敼浜哄憳
      */
     @ApiModelProperty(value= "淇敼浜哄憳")
+    @TableField("update_by")
     private Long updateBy;
 
     /**
@@ -241,6 +262,7 @@
      */
     @ApiModelProperty(value= "淇敼鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("update_time")
     private Date updateTime;
 
     /**
@@ -253,6 +275,7 @@
      * 鎺堟潈鍟嗘埛
      */
     @ApiModelProperty(value= "鎺堟潈鍟嗘埛")
+    @TableField("host_id")
     private Long hostId;
 
     public Order() {}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
index 9d68acd..bdd232c 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -10,6 +10,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.wms.entity.LocDetl;
 import com.zy.asrs.common.wms.entity.Mat;
+import com.zy.asrs.common.wms.entity.Order;
 import com.zy.asrs.common.wms.service.LocDetlService;
 import com.zy.asrs.common.wms.service.MatService;
 import com.zy.asrs.framework.annotations.ManagerAuth;
@@ -61,10 +62,54 @@
         return R.ok(detls);
     }
 
-    @RequestMapping(value = "/locDetl/{id}/auth")
-    @ManagerAuth
-    public R get(@PathVariable("id") String id) {
-        return R.ok(locDetlService.getById(String.valueOf(id)));
+//    @RequestMapping(value = "/locDetl/{id}/auth")
+//    @ManagerAuth
+//    public R get(@PathVariable("id") String id) {
+//
+//        return R.ok(locDetlService.getById(String.valueOf(id)));
+//    }
+
+    @RequestMapping(value = "/locDetl/export/auth")
+    @ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
+    public synchronized R export(@RequestBody JSONObject param){
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        QueryWrapper<LocDetl> wrapper = new QueryWrapper<>();
+        Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
+        String row = "";
+        if (map.get("row") != null) {
+            String chooseRow = (String) map.get("row");
+            if (chooseRow.length() == 1) {
+                row = "0" + chooseRow;
+                map.remove("row");
+            }else {
+                row = chooseRow;
+                map.remove("row");
+            }
+        }
+        convert(map, wrapper);
+//        if (!row.equals("")){
+//            wrapper.and()
+//                    .where("loc_no like '" +row +"%'");
+//        }
+        List<LocDetl> list = locDetlService.list(wrapper);
+        return R.ok(exportSupport(list, fields));
+    }
+
+    private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            String val = String.valueOf(entry.getValue());
+            if (val.contains(RANGE_TIME_LINK)){
+                String[] dates = val.split(RANGE_TIME_LINK);
+                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else {
+                if (entry.getKey().equals("locNo")) {
+                    wrapper.eq("loc_no", String.valueOf(entry.getValue()));
+                } else {
+                    wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+                }
+            }
+        }
     }
 
     @RequestMapping(value = "/locDetl/page/auth")
@@ -74,19 +119,24 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false) String timeRange,
                   @RequestParam Map<String, Object> param) {
-        LambdaQueryWrapper<LocDetl> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(LocDetl::getHostId, getHostId());
-        if (!Cools.isEmpty(condition)) {
-            wrapper.like(LocDetl::getLocNo, condition);
-        }
+        QueryWrapper<LocDetl> wrapper = new QueryWrapper<>();
+        wrapper.eq("host_id", getHostId());
+//        if (!Cools.isEmpty(condition)) {
+//            wrapper.like(LocDetl::getLocNo, condition);
+//        }
         if (!Cools.isEmpty(timeRange)) {
             String[] range = timeRange.split(RANGE_TIME_LINK);
-            wrapper.ge(LocDetl::getAppeTime, DateUtils.convert(range[0]));
-            wrapper.le(LocDetl::getAppeTime, DateUtils.convert(range[1]));
+            wrapper.ge("appe_time", DateUtils.convert(range[0]));
+            wrapper.le("appe_time", DateUtils.convert(range[1]));
         }
         if (!Cools.isEmpty(param.get("locNo"))) {
-            wrapper.eq(LocDetl::getLocNo, param.get("locNo"));
+            wrapper.eq("loc_no", param.get("locNo"));
         }
+        param.remove("locNo");
+        param.remove("owner");
+        param.remove("zpallet");
+        param.remove("matnr");
+        allLike(LocDetl.class, param.keySet(), wrapper, condition);
         return R.ok(locDetlService.page(new Page<>(curr, limit), wrapper));
     }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
index 22c3cef..4718c8e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.utils.TreeUtils;
 import com.zy.asrs.common.wms.entity.Mat;
@@ -52,15 +53,16 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false) String timeRange,
                   @RequestParam Map<String, Object> param) {
-        LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Mat::getHostId, getHostId());
-        if (!Cools.isEmpty(condition)) {
-            wrapper.like(Mat::getId, condition);
-        }
+        QueryWrapper<Mat> wrapper = new QueryWrapper<>();
+//        convert(param, wrapper);
+        wrapper.eq("host_id", getHostId());
+//        if (!Cools.isEmpty(condition)) {
+//            wrapper.like(Mat::getId, condition);
+//        }
         if (!Cools.isEmpty(timeRange)) {
             String[] range = timeRange.split(RANGE_TIME_LINK);
-            wrapper.ge(Mat::getCreateTime, DateUtils.convert(range[0]));
-            wrapper.le(Mat::getCreateTime, DateUtils.convert(range[1]));
+            wrapper.ge("create_time", DateUtils.convert(range[0]));
+            wrapper.le("create_time", DateUtils.convert(range[1]));
         }
         Object tagId = param.get("tag_id");
         ArrayList<Long> nodes = new ArrayList<>();
@@ -68,20 +70,45 @@
             tagId = getOriginTag().getId();
         }
         treeUtils.getTagIdList(Long.parseLong(tagId.toString()), nodes);
-        wrapper.in(Mat::getTagId, nodes);
+        wrapper.in("tag_id", nodes);
         if (!Cools.isEmpty(param.get("matnr"))) {
-            wrapper.eq(Mat::getMatnr, param.get("matnr"));
+            wrapper.eq("matnr", param.get("matnr"));
         }
         if (!Cools.isEmpty(param.get("maktx"))) {
-            wrapper.eq(Mat::getMaktx, param.get("maktx"));
+            wrapper.eq("maktx", param.get("maktx"));
         }
+        param.remove("matnr");
+        param.remove("maktx");
+        allLike(Mat.class, param.keySet(), wrapper, condition);
         return R.ok(matService.page(new Page<>(curr, limit), wrapper));
     }
+
+
+//    private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
+//        for (Map.Entry<String, Object> entry : map.entrySet()){
+//            String val = String.valueOf(entry.getValue());
+//            if (val.contains(RANGE_TIME_LINK)){
+//                String[] dates = val.split(RANGE_TIME_LINK);
+//                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+//                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+//            } else {
+//                if (entry.getKey().equals("locNo")) {
+//                    wrapper.eq("loc_no", String.valueOf(entry.getValue()));
+//                } else {
+//                    wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+//                }
+//            }
+//        }
+//    }
 
 
     @RequestMapping(value = "/mat/add/auth")
     @ManagerAuth
     public R add(Mat mat) {
+        int count = matService.count(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, mat.getMatnr()));
+        if(count > 0){
+            return R.error("褰撳墠鐗╂枡鍙峰凡瀛樺湪");
+        }
         mat.setHostId(getHostId());
         matService.save(mat);
         return R.ok();
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
index c6e0a66..4dc57fa 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -3,6 +3,8 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.Query;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.domain.dto.DetlDto;
 import com.zy.asrs.common.domain.dto.WrkTraceVo;
@@ -21,6 +23,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
@@ -88,16 +91,17 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false) String timeRange,
                   @RequestParam Map<String, Object> param) {
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Order::getHostId, getHostId());
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
+        wrapper.eq("host_id", getHostId());
         if (!Cools.isEmpty(condition)) {
-            wrapper.like(Order::getId, condition);
+            wrapper.like("id", condition);
         }
         if (!Cools.isEmpty(timeRange)) {
             String[] range = timeRange.split(RANGE_TIME_LINK);
-            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
-            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
+            wrapper.ge("create_time", DateUtils.convert(range[0]));
+            wrapper.le("create_time", DateUtils.convert(range[1]));
         }
+        allLike(Order.class, param.keySet(), wrapper, condition);
         return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
     }
 
@@ -105,32 +109,37 @@
     @ManagerAuth
     public R head(@RequestParam(defaultValue = "1")Integer curr,
                   @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false) String condition,
                   @RequestParam(required = false)String orderByField,
                   @RequestParam(required = false)String orderByType,
                   @RequestParam Map<String, Object> param) throws UnsupportedEncodingException {
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        condition = condition.trim();
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
         excludeTrash(param);
-        wrapper.eq(Order::getStatus, 1);
-        wrapper.eq(Order::getHostId, getHostId());
+        wrapper.eq("status", 1);
+        wrapper.eq("host_id", getHostId());
         if (!Cools.isEmpty(param.get("order_no"))) {
-            wrapper.eq(Order::getOrderNo, param.get("order_no"));
+            wrapper.eq("order_no", param.get("order_no"));
         }
         if (!Cools.isEmpty(param.get("create_time"))) {
             String[] range = param.get("create_time").toString().split(RANGE_TIME_LINK);
-            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
-            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
+            wrapper.ge("create_time", DateUtils.convert(range[0]));
+            wrapper.le("create_time", DateUtils.convert(range[1]));
         }
         if (!Cools.isEmpty(param.get("doc_type"))) {
-            wrapper.eq(Order::getDocType, param.get("doc_type"));
+            wrapper.eq("doc_type", param.get("doc_type"));
         }
         if (!Cools.isEmpty(param.get("docName"))) {
             String docName = URLDecoder.decode(param.get("docName").toString(), "UTF-8");
             DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocName, docName));
-            wrapper.eq(Order::getDocType, docType.getDocId());
+            wrapper.eq("doc_type", docType.getDocId());
         }
         if (!Cools.isEmpty(param.get("settle"))) {
-            wrapper.eq(Order::getSettle, param.get("settle"));
+            wrapper.eq("settle", param.get("settle"));
         }
+
+        param.remove("order_no");
+        allLike(Order.class, param.keySet(), wrapper, condition);
         return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
     }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
index 6c7e965..d1fbe84 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
@@ -222,6 +222,16 @@
                 .doWrite(excels);
     }
 
+//    // excel瀵煎叆-------鍒ゆ柇鏄惁鏈夐噸澶嶇墿鏂�
+//    @PostMapping(value = "/mat/excel/import/check/auth")
+//    @ManagerAuth(memo = "鍟嗗搧妗f鏁版嵁瀵煎叆")
+//    @Transactional
+//    public R matExcelImportCheck(MultipartFile file) throws IOException {
+//        MatExcelListener listener = new MatExcelListener(getUserId(), getHostId());
+//        EasyExcel.read(file.getInputStream(), MatExcel.class, listener).sheet().doRead();
+//        return R.ok("鎴愬姛鍚屾"+listener.getTotal()+"鏉″晢鍝佹暟鎹�");
+//    }
+
     // excel瀵煎叆
     @PostMapping(value = "/mat/excel/import/auth")
     @ManagerAuth(memo = "鍟嗗搧妗f鏁版嵁瀵煎叆")
diff --git a/zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js b/zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js
index 10f707c..795dbad 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js
@@ -193,48 +193,98 @@
                         exportData[this.name] = this.value;
                     });
                     var param = {
-                        'wrkDetlLog': exportData,
+                        'locDetl': exportData,
                         'fields': fields
                     };
-
-                    layer.load('Loading...', {
-                        shade: [0.1,'#fff']
-                    });
+                    var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
                     $.ajax({
-                        url: baseUrl + "/locDetl/export/auth",
+                        url: baseUrl+"/locDetl/export/auth",
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify(param),
+                        dataType:'json',
                         contentType:'application/json;charset=UTF-8',
                         method: 'POST',
-                        xhrFields: {
-                            responseType: "blob" // 璁剧疆鍝嶅簲绫诲瀷涓轰簩杩涘埗鏁版嵁
-                        },
                         success: function (res) {
-                            // 鍒涘缓涓�涓复鏃剁殑涓嬭浇閾炬帴
-                            const url = window.URL.createObjectURL(res);
-                            // 鍒涘缓涓�涓殣钘忕殑 <a> 鍏冪礌骞惰缃笅杞介摼鎺�
-                            const a = document.createElement("a");
-                            a.style.display = "none";
-                            a.href = url;
-                            a.download = "export.xlsx"; // 鎸囧畾涓嬭浇鐨勬枃浠跺悕
-                            document.body.appendChild(a);
-
-                            // 瑙﹀彂鐐瑰嚮浜嬩欢浠ュ紑濮嬩笅杞�
-                            a.click();
-
-                            // 娓呯悊涓存椂璧勬簮
-                            setTimeout(function () {
-                                window.URL.revokeObjectURL(url);
-                                document.body.removeChild(a);
-                                layer.closeAll();
-                            }, 100);
-                        },
-                        fail: function (){
-                            layer.msg('瀵煎嚭澶辫触', {icon: 2})
+                            layer.close(loadIndex);
                             layer.closeAll();
+                            if (res.code === 200) {
+                                res.data.forEach((item,index) => {
+                                    if (item[0] != null) {
+                                        item[0] = "'" + item[0];
+                                    }
+                                    if (item[1] != null) {
+                                        item[1] = "'" + item[1];
+                                    }
+                                    if (item[2] != null) {
+                                        item[2] = "'" + item[2];
+                                    }
+                                })
+                                table.exportFile(titles,res.data,'xls');
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg)
+                            }
                         }
                     });
                 });
+                // debugger;
+                // 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);
+                //             fields.push(col.field);
+                //         }
+                //     });
+                //     var exportData = {};
+                //     $.each($('#search-box [name]').serializeArray(), function() {
+                //         exportData[this.name] = this.value;
+                //     });
+                //     var param = {
+                //         'wrkDetlLog': exportData,
+                //         'fields': fields
+                //     };
+                //
+                //     layer.load('Loading...', {
+                //         shade: [0.1,'#fff']
+                //     });
+                //     $.ajax({
+                //         url: baseUrl + "/locDetl/export/auth",
+                //         headers: {'token': localStorage.getItem('token')},
+                //         data: JSON.stringify(param),
+                //         contentType:'application/json;charset=UTF-8',
+                //         method: 'POST',
+                //         xhrFields: {
+                //             responseType: "blob" // 璁剧疆鍝嶅簲绫诲瀷涓轰簩杩涘埗鏁版嵁
+                //         },
+                //         success: function (res) {
+                //             // 鍒涘缓涓�涓复鏃剁殑涓嬭浇閾炬帴
+                //             const url = window.URL.createObjectURL(res);
+                //             // 鍒涘缓涓�涓殣钘忕殑 <a> 鍏冪礌骞惰缃笅杞介摼鎺�
+                //             const a = document.createElement("a");
+                //             a.style.display = "none";
+                //             a.href = url;
+                //             a.download = "export.xlsx"; // 鎸囧畾涓嬭浇鐨勬枃浠跺悕
+                //             document.body.appendChild(a);
+                //
+                //             // 瑙﹀彂鐐瑰嚮浜嬩欢浠ュ紑濮嬩笅杞�
+                //             a.click();
+                //
+                //             // 娓呯悊涓存椂璧勬簮
+                //             setTimeout(function () {
+                //                 window.URL.revokeObjectURL(url);
+                //                 document.body.removeChild(a);
+                //                 layer.closeAll();
+                //             }, 100);
+                //         },
+                //         fail: function (){
+                //             layer.msg('瀵煎嚭澶辫触', {icon: 2})
+                //             layer.closeAll();
+                //         }
+                //     });
+                // });
                 break;
         }
     });
diff --git a/zy-asrs-wms/src/main/webapp/views/mat/mat.html b/zy-asrs-wms/src/main/webapp/views/mat/mat.html
index 2e0a1ce..7345b5e 100644
--- a/zy-asrs-wms/src/main/webapp/views/mat/mat.html
+++ b/zy-asrs-wms/src/main/webapp/views/mat/mat.html
@@ -105,6 +105,11 @@
                                 <input name="maktx" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
                             </div>
                         </div>
+                        <div class="layui-inline">
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+                            </div>
+                        </div>
                         <div class="layui-inline">&emsp;
                             <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                                 <i class="layui-icon">&#xe615;</i>鎼滅储
diff --git a/zy-asrs-wms/src/main/webapp/views/order/order.html b/zy-asrs-wms/src/main/webapp/views/order/order.html
index 3cb4f04..a1b75d1 100644
--- a/zy-asrs-wms/src/main/webapp/views/order/order.html
+++ b/zy-asrs-wms/src/main/webapp/views/order/order.html
@@ -54,6 +54,11 @@
                             <input name="order_no" class="layui-input" type="text" placeholder="杈撳叆鍗曟嵁缂栧彿"/>
                         </div>
                     </div>
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+                        </div>
+                    </div>
                     <div class="layui-inline" style="width: 300px">
                         <div class="layui-input-inline">
                             <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">

--
Gitblit v1.9.1