From 03d710eba5cb116976e434f03140238be8a18059 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 30 六月 2025 15:36:38 +0800
Subject: [PATCH] wms功能完善

---
 src/main/webapp/static/js/basCrnError/basCrnError.js            |   25 ++++
 src/main/resources/mapper/ViewWorkInMapper.xml                  |    4 
 src/main/resources/mapper/LocDetlMapper.xml                     |    7 +
 src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java          |    4 
 src/main/java/com/zy/asrs/entity/WrkMast.java                   |    2 
 src/main/resources/mapper/ViewStayTimeMapper.xml                |    1 
 src/main/java/com/zy/asrs/entity/WrkMastLog.java                |    2 
 src/main/webapp/static/js/wrkMast/wrkMast.js                    |    3 
 src/main/webapp/views/report/viewWorkIn.html                    |   24 ++--
 src/main/webapp/views/wrkDetlLog/wrkDetlLog.html                |   26 ++--
 src/main/webapp/views/basCrnError/basCrnError.html              |    1 
 src/main/webapp/views/report/viewWorkOut.html                   |   24 ++--
 src/main/java/com/zy/asrs/importexcle/ImportCrnErrListener.java |   96 +++++++++++++++++++
 src/main/webapp/static/js/wrkMastLog/wrkMastLog.js              |    3 
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java  |    2 
 src/main/java/com/zy/asrs/importexcle/ImportCrnErrDto.java      |   20 ++++
 src/main/java/com/zy/asrs/entity/ViewWorkInBean.java            |    4 
 src/main/webapp/static/js/common.js                             |   15 +-
 src/main/java/com/zy/asrs/controller/BasCrnErrorController.java |   30 +++++
 19 files changed, 237 insertions(+), 56 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasCrnErrorController.java b/src/main/java/com/zy/asrs/controller/BasCrnErrorController.java
index f8981e9..ed1dc0e 100644
--- a/src/main/java/com/zy/asrs/controller/BasCrnErrorController.java
+++ b/src/main/java/com/zy/asrs/controller/BasCrnErrorController.java
@@ -1,21 +1,27 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
-import com.zy.asrs.entity.BasCrnError;
-import com.zy.asrs.service.BasCrnErrorService;
-import com.zy.common.web.BaseController;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.zy.asrs.entity.BasCrnError;
+import com.zy.asrs.importexcle.ImportCrnErrDto;
+import com.zy.asrs.importexcle.ImportCrnErrListener;
+import com.zy.asrs.service.BasCrnErrorService;
+import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.*;
 
 @RestController
@@ -30,6 +36,24 @@
         return R.ok(basCrnErrorService.selectById(String.valueOf(id)));
     }
 
+    @PostMapping("/importCrnErr")
+    @ManagerAuth(memo = "瀵煎叆鍫嗗灈鏈哄紓甯歌〃")
+    public R importCrnErr(@RequestParam("file") MultipartFile multipartFile) {
+        try {
+            importCrnErrExec(multipartFile);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        return R.ok("瀵煎叆鎴愬姛");
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void importCrnErrExec(MultipartFile multipartFile) throws IOException {
+        EasyExcel.read(multipartFile.getInputStream(), ImportCrnErrDto.class,
+                new ImportCrnErrListener(basCrnErrorService)).sheet().doReadSync();
+    }
+
     @RequestMapping(value = "/basCrnError/list/auth")
     @ManagerAuth
     public R list(@RequestParam(defaultValue = "1")Integer curr,
diff --git a/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java b/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
index 4105561..c793fcd 100644
--- a/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
+++ b/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -87,6 +87,8 @@
 	@ApiModelProperty(value= "鐢熶骇鏃ユ湡")
 	private String manu_date;
 
+	private String manuDate;
+
 	@ApiModelProperty(value= "鍝侀」鏁�")
 	private String item_num;
 
@@ -99,6 +101,8 @@
 	@ApiModelProperty(value= "闀垮害")
 	private Double man_length;
 
+	private Double manLength;
+
 	@ApiModelProperty(value= "浣撶Н")
 	private Double volume;
 
diff --git a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
index 23f6b0d..5104b99 100644
--- a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
+++ b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -98,6 +98,8 @@
 	@ApiModelProperty(value= "鐢熶骇鏃ユ湡")
 	private String manu_date;
 
+	private String manuDate;
+
 	@ApiModelProperty(value= "鍝侀」鏁�")
 	private String item_num;
 
@@ -110,6 +112,8 @@
 	@ApiModelProperty(value= "闀垮害")
 	private Double man_length;
 
+	private Double manLength;
+
 	@ApiModelProperty(value= "浣撶Н")
 	private Double volume;
 
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index bf006ec..605be35 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -405,6 +405,8 @@
         LocMast locMast = service.selectById(this.locNo);
         if (!Cools.isEmpty(locMast)){
             return String.valueOf(locMast.getLocNo());
+        } else if(!Cools.isEmpty(this.locNo)) {
+            return this.locNo;
         }
         return null;
     }
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index ff96225..1bd8fdf 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -421,6 +421,8 @@
         LocMast locMast = service.selectById(this.locNo);
         if (!Cools.isEmpty(locMast)){
             return String.valueOf(locMast.getLocNo());
+        } else if(!Cools.isEmpty(this.locNo)) {
+            return this.locNo;
         }
         return null;
     }
diff --git a/src/main/java/com/zy/asrs/importexcle/ImportCrnErrDto.java b/src/main/java/com/zy/asrs/importexcle/ImportCrnErrDto.java
new file mode 100644
index 0000000..5dff266
--- /dev/null
+++ b/src/main/java/com/zy/asrs/importexcle/ImportCrnErrDto.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.importexcle;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 瀵煎叆鍫嗗灈鏈哄紓甯镐唬鐮乨to
+ * @createDate 2024/9/2 9:55
+ */
+@Data
+public class ImportCrnErrDto {
+
+    @ExcelProperty(value = "搴忓彿",index = 0)
+    private Long column1;
+
+    @ExcelProperty(value = "寮傚父鎻忚堪",index = 1)
+    private String column2;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/importexcle/ImportCrnErrListener.java b/src/main/java/com/zy/asrs/importexcle/ImportCrnErrListener.java
new file mode 100644
index 0000000..78c1ab8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/importexcle/ImportCrnErrListener.java
@@ -0,0 +1,96 @@
+package com.zy.asrs.importexcle;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSON;
+import com.zy.asrs.entity.BasCrnError;
+import com.zy.asrs.service.BasCrnErrorService;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 瀵煎叆鍨涙満寮傚父琛ㄧ洃鍚櫒
+ * @createDate 2024/9/2 9:56
+ */
+@Slf4j
+public class ImportCrnErrListener extends AnalysisEventListener<ImportCrnErrDto> {
+    /**
+     * 姣忛殧1000鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互3000鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀�
+     */
+    private static final int BATCH_COUNT = 500;
+
+    private int count = 0;
+
+    List<ImportCrnErrDto> list = new ArrayList<>();
+    /**
+     * 鍋囪杩欎釜鏄竴涓狣AO锛屽綋鐒舵湁涓氬姟閫昏緫杩欎釜涔熷彲浠ユ槸涓�涓猻ervice銆傚綋鐒跺鏋滀笉鐢ㄥ瓨鍌ㄨ繖涓璞℃病鐢ㄣ��
+     */
+    private final BasCrnErrorService basCrnErrorService;
+
+    /**
+     * 濡傛灉浣跨敤浜唖pring,璇蜂娇鐢ㄨ繖涓瀯閫犳柟娉曘�傛瘡娆″垱寤篖istener鐨勬椂鍊欓渶瑕佹妸spring绠$悊鐨勭被浼犺繘鏉�
+     */
+    public ImportCrnErrListener(BasCrnErrorService basCrnErrorService) {
+        this.basCrnErrorService = basCrnErrorService;
+    }
+
+    /**
+     * 杩欎釜姣忎竴鏉℃暟鎹В鏋愰兘浼氭潵璋冪敤
+     */
+    @SneakyThrows
+    @Override
+    public void invoke(ImportCrnErrDto data, AnalysisContext context) {
+        log.info("瑙f瀽鍒扮 {} 鏉℃暟鎹�:{}", ++count, JSON.toJSONString(data));
+        if (!data.getColumn2().equals("<No value>")) {
+            list.add(data);
+        }
+
+        // 杈惧埌BATCH_COUNT浜嗭紝闇�瑕佸幓瀛樺偍涓�娆℃暟鎹簱锛岄槻姝㈡暟鎹嚑涓囨潯鏁版嵁鍦ㄥ唴瀛橈紝瀹规槗OOM
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            // 瀛樺偍瀹屾垚娓呯悊 list
+            list.clear();
+        }
+    }
+
+    /**
+     * 鎵�鏈夋暟鎹В鏋愬畬鎴愪簡 閮戒細鏉ヨ皟鐢�
+     */
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        // 杩欓噷涔熻淇濆瓨鏁版嵁锛岀‘淇濇渶鍚庨仐鐣欑殑鏁版嵁涔熷瓨鍌ㄥ埌鏁版嵁搴�
+        if (list.size() > 0) {
+            saveData();
+        }
+        log.info("鎵�鏈夋暟鎹В鏋愬畬鎴愶紒");
+    }
+
+    /**
+     * 鍔犱笂瀛樺偍鏁版嵁搴�
+     */
+    private void saveData() {
+        log.info("{}鏉℃暟鎹紝寮�濮嬪瓨鍌ㄦ暟鎹簱锛�", list.size());
+        List<BasCrnError> basCrnErrors = new ArrayList<>();
+        list.forEach(importCrnErrDto -> {
+            BasCrnError basCrnError = new BasCrnError();
+            basCrnError.setErrorCode(importCrnErrDto.getColumn1());
+            basCrnError.setErrName(importCrnErrDto.getColumn2());
+            basCrnErrors.add(basCrnError);
+        });
+        basCrnErrorService.insertBatch(basCrnErrors);
+
+        log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒");
+    }
+    /**
+     *瑙f瀽鍑虹幇閿欒浼氳繘鍏ヨ鏂规硶 鍏蜂綋鐪嬫簮浠g爜鎴栨枃妗�
+     */
+    @Override
+    public void onException(Exception exception, AnalysisContext context) throws Exception {
+        log.error("澶勭悊寮傚父锛�" + exception.getMessage());
+        throw exception;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index b675bd6..7679d6e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -48,7 +48,7 @@
         if (wrkMast.getCtnType() == 0) {
             wrkMast.setCtnType(1);
             this.updateById(wrkMast);
-            log.info("鑷姩琛ュ熬妗朵俊鍙锋垚鍔�,浠诲姟鍙凤細{}",wrkMast.getCrnNo());
+            log.info("鑷姩琛ュ熬妗朵俊鍙锋垚鍔�,浠诲姟鍙凤細{}",wrkMast.getWrkNo());
         }
     }
 
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 5effeea..013bfeb 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -343,7 +343,10 @@
             and a.specs like '%' + #{specs} + '%'
         </if>
         <if test="model!=null and model!='' ">
-            and a.specs like '%' + #{model} + '%'
+            and a.model like '%' + #{model} + '%'
+        </if>
+        <if test="volume!=null and volume!='' ">
+            and a.volume like '%' + #{volume} + '%'
         </if>
     </sql>
 
@@ -375,7 +378,7 @@
         select * from
         (
             select
-            ROW_NUMBER() over (order by sum(a.anfme) desc) as row
+            ROW_NUMBER() over (order by matnr desc) as row
             , a.matnr
             , a.maktx
             , a.model
diff --git a/src/main/resources/mapper/ViewStayTimeMapper.xml b/src/main/resources/mapper/ViewStayTimeMapper.xml
index 2b01a4f..841fd8f 100644
--- a/src/main/resources/mapper/ViewStayTimeMapper.xml
+++ b/src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -52,6 +52,7 @@
 			SELECT
 			GETDATE() AS today
 			, CONVERT(decimal, DATEDIFF(second,asr_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time
+	        , manu_date manuDate,man_length manLength
 			, asr_loc_detl.*
 			FROM asr_loc_detl
 			INNER JOIN asr_loc_mast ON asr_loc_detl.loc_no = asr_loc_mast.loc_no
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/ViewWorkInMapper.xml
index 0f5d0cd..44fa72a 100644
--- a/src/main/resources/mapper/ViewWorkInMapper.xml
+++ b/src/main/resources/mapper/ViewWorkInMapper.xml
@@ -94,7 +94,7 @@
 		ROW_NUMBER() OVER(Order by t.io_time desc) as row
 		, *
 		from (
-			select *
+			select manu_date manuDate,man_length manLength,*
 			from asr_wrkin_view
 			where 1=1
 			<include refid="viewWorkInConditionSql"></include>
@@ -132,7 +132,7 @@
 		ROW_NUMBER() OVER(Order by t.io_time desc) as row
 		, *
 		from (
-			select *
+			select manu_date manuDate,man_length manLength,*
 			from asr_wrkout_view
 			where 1=1
 			<include refid="viewWorkInConditionSql"></include>
diff --git a/src/main/webapp/static/js/basCrnError/basCrnError.js b/src/main/webapp/static/js/basCrnError/basCrnError.js
index 5b7d565..968dfe8 100644
--- a/src/main/webapp/static/js/basCrnError/basCrnError.js
+++ b/src/main/webapp/static/js/basCrnError/basCrnError.js
@@ -1,11 +1,11 @@
 var pageCurr;
-layui.use(['table','laydate', 'form'], function(){
+layui.use(['table','laydate', 'form','upload','layer'], function(){
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
     var layDate = layui.laydate;
     var form = layui.form;
-
+    var upload = layui.upload;
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#basCrnError',
@@ -60,7 +60,26 @@
             });
         }
     });
-
+    upload.render({
+        elem: '#uploadExcel', // 缁戝畾鍏冪礌
+        url: baseUrl+'/importCrnErr', // 涓婁紶鎺ュ彛锛屾浛鎹负浣犵殑鍚庣鎺ュ彛
+        headers:{'token': localStorage.getItem('token')},
+        accept: 'file', // 鍏佽涓婁紶鐨勬枃浠剁被鍨�
+        exts: 'xls|xlsx', // 鍏佽涓婁紶鐨勬枃浠跺悗缂�
+        done: function(res){
+            // 涓婁紶瀹屾瘯鍥炶皟
+            if(res.code === 200){
+                layer.msg(res.msg);
+                console.log('鏂囦欢鏁版嵁:', res.data);
+            } else {
+                layer.msg(res.msg || '涓婁紶澶辫触');
+            }
+        },
+        error: function(){
+            // 璇锋眰寮傚父鍥炶皟
+            layer.msg('涓婁紶澶辫触锛岃閲嶈瘯');
+        }
+    });
     // 鐩戝惉鎺掑簭浜嬩欢
     table.on('sort(basCrnError)', function (obj) {
         var searchData = {};
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 29817cd..3d4bb5d 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -222,13 +222,12 @@
 ]
 
 var detlCols = [
-    {field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿锛堝搧鍙凤級', sort:true}
-    ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О锛堝搧鍚嶏級', sort:true}
+    {field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true}
+    ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true}
     ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
-    ,{field: 'batch', align: 'center',title: '璐у搧鐗瑰緛', sort:true, hide: true}
+    ,{field: 'batch', align: 'center',title: '鎵规', sort:true}
     ,{field: 'anfme', align: 'center',title: '鏁伴噺', hide: false}
     ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', hide: false}
-
     ,{field: 'specs', align: 'center',title: '瑙勬牸', hide: true}
     ,{field: 'model', align: 'center',title: '妗跺瀷', hide: false}
     ,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
@@ -240,12 +239,12 @@
     ,{field: 'barcode', align: 'center',title: '鏉$爜', hide: true}
     ,{field: 'origin', align: 'center',title: '浜у湴', hide: true}
     ,{field: 'manu', align: 'center',title: '鍘傚', hide: true}
-    ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡', hide: true}
+    ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡'}
     ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�', hide: true}
     ,{field: 'safeQty', align: 'center',title: '瀹夊叏搴撳瓨閲�', hide: true}
-    ,{field: 'weight', align: 'center',title: '鍑�閲�', hide: true}
-    ,{field: 'manLength', align: 'center',title: '姣涢噸', hide: true}
-    ,{field: 'volume', align: 'center',title: '缃愯閲�', hide: false}
+    ,{field: 'weight', align: 'center',title: '鍑�閲�'}
+    ,{field: 'manLength', align: 'center',title: '姣涢噸'}
+    ,{field: 'volume', align: 'center',title: '缃愯閲�'}
     ,{field: 'threeCode', align: 'center',title: '绠卞瓙灏哄', hide: true}
     ,{field: 'supp', align: 'center',title: '渚涘簲鍟�', hide: true}
     ,{field: 'suppCode', align: 'center',title: '渚涘簲鍟嗙紪鐮�', hide: true}
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index 03d3057..af4d032 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -32,8 +32,11 @@
             ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
             ,{field: 'barcode', align: 'center',title: '鏉$爜'}
             // ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
+            ,{field: 'rgvNo', align: 'center',title: 'RGV', hide: true}
             ,{field: 'pdcType', align: 'center',title: '绌烘《绫诲瀷', hide: true}
             ,{field: 'ctnType', align: 'center',title: '灏炬墭', hide: true}
+            ,{field: 'whsType', align: 'center',title: '鍏ョ綈瑁呯嚎', hide: true}
+            ,{field: 'manuType', align: 'center',title: '浜哄伐鎿嶄綔', hide: true}
             // ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}
             // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
             //         var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
diff --git a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
index 095e7ae..775e33d 100644
--- a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -33,8 +33,11 @@
             ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
             ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
             ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+            ,{field: 'rgvNo', align: 'center',title: 'RGV', hide: true}
             ,{field: 'pdcType', align: 'center',title: '绌烘《绫诲瀷', hide: true}
             ,{field: 'ctnType', align: 'center',title: '灏炬墭', hide: true}
+            ,{field: 'whsType', align: 'center',title: '鍏ョ綈瑁呯嚎', hide: true}
+            ,{field: 'manuType', align: 'center',title: '浜哄伐鎿嶄綔', hide: true}
             // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
             //         var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
             //         if(row.picking === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/views/basCrnError/basCrnError.html b/src/main/webapp/views/basCrnError/basCrnError.html
index 4819cd8..d715496 100644
--- a/src/main/webapp/views/basCrnError/basCrnError.html
+++ b/src/main/webapp/views/basCrnError/basCrnError.html
@@ -35,6 +35,7 @@
     <div class="layui-btn-container">
         <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
         <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+        <button id="uploadExcel" class="layui-btn layui-btn-primary layui-btn-sm" >瀵煎叆</button>
         <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
     </div>
 </script>
diff --git a/src/main/webapp/views/report/viewWorkIn.html b/src/main/webapp/views/report/viewWorkIn.html
index 0636317..cc850d6 100644
--- a/src/main/webapp/views/report/viewWorkIn.html
+++ b/src/main/webapp/views/report/viewWorkIn.html
@@ -26,14 +26,14 @@
     </div>
     <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">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">-->
+<!--        </div>-->
+<!--    </div>-->
     <div class="layui-inline">
         <div class="layui-input-inline">
             <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
@@ -41,14 +41,14 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+            <input class="layui-input" type="text" name="batch" placeholder="鎵规" autocomplete="off">
         </div>
     </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="anfme" placeholder="鏁伴噺" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="anfme" 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="query_date" type="text" placeholder="鍏ュ簱璧峰鏃堕棿 - 鍏ュ簱缁堟鏃堕棿" autocomplete="off" style="width: 300px">
diff --git a/src/main/webapp/views/report/viewWorkOut.html b/src/main/webapp/views/report/viewWorkOut.html
index 7e8a106..12812db 100644
--- a/src/main/webapp/views/report/viewWorkOut.html
+++ b/src/main/webapp/views/report/viewWorkOut.html
@@ -26,14 +26,14 @@
     </div>
     <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">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">-->
+<!--        </div>-->
+<!--    </div>-->
     <div class="layui-inline">
         <div class="layui-input-inline">
             <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
@@ -41,14 +41,14 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+            <input class="layui-input" type="text" name="batch" placeholder="鎵规" autocomplete="off">
         </div>
     </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="anfme" placeholder="鏁伴噺" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="anfme" 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="query_date" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
diff --git a/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html b/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
index d40678c..5777d10 100644
--- a/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
+++ b/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
@@ -26,19 +26,19 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="order_no" placeholder="璁㈠崟缂栧彿" autocomplete="off">
+            <input class="layui-input" type="text" name="order_no" placeholder="璁㈠崟鍙�" autocomplete="off">
         </div>
     </div>
     <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">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">-->
+<!--        </div>-->
+<!--    </div>-->
     <div class="layui-inline">
         <div class="layui-input-inline">
             <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
@@ -46,14 +46,14 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+            <input class="layui-input" type="text" name="batch" placeholder="鎵规" autocomplete="off">
         </div>
     </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="anfme" placeholder="鏁伴噺" autocomplete="off">
-        </div>
-    </div>
+<!--    <div class="layui-inline">-->
+<!--        <div class="layui-input-inline">-->
+<!--            <input class="layui-input" type="text" name="anfme" placeholder="鏁伴噺" autocomplete="off">-->
+<!--        </div>-->
+<!--    </div>-->
     <!-- 寰呮坊鍔� -->
     <div id="data-search-btn" class="layui-btn-container layui-form-item">
         <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>

--
Gitblit v1.9.1