From 0c18aa04ba60dedb5f57128936aceb10464e1da2 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 25 十月 2024 16:08:47 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/LocMastController.java | 15 +
src/main/java/com/zy/asrs/controller/LocDetlController.java | 27 ++
src/main/webapp/views/crn/crnLocDetlQuery.html | 208 +++++++++++++++++
src/main/java/com/zy/asrs/service/BasDevpService.java | 7
src/main/java/com/zy/asrs/mapper/BasDevpMapper.java | 6
src/main/webapp/views/crn/crnEmptyOut.html | 146 ++++++++++++
src/main/java/com/zy/asrs/controller/WorkController.java | 39 +++
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java | 30 ++
src/main/resources/mapper/BasDevpMapper.xml | 34 ++
src/main/webapp/static/js/crn/crnEmptyOut.js | 189 +++++++++++++++
src/main/webapp/static/js/crn/crnOut.js | 4
11 files changed, 703 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 6eba1f6..7d72cb0 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -90,6 +90,33 @@
return R.ok(stockOut);
}
+ @RequestMapping(value = "/stock/out/crn/list/auth")
+ @ManagerAuth
+ public R crnStockOutList(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam Map<String, Object> param){
+ if (!Cools.isEmpty(param.get("modi_time"))){
+ String val = String.valueOf(param.get("modi_time"));
+ if (val.contains(RANGE_TIME_LINK)) {
+ String[] dates = val.split(RANGE_TIME_LINK);
+ param.put("startTime", DateUtils.convert(dates[0]));
+ param.put("endTime", DateUtils.convert(dates[1]));
+ param.remove("modi_time");
+ }
+ }
+ param.remove("curr");
+ param.remove("limit");
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ wrapper.addFilter("LEFT(loc_no,2)>=1 and LEFT(loc_no,2)<=16");
+// Page<LocDetl> stockOut = locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class));
+ Page<LocDetl> locDetlPage = locDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ if (locDetlPage.getRecords().size()==0){
+ locDetlPage = locDetlService.selectPage(new Page<>(1, limit), wrapper);
+ }
+ return R.ok(locDetlPage);
+ }
+
@RequestMapping(value = "/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂
@ManagerAuth
public R list(@RequestParam(defaultValue = "1")Integer curr,
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 2eae903..1b3ad84 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -71,6 +71,21 @@
return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
}
+ @RequestMapping(value = "/locMast/crn/list/auth")
+ @ManagerAuth
+ public R crnList(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ wrapper.in("crn_no", 1,2);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
boolean sign = false;
for (Map.Entry<String, Object> entry : map.entrySet()){
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 2425145..1050097 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -4,6 +4,7 @@
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
+import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -72,6 +73,26 @@
}
return R.ok().add(result);
}
+ @RequestMapping("/crn/available/take/site")
+ @ManagerAuth()
+ public R crnAvailableTakeSite(){
+ List<Map<String, Object>> result = new ArrayList<>();
+ List<Integer> outSite = basDevpService.getCrnAvailableOutSite(101);
+ for (Integer siteId : outSite) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("siteId", siteId);
+ map.put("desc", siteId + "锛堝叏鏉垮嚭搴撳彛锛�");
+ result.add(map);
+ }
+ List<Integer> pickOutSite = basDevpService.getCrnAvailableOutSite(103);
+ for (Integer siteId : pickOutSite) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("siteId", siteId);
+ map.put("desc", siteId + "锛堟嫞鏂欏嚭搴撳彛锛�");
+ result.add(map);
+ }
+ return R.ok().add(result);
+ }
@RequestMapping("/available/take/check/site")
@ManagerAuth()
@@ -101,6 +122,24 @@
return R.ok().add(basDevpService.getAvailableOutSite(107));
}
+ @RequestMapping("/available/crn/empty/take/site")
+ @ManagerAuth()
+ public R availablecrnEmptyTakeSite(){
+ return R.ok().add(basDevpService.getCrnAvailableEmptyOutSite());
+ }
+
+ @RequestMapping("/available/shuttle/empty/take/site")
+ @ManagerAuth()
+ public R availableshuttleEmptyTakeSite(){
+ return R.ok().add(basDevpService.getShuttleAvailableEmptyOutSite());
+ }
+
+ @RequestMapping("/available/ctu/empty/take/site")
+ @ManagerAuth()
+ public R availablectuEmptyTakeSite(){
+ return R.ok().add(basDevpService.getCtuAvailableEmptyOutSite());
+ }
+
@RequestMapping("/available/empty/take/site")
@ManagerAuth()
public R availableEmptyTakeSite(){
diff --git a/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
index 668d2ca..eac2037 100644
--- a/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
@@ -15,4 +15,10 @@
List<Integer> getAvailableInSite(@Param("typeNo") Integer typeNo);
List<Integer> getAvailableOutSite(@Param("typeNo") Integer typeNo);
+
+ List<Integer> getCrnAvailableOutSite(@Param("typeNo") Integer typeNo);
+
+ List<Integer> getShuttleAvailableOutSite(@Param("typeNo") Integer typeNo);
+
+ List<Integer> getCtuAvailableOutSite(@Param("typeNo") Integer typeNo);
}
diff --git a/src/main/java/com/zy/asrs/service/BasDevpService.java b/src/main/java/com/zy/asrs/service/BasDevpService.java
index 00b3589..0af1070 100644
--- a/src/main/java/com/zy/asrs/service/BasDevpService.java
+++ b/src/main/java/com/zy/asrs/service/BasDevpService.java
@@ -25,12 +25,19 @@
*/
List<Integer> getAvailableOutSite(Integer typeNo);
+ List<Integer> getCrnAvailableOutSite(Integer typeNo);
+ List<Integer> getShuttleAvailableOutSite(Integer typeNo);
+ List<Integer> getCtuAvailableOutSite(Integer typeNo);
+
/**
* 绌烘澘鍑哄簱绔�
* @return
*/
List<Integer> getAvailableEmptyOutSite();
+ List<Integer> getCrnAvailableEmptyOutSite();
+ List<Integer> getShuttleAvailableEmptyOutSite();
+ List<Integer> getCtuAvailableEmptyOutSite();
/**
* 鐩爣绔欑偣鐘舵�佹娴�
* @param devpNo
diff --git a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
index e376c5d..821c707 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -33,11 +33,41 @@
}
@Override
+ public List<Integer> getCrnAvailableOutSite(Integer typeNo) {
+ return this.baseMapper.getCrnAvailableOutSite(typeNo);
+ }
+
+ @Override
+ public List<Integer> getShuttleAvailableOutSite(Integer typeNo) {
+ return this.baseMapper.getShuttleAvailableOutSite(typeNo);
+ }
+
+ @Override
+ public List<Integer> getCtuAvailableOutSite(Integer typeNo) {
+ return this.baseMapper.getCtuAvailableOutSite(typeNo);
+ }
+
+ @Override
public List<Integer> getAvailableEmptyOutSite() {
return this.baseMapper.getAvailableOutSite(110);
}
@Override
+ public List<Integer> getCrnAvailableEmptyOutSite() {
+ return this.baseMapper.getCrnAvailableOutSite(110);
+ }
+
+ @Override
+ public List<Integer> getShuttleAvailableEmptyOutSite() {
+ return this.baseMapper.getShuttleAvailableOutSite(110);
+ }
+
+ @Override
+ public List<Integer> getCtuAvailableEmptyOutSite() {
+ return this.baseMapper.getCtuAvailableOutSite(110);
+ }
+
+ @Override
public BasDevp checkSiteStatus(Integer devpNo) {
return checkSiteStatus(devpNo, false);
}
diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml
index 4f6e131..79919b4 100644
--- a/src/main/resources/mapper/BasDevpMapper.xml
+++ b/src/main/resources/mapper/BasDevpMapper.xml
@@ -66,4 +66,38 @@
group by abd.dev_no
</select>
+ <select id="getCrnAvailableOutSite" resultType="java.lang.Integer">
+ select
+ abd.dev_no
+ from asr_bas_devp abd
+ left join asr_sta_desc asd on abd.dev_no = asd.stn_no
+ where 1=1
+ and asd.type_no = #{typeNo}
+ and asd.crn_no in (1,2)
+ -- and abd.out_enable = 'Y'
+ group by abd.dev_no
+ </select>
+ <select id="getShuttleAvailableOutSite" resultType="java.lang.Integer">
+ select
+ abd.dev_no
+ from asr_bas_devp abd
+ left join asr_sta_desc asd on abd.dev_no = asd.stn_no
+ where 1=1
+ and asd.type_no = #{typeNo}
+ and asd.crn_no in (7)
+ -- and abd.out_enable = 'Y'
+ group by abd.dev_no
+ </select>
+ <select id="getCtuAvailableOutSite" resultType="java.lang.Integer">
+ select
+ abd.dev_no
+ from asr_bas_devp abd
+ left join asr_sta_desc asd on abd.dev_no = asd.stn_no
+ where 1=1
+ and asd.type_no = #{typeNo}
+ and asd.crn_no in (8,9)
+ -- and abd.out_enable = 'Y'
+ group by abd.dev_no
+ </select>
+
</mapper>
diff --git a/src/main/webapp/static/js/crn/crnEmptyOut.js b/src/main/webapp/static/js/crn/crnEmptyOut.js
new file mode 100644
index 0000000..f7d51dd
--- /dev/null
+++ b/src/main/webapp/static/js/crn/crnEmptyOut.js
@@ -0,0 +1,189 @@
+var pageCurr;
+
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function() {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鑾峰彇鍑哄簱鍙�
+ function getOutBound(){
+ $.ajax({
+ url: baseUrl+"/available/crn/empty/take/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ var tpl = $("#takeSiteSelectTemplate").html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $('#staNoSelect').append(html);
+ form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locMast',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/locMast/crn/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ where: {loc_sts: "D"},
+ even: true,
+ toolbar: '#toolbar',
+ defaultToolbar: ['filter'],
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�',sort:true}
+ ,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��',width:200}
+ // ,{field: 'whsType$', align: 'center',title: '搴撲綅绫诲瀷'}
+ ,{field: 'crnNo', align: 'center',title: '鍫嗗灈鏈哄彿'}
+ ,{field: 'row1', align: 'center',title: '鎺�'}
+ ,{field: 'bay1', align: 'center',title: '鍒�'}
+ ,{field: 'lev1', align: 'center',title: '灞�'}
+ ,{field: 'fullPlt', align: 'center',title: '婊℃澘', templet:function(row){
+ var html = "<input value='fullPlt' type='checkbox' disabled=鈥榙isabled鈥� lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
+ if(row.fullPlt === 'Y'){html += " checked ";}
+ html += ">";
+ return html;
+ },width:80}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',event: 'modiUser'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ getOutBound();
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(locMast)', function (obj) {
+ var data = table.checkStatus(obj.config.id).data;
+ switch (obj.event) {
+ case 'outbound':
+ var staNo = $("#staNoSelect").val();
+ if (staNo === "" || staNo === null){
+ layer.msg("璇烽�夋嫨鍑哄簱鍙�");
+ return;
+ }
+ var locNos = [];
+ data.forEach(function(elem) {
+ locNos.push(elem.locNo);
+ });
+ if (data.length === 0){
+ layer.msg('璇疯嚦灏戦�変腑涓�琛屾暟鎹�');
+ } else {
+ $.ajax({
+ url: baseUrl+"/empty/plate/out/start",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ outSite: staNo,
+ locNos: locNos
+ },
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ tableReload(); // 閲嶈浇琛ㄦ牸
+ getOutBound(); // 閲嶈浇鍑哄簱鍙�
+ layer.msg(res.msg);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ }
+ break;
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ $('#detlTable').css("display", 'none');
+ tableReload(false);
+ getOutBound();
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ $('#detlTable').css("display", 'none');
+ tableReload(false);
+ getOutBound();
+ });
+
+})
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
diff --git a/src/main/webapp/static/js/crn/crnOut.js b/src/main/webapp/static/js/crn/crnOut.js
index d9b2580..5ec75e8 100644
--- a/src/main/webapp/static/js/crn/crnOut.js
+++ b/src/main/webapp/static/js/crn/crnOut.js
@@ -116,7 +116,7 @@
// 鑾峰彇鍑哄簱鍙�
function getOutBound(){
$.ajax({
- url: baseUrl+"/available/take/site",
+ url: baseUrl+"/crn/available/take/site",
headers: {'token': localStorage.getItem('token')},
method: 'POST',
async: false,
@@ -146,7 +146,7 @@
maxmin: false,
area: ['90%', '85%'],
shadeClose: true,
- content: 'locDetlQuery.html',
+ content: 'crnLocDetlQuery.html',
success: function(layero, index){
layer.close(loadIndex);
}
diff --git a/src/main/webapp/views/crn/crnEmptyOut.html b/src/main/webapp/views/crn/crnEmptyOut.html
new file mode 100644
index 0000000..f75a748
--- /dev/null
+++ b/src/main/webapp/views/crn/crnEmptyOut.html
@@ -0,0 +1,146 @@
+<!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>
+ html {
+ height: 100%;
+ padding: 10px;
+ background-color: #f1f1f1;
+ box-sizing: border-box;
+ }
+ body {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 3px rgba(0,0,0,.3);
+ padding-bottom: 20px;
+ }
+ #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;
+ }
+
+ #staNoSpan {
+ text-align: center;
+ display: inline-block;
+ width: 100px;
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-form-select {
+ display: inline-block;
+ width: 150px;
+ height: 30px;
+ }
+ .layui-btn-container .layui-form-select.layui-form-selected {
+ display: inline-block;
+ width: 150px;
+ }
+ .layui-btn-container .layui-select-title input {
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-anim.layui-anim-upbit dd {
+ font-size: 13px;
+ }
+
+ #btn-outbound {
+ margin-left: 60px;
+ display: none;
+ }
+
+ </style>
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<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="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="row1" placeholder="鎺�" lay-verify="number" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="bay1" placeholder="鍒�" lay-verify="number" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="lev1" placeholder="灞�" lay-verify="number" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="crn_no" placeholder="鍫嗗灈鏈哄彿" lay-verify="number" autocomplete="off">
+ </div>
+ </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>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-form">
+ <div class="layui-btn-container">
+ <!-- 1.閫夋嫨鍑哄簱鍙� -->
+ <span id="staNoSpan">绌烘澘鍑哄簱鍙o細</span>
+ <select id="staNoSelect" lay-verify="required">
+ <option value="">璇烽�夋嫨绔欑偣</option>
+ </select>
+ <!-- 2.鍚姩鍑哄簱 -->
+ <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
+ </div>
+ </div>
+</script>
+
+<!-- 绌烘澘搴撲綅琛� -->
+<table class="layui-hide" id="locMast" lay-filter="locMast"></table>
+
+<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>
+<script type="text/javascript" src="../../static/js/crn/crnEmptyOut.js" charset="utf-8"></script>
+
+<!--鍚姩鍑哄簱-->
+<div id="outboundDiv">
+
+</div>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{this}}">{{this}}</option>
+ {{/each}}
+</script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/crn/crnLocDetlQuery.html b/src/main/webapp/views/crn/crnLocDetlQuery.html
new file mode 100644
index 0000000..930ea38
--- /dev/null
+++ b/src/main/webapp/views/crn/crnLocDetlQuery.html
@@ -0,0 +1,208 @@
+<!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 {
+ }
+ .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;
+ }
+ </style>
+</head>
+<body>
+<div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鎻愬彇搴撳瓨鍟嗗搧</span>
+</div>
+<!-- 鎼滅储鏍� -->
+<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
+ <legend>鎼滅储鏍�</legend>
+ <!-- 鎼滅储鏍� -->
+ <div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍫嗗灈鏈哄彿" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_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">
+ </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="maktx" 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="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </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>
+ </div>
+ </div>
+</fieldset>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">鎻愬彇</button>
+ </div>
+</script>
+
+<div class="layui-form">
+ <table class="layui-hide" id="stockOut" lay-filter="stockOut"></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>
+
+ function getCol() {
+ var cols = [
+ {type: 'checkbox', merge: ['locNo']}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�', merge: true, style: 'font-weight: bold'}
+ // ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ ];
+ cols.push.apply(cols, detlCols);
+ cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide: true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'})
+ return cols;
+ }
+
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).use(['table','laydate', 'form', 'admin', 'tableMerge'], function() {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+ var tableMerge = layui.tableMerge;
+
+ // 鏁版嵁娓叉煋
+ locDetlTableIns = table.render({
+ elem: '#stockOut',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/stock/out/crn/list/auth',
+ page: true,
+ limits: [16, 30, 50, 100, 200, 500],
+ limit: 16,
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ tableMerge.render(this);
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(stockOut)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ var data = checkStatus.data;
+ switch(obj.event) {
+ case 'confirm':
+ if (data.length === 0){
+ layer.msg("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ parent.addTableData(data);
+ break;
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ tableReload();
+ });
+
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ })
+
+ function tableReload() {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ locDetlTableIns.reload({
+ where: searchData,
+ });
+ }
+</script>
+</html>
+
--
Gitblit v1.9.1