From e75362cc5d11d900068a26232eb97ebd30203d48 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期日, 21 七月 2024 10:00:15 +0800
Subject: [PATCH] Merge branch 'master' into csc
---
HTML/js/public.js | 6
HTML/views/HouseWithinSetting/images/1920x400.jpg | 0
HTML/layuiadmin/dragMove/dragMove.js | 261 ++++++++++
HTML/views/HouseWithinSetting/StockCheck.html | 37 +
Wms/WMS.BLL/Logic/AllotSku.cs | 77 ++
HTML/views/HouseWithinSetting/ViewPicture.html | 104 ++++
HTML/views/HouseWithinSetting/images/1920x1080.jpg | 0
Wms/WMS.BLL/BllSoServer/WaveMageServer.cs | 2
HTML/views/HouseWithinSetting/images/400x400.jpg | 0
HTML/views/SystemSettings/PrintModule.html | 153 ++++++
HTML/views/HouseWithinSetting/images/400x900.jpg | 0
Wms/WMS.BLL/DataServer/StockServer.cs | 328 ++++++++++---
Wms/Model/ModelDto/DataDto/MateDataStockDto.cs | 12
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 4
HTML/layuiadmin/dragMove/dragMove.css | 20
HTML/views/StatisticalReport/InventoryStatistics.html | 398 ++--------------
Wms/Wms/Controllers/StatisticalController.cs | 23
Wms/WMS.IBLL/IDataServer/IStockServer.cs | 9
18 files changed, 975 insertions(+), 459 deletions(-)
diff --git a/HTML/js/public.js b/HTML/js/public.js
index 7438589..f209f46 100644
--- a/HTML/js/public.js
+++ b/HTML/js/public.js
@@ -203,9 +203,9 @@
var bodyHeight = $("#body").outerHeight();
var topHeight = $("#top").outerHeight();
var centerHeight = $("#center").outerHeight();
-// console.log(bodyHeight);
-// console.log(topHeight);
-// console.log(centerHeight);
+ console.log(bodyHeight);
+ console.log(topHeight);
+ console.log(centerHeight);
var hh = bodyHeight - topHeight-centerHeight - 26 ;//6鏄痓ody涓婂唴杈硅窛
return hh;
diff --git a/HTML/layuiadmin/dragMove/dragMove.css b/HTML/layuiadmin/dragMove/dragMove.css
new file mode 100644
index 0000000..e3fee1e
--- /dev/null
+++ b/HTML/layuiadmin/dragMove/dragMove.css
@@ -0,0 +1,20 @@
+/**
+ @ Name锛歭ayui.dragMove 鍥剧墖鏌ョ湅鍣�
+ @ Author锛欶QSong
+ @ License锛歁IT
+ */
+
+/* 鏍峰紡鍔犺浇瀹屾瘯鐨勬爣璇� */
+html #layuicss-dragMove{display: none; position: absolute; width: 1989px;}
+
+
+/* 缁勪欢鏍峰紡 */
+.dragMove-skin .layui-layer-content {overflow: hidden !important;}
+.layui-dragMove {position: relative; width: 100%; height: 100%; display: -webkit-flex; display: flex; flex-direction:column;}
+.layui-dragMove .dragMove-img {position: relative; width: 100%; height: 100%; overflow: hidden; -webkit-flex: 1; flex: 1; background-color:#eee;}
+.layui-dragMove .dragMove-img img {position: absolute; left: 0; top: 0; user-select:none; cursor: grab;}
+.layui-dragMove .dragMove-btn {width:100%; padding: 10px 0; text-align:center; -webkit-flex: none; flex: none;}
+.layui-dragMove .dragMove-btn .layui-btn {height: 28px; line-height: 28px;}
+.layui-icon-loading {position: absolute; left: 50%; top: 50%; display: block; width: 36px; height: 36px; font-size: 36px; line-height: 36px; }
+
+.transitioning {-webkit-transition: -webkit-transform .24s ease-out; transition: transform .24s ease-out;}
\ No newline at end of file
diff --git a/HTML/layuiadmin/dragMove/dragMove.js b/HTML/layuiadmin/dragMove/dragMove.js
new file mode 100644
index 0000000..1c5d2d4
--- /dev/null
+++ b/HTML/layuiadmin/dragMove/dragMove.js
@@ -0,0 +1,261 @@
+/**
+ @ Name锛歭ayui.dragMove 鍥剧墖鏌ョ湅鍣�
+ @ Author锛欶QSong
+ @ License锛歁IT
+ */
+
+layui.define('layer', function(exports){
+ var $ = layui.$
+ ,layer = layui.layer
+
+ //瀛楃甯搁噺
+ ,MOD_NAME = 'dragMove', ELEM = '.layui-dragMove'
+
+ //澶栭儴鎺ュ彛
+ ,dragMove = {
+ index: layui.dragMove ? (layui.dragMove.index + 10000) : 0
+
+ //璁剧疆鍏ㄥ眬椤�
+ ,set: function(options){
+ var that = this;
+ that.config = $.extend({}, that.config, options);
+ return that;
+ }
+
+ //浜嬩欢鐩戝惉
+ ,on: function(events, callback){
+ return layui.onevent.call(this, MOD_NAME, events, callback);
+ }
+ }
+
+ //鏋勯�犲櫒
+ ,Class = function(options){
+ var that = this;
+ that.index = ++dragMove.index;
+ that.config = $.extend({}, that.config, dragMove.config, options);
+ that.render();
+ };
+
+ //榛樿閰嶇疆
+ Class.prototype.config = {
+ layerArea: ["960px","720px"],
+ layerShade: 0.6,
+ layerMove: 0,
+ maxZoom: 1
+ };
+
+ //娓叉煋瑙嗗浘
+ Class.prototype.render = function(){
+ var that = this
+ ,options = that.config
+ ,dragMoveView = "<div class='layui-dragMove'>"
+ + "<div class='dragMove-img'>"
+ + "<span class='layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop'></span>"
+ + "</div>"
+ + "<div class='dragMove-btn'>"
+ + "<button type='button' class='layui-btn layui-btn-sm' data-method='default'>榛樿澶у皬</button>"
+ + "<button type='button' class='layui-btn layui-btn-sm' data-method='real'>瀹為檯澶у皬</button>"
+ + "<button type='button' class='layui-btn layui-btn-sm' data-method='zoomin'>鏀惧ぇ</button>"
+ + "<button type='button' class='layui-btn layui-btn-sm' data-method='zoomout'>缂╁皬</button>"
+ + "</div>"
+ + "</div>";
+
+ options.elem = $(options.elem);
+
+ options.elem.on("click","img",function(e){
+ let imgObj = $(this),
+ imgSrc = imgObj.attr("src"),
+ imgTitle = imgObj.attr("alt") || imgSrc.replace(/(.*\/)*([^.]+).*/ig,"$2");
+
+ layer.open({
+ type: 1,
+ resize: 0,
+ btn: 0,
+ skin: "dragMove-skin",
+ move: options.layerMove,
+ area: options.layerArea,
+ shade: options.layerShade,
+ title: imgTitle,
+ content: dragMoveView,
+ success: function(layero){
+ var imgbox = layero.find(".dragMove-img");
+ options.imgboxWidth = imgbox.innerWidth();
+ options.imgboxHeight = imgbox.innerHeight();
+
+ var nImg = new Image();
+ nImg.src = imgSrc;
+ if (nImg.complete) {
+ imgbox.empty().append(nImg);
+ that.init(nImg)
+ } else {
+ nImg.onload = function () {
+ imgbox.empty().append(nImg);
+ that.init(nImg)
+ }
+ }
+ }
+ });
+ });
+ }
+
+ //
+ Class.prototype.init = function(img){
+ var that = this
+ ,options = that.config;
+
+ let $img = $(img),
+ parent = $img.closest(".layui-dragMove"),
+ zoomData = {};
+
+ zoomData.img = img;
+ zoomData.imgWidth = img.width;
+ zoomData.imgHeight = img.height;
+
+ zoomData.zoomSize = Math.min(Math.min(options.imgboxWidth / zoomData.imgWidth, options.imgboxHeight / zoomData.imgHeight), 1);
+ zoomData.left = (options.imgboxWidth - zoomData.imgWidth * zoomData.zoomSize) / 2;
+ zoomData.top = (options.imgboxHeight - zoomData.imgHeight * zoomData.zoomSize) / 2;
+ zoomData.defaultZoom = zoomData.zoomSize;
+
+ that.zoomData = zoomData;
+ $img.css({ "transform-origin": "0 0", "transform": "matrix(" + zoomData.zoomSize + ",0,0," + zoomData.zoomSize + "," + zoomData.left + "," + zoomData.top + ")" });
+
+ $img.on("mousedown", function (e) {
+ e.preventDefault();
+ let currentX = e.clientX,
+ currentY = e.clientY;
+ $img.removeClass("transitioning").css({"cursor": "grabbing"});
+
+ $(document).on("mousemove", function (even) {
+ let moveX = even.clientX - currentX,
+ moveY = even.clientY - currentY;
+ $img.css({ "transform": "matrix(" + zoomData.zoomSize + ",0,0," + zoomData.zoomSize + "," + (zoomData.left + moveX) + "," + (zoomData.top + moveY) + ")" });
+ });
+ $(document).on("mouseup", function (even) {
+ var matrix = $img.css("transform").slice(7, -1).split(','),
+ center = that.getCenter(parseFloat(matrix[4]), parseFloat(matrix[5]), zoomData);
+
+ zoomData.left = center.left;
+ zoomData.top = center.top;
+
+ $img.addClass("transitioning").css({
+ "transform": "matrix(" + zoomData.zoomSize + ",0,0," + zoomData.zoomSize + "," + zoomData.left + "," + zoomData.top + ")",
+ "cursor": "grab"
+ });
+
+ $(document).off("mousemove");
+ $(document).off("mouseup");
+ });
+ });
+
+ parent.on("click", "button", function (e) {
+ e.preventDefault();
+ var method = $(this).attr("data-method"),
+ scaleSize = 0;
+ switch (method) {
+ case "default":
+ scaleSize = zoomData.defaultZoom;
+ break;
+ case "real":
+ scaleSize = 1;
+ break;
+ case "zoomin":
+ scaleSize = zoomData.zoomSize * 1.2;
+ scaleSize = scaleSize > options.maxZoom ? options.maxZoom : scaleSize;
+ break;
+ case "zoomout":
+ scaleSize = zoomData.zoomSize / 1.2;
+ scaleSize = scaleSize < zoomData.defaultZoom ? zoomData.defaultZoom : scaleSize;
+ break;
+
+ default:
+ break;
+ }
+ scaleSize && that.scaleZoom(scaleSize);
+ });
+
+ //榧犳爣婊氳疆
+ parent.on("mousewheel", function (e) {
+ e.preventDefault();
+ let scaleSize = 0;
+ if (e.originalEvent.wheelDelta > 0) {
+ scaleSize = zoomData.zoomSize * 1.2;
+ } else {
+ scaleSize = zoomData.zoomSize / 1.2;
+ }
+ scaleSize = Math.min(Math.max(scaleSize, zoomData.defaultZoom),options.maxZoom);
+ that.scaleZoom(scaleSize);
+ });
+
+ $img.on("transitionend webkitTransitionend", function () {
+ $(this).removeClass("transitioning")
+ });
+
+ };
+
+ Class.prototype.scaleZoom = function(index){
+ var that = this
+ ,options = that.config
+ ,zoomData = that.zoomData;
+
+ zoomData.left = zoomData.left - zoomData.imgWidth * (index - zoomData.zoomSize) / 2;
+ zoomData.top = zoomData.top - zoomData.imgHeight * (index - zoomData.zoomSize) / 2;
+ zoomData.zoomSize = index;
+
+ var center = that.getCenter(zoomData.left,zoomData.top,zoomData);
+ zoomData.left = center.left;
+ zoomData.top = center.top;
+
+ $(zoomData.img).addClass("transitioning").css({
+ "transform":"matrix("+ zoomData.zoomSize +",0,0," + zoomData.zoomSize +","+zoomData.left+","+zoomData.top+")"
+ });
+ };
+
+ Class.prototype.getCenter = function(x,y,zoomData){
+ var that = this
+ ,options = that.config
+ ,zoomData = that.zoomData;
+
+ let newleft,newtop;
+ newleft = (function(){
+ var left;
+ if(zoomData.imgWidth * zoomData.zoomSize < options.imgboxWidth){
+ left = (options.imgboxWidth - zoomData.imgWidth * zoomData.zoomSize) / 2;
+ }else{
+ left = Math.max(Math.min(0,x), options.imgboxWidth - zoomData.imgWidth * zoomData.zoomSize);
+ }
+ return left;
+ })();
+ newtop = (function(){
+ var top;
+ if(zoomData.imgHeight * zoomData.zoomSize < options.imgboxHeight){
+ top = (options.imgboxHeight - zoomData.imgHeight * zoomData.zoomSize) / 2;
+ }else{
+ top = Math.max(Math.min(0, y), options.imgboxHeight - zoomData.imgHeight * zoomData.zoomSize);
+ }
+ return top;
+ })();
+ return {left:newleft,top:newtop}
+ };
+
+ Class.prototype.decimal = function(num){
+ var result = parseFloat(num);
+ if (isNaN(result)) {
+ return false;
+ }
+ result = Math.round(num * 100) / 100;
+ return result;
+ };
+
+ //鏍稿績鍏ュ彛
+ dragMove.render = function(options){
+ var ins = new Class(options);
+ return ins;
+ };
+
+ //鍔犺浇缁勪欢鎵�闇�鏍峰紡
+ layui.link(layui.cache.base + 'dragMove/dragMove.css', function(){
+ //鏍峰紡鍔犺浇瀹屾瘯鐨勫洖璋�
+ }, MOD_NAME);
+
+ exports(MOD_NAME, dragMove);
+});
\ No newline at end of file
diff --git a/HTML/views/HouseWithinSetting/StockCheck.html b/HTML/views/HouseWithinSetting/StockCheck.html
index 7adf894..e6dfbd0 100644
--- a/HTML/views/HouseWithinSetting/StockCheck.html
+++ b/HTML/views/HouseWithinSetting/StockCheck.html
@@ -188,7 +188,20 @@
}}
</script>
-
+ <script type="text/html" id="table-content-list2">
+ {{#
+ var html = '';
+
+ if(d.Status >= 1){
+ html += `<a class="layui-btn layui-btn-danger layui-btn-xs delClass" lay-event="viewPicture">
+ <i class="layui-icon layui-icon-ok"></i>鏌ョ湅鍥剧墖
+ </a>`;
+ }
+ return html;
+
+ }}
+
+ </script>
<script type="text/html" id="toolbarDemo">
<button class="layui-btn layuiadmin-btn-list layui-btn-sm addClass" lay-event="add">
@@ -401,6 +414,7 @@
{ field: 'CreateTime', title: '鍒涘缓鏃堕棿', align: 'center', width: 160, templet: '#CreateTimeButton', },
{ field: 'UpdateUserName', title: '淇敼浜�', align: 'center', width: 120, hide: true },
{ field: 'UpdateTime', title: '淇敼鏃堕棿', align: 'center', width: 160, hide: true, templet: '#UpdateTimeButton', },
+ { field: 'caozuo', title: '鎿嶄綔', fixed: 'right', align: 'center', toolbar: '#table-content-list2', width: 100 }
]];
var TotalColsSysArrm = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArrm)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
refreshTable();
@@ -783,7 +797,7 @@
}
});
} else if (obj.event === 'vision') {
-
+
layer.confirm('纭畾瑙嗚鐩樼偣', function () {
if (isChongFu == true) {
isChongFu = false;
@@ -860,7 +874,24 @@
});
}
});
-
+ table.on('tool(LAY-app-content-list2)', function (obj) {
+ var data = obj.data;
+ if (obj.event === 'viewPicture') {//鏌ョ湅鍥剧墖
+ debugger;
+ layer.open({
+ type: 2,
+ title: '鏌ョ湅鍥剧墖',
+ content: 'ViewPicture.html',
+ maxmin: true,
+ area: ['100%', '100%'],
+ success: function (layero, index) {
+ var body = layer.getChildFrame('body', index);
+ body.find('#CrNo').val(data.CrNo);
+ body.find('#PalletNo').val(data.PalletNo);
+ }
+ });
+ }
+ });
var $ = layui.$,
active = {
customCols: function () {
diff --git a/HTML/views/HouseWithinSetting/ViewPicture.html b/HTML/views/HouseWithinSetting/ViewPicture.html
new file mode 100644
index 0000000..c188431
--- /dev/null
+++ b/HTML/views/HouseWithinSetting/ViewPicture.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+
+<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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+</head>
+
+<body>
+ <input type="hidden" id="CrNo" name="CrNo">
+ <input type="hidden" id="PalletNo" name="PalletNo">
+ <div class="layui-bg-gray" style="padding: 16px;" id="imgDragmove">
+ <div class="layui-row layui-col-space15">
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100101绠�</div>
+ <div class="layui-card-body">
+ <img src="images/1920x1080.jpg" height="200" width="100%" alt="0100101绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100102绠�</div>
+ <div class="layui-card-body">
+ <img src="images/1920x400.jpg" height="200" width="100%" alt="0100102绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100103绠�</div>
+ <div class="layui-card-body">
+ <img src="images/400x400.jpg" height="200" width="100%" alt="0100103绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100104绠�</div>
+ <div class="layui-card-body">
+ <img src="images/400x400.jpg" height="200" width="100%" alt="0100104绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100105绠�</div>
+ <div class="layui-card-body">
+ <img src="images/400x400.jpg" height="200" width="100%" alt="0100105绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100106绠�</div>
+ <div class="layui-card-body">
+ <img src="images/400x400.jpg" height="200" width="100%" alt="0100106绠�">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2">
+ <div class="layui-card">
+ <div class="layui-card-header">0100107绠�</div>
+ <div class="layui-card-body">
+ <img src="images/400x400.jpg" height="200" width="100%" alt="0100107绠�">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <script src="../../layuiadmin/layui/layui.js"></script>
+ <script src="../../js/jquery-3.5.1.min.js"></script>
+ <script src="../../js/jquery.cookie.js"></script>
+ <script src="../../js/public.js"></script>
+ <script>
+ layui.config({
+ base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+ }).extend({
+ index: 'lib/index', //涓诲叆鍙fā鍧�
+ dragMove: 'dragMove/dragMove'
+ }).use(['dragMove'], function () {
+ var $ = layui.$;
+ var dragMove = layui.dragMove;
+ //鎵ц绀轰緥
+ dragMove.render({
+ elem: "#imgDragmove", //鎸囧悜鍥剧墖鐨勭埗瀹瑰櫒
+ layerArea: ["960px", "720px"], //寮圭獥鐨勫楂橈紝鍚宭ayer鐨刟rea锛岄粯璁"960px","720px"]
+ layerShade: 0.6, //閬僵鐨勯�忔槑搴︼紝鍚宭ayer鐨剆hade锛岄粯璁�0.6
+ layerMove: false, //瑙﹀彂鎷栧姩鐨勫厓绱狅紝鍚宭ayer鐨刴ove锛岃繖閲岄粯璁ょ姝紝鍙缃负'.layui-layer-title'
+ maxZoom: 1 //鍥剧墖鑳芥斁澶х殑鏈�澶у�嶆暟锛岄粯璁�1鍊�
+ });
+ })
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/HTML/views/HouseWithinSetting/images/1920x1080.jpg b/HTML/views/HouseWithinSetting/images/1920x1080.jpg
new file mode 100644
index 0000000..6d249ba
--- /dev/null
+++ b/HTML/views/HouseWithinSetting/images/1920x1080.jpg
Binary files differ
diff --git a/HTML/views/HouseWithinSetting/images/1920x400.jpg b/HTML/views/HouseWithinSetting/images/1920x400.jpg
new file mode 100644
index 0000000..5644449
--- /dev/null
+++ b/HTML/views/HouseWithinSetting/images/1920x400.jpg
Binary files differ
diff --git a/HTML/views/HouseWithinSetting/images/400x400.jpg b/HTML/views/HouseWithinSetting/images/400x400.jpg
new file mode 100644
index 0000000..e8d4564
--- /dev/null
+++ b/HTML/views/HouseWithinSetting/images/400x400.jpg
Binary files differ
diff --git a/HTML/views/HouseWithinSetting/images/400x900.jpg b/HTML/views/HouseWithinSetting/images/400x900.jpg
new file mode 100644
index 0000000..24dc8dc
--- /dev/null
+++ b/HTML/views/HouseWithinSetting/images/400x900.jpg
Binary files differ
diff --git a/HTML/views/StatisticalReport/InventoryStatistics.html b/HTML/views/StatisticalReport/InventoryStatistics.html
index dea2a48..23cecbc 100644
--- a/HTML/views/StatisticalReport/InventoryStatistics.html
+++ b/HTML/views/StatisticalReport/InventoryStatistics.html
@@ -36,6 +36,18 @@
<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top">
<div class="layui-form-item" style="margin-bottom: 0px;">
+ <div class="layui-inline ">
+ <label class="layui-form-label" style="width: 60px;">鏌ヨ绫诲瀷</label>
+ <div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
+ <select name="SelectType" id="SelectType" lay-filter="SelectType" lay-search>
+ <option value="">姝e父</option>
+ <option value="0">鐗╂枡淇℃伅</option>
+ <option value="1">鎵规淇℃伅</option>
+ <option value="2">璐ㄦ淇℃伅</option>
+ <option value="3">璐т富淇℃伅</option>
+ </select>
+ </div>
+ </div>
<div class="layui-inline zongdan">
<label class="layui-form-label" style="width: 60px;">鐗╂枡缂栫爜</label>
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
@@ -71,7 +83,7 @@
class="layui-input">
</div>
</div>
- <div class="layui-inline mingxi">
+ <!-- <div class="layui-inline mingxi">
<label class="layui-form-label" style="width: 60px;">鍌ㄤ綅鍦板潃</label>
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
<input type="text" id="LocatNo" name="LocatNo" placeholder="鍌ㄤ綅鍦板潃" autocomplete="off"
@@ -84,7 +96,7 @@
<input type="text" id="PalletNo" name="PalletNo" placeholder="鎵樼洏鍙�" autocomplete="off"
class="layui-input">
</div>
- </div>
+ </div> -->
<div class="layui-inline ">
<label class="layui-form-label" style="width: 60px;">搴撳瓨鐘舵��</label>
@@ -123,7 +135,7 @@
</select>
</div>
</div>
- <div class="layui-inline zhijian">
+ <!-- <div class="layui-inline zhijian">
<label class="layui-form-label" style="width: 60px;">寮�濮嬫椂闂�</label>
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
<input type="text" autocomplete="off" id="StartTime" class="layui-input"
@@ -136,7 +148,7 @@
<input type="text" autocomplete="off" id="EndTime" class="layui-input"
placeholder="缁撴潫鏃堕棿">
</div>
- </div>
+ </div> -->
<div class="layui-inline sousuo">
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
lay-filter="LAY-app-contlist-search">
@@ -151,19 +163,15 @@
</div>
</div>
-
+ <div id="center"></div>
<div class="layui-card-body">
<div style="position: relative;">
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
- <ul class="layui-tab-title" id="tab">
- <li class="layui-this">搴撳瓨鎬婚噺</li>
- <li>搴撳瓨鏄庣粏</li>
- </ul>
-
- <div id="center"></div>
+ <!-- <div id="center">
+ </div> -->
<div class="layui-tab-content">
- <div class="layui-tab-item layui-show">
+ <!-- <div class="layui-tab-item layui-show"> -->
<div class="position-relative"><!-- class="position-relative" --><!-- 鑷畾涔夎〃澶村姞涓� -->
<table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
<!-- #region 鑷畾涔夎〃澶� -->
@@ -174,29 +182,6 @@
</div>
<!-- #endregion -->
</div>
- </div>
- <div class="layui-tab-item">
- <div class="position-relative"><!-- class="position-relative" --><!-- 鑷畾涔夎〃澶村姞涓� -->
- <table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table>
- <!-- #region 鑷畾涔夎〃澶� -->
- <div class="headerSetIcon">
- <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols2">
- <i class="layui-icon"></i>
- </button>
- </div>
- <!-- #endregion -->
-
- <!-- #region 鑷畾涔夎〃澶� -->
- <script type="text/html" id="templetCompleteTime">
- {{# function GetBtn(d){
- return formatDate(d.CompleteTime);
- }
- }}
- {{ GetBtn(d) }}
- </script>
- <!-- #endregion -->
- </div>
- </div>
</div>
</div>
@@ -258,7 +243,7 @@
element = layui.element;
laydate = layui.laydate;
- var h1 = GetTableTabHeight();
+ var h1 = GetTableHeight();
laydate.render({
elem: '#StartTime',
@@ -296,7 +281,7 @@
var $ = layui.$;
var yemianid = 0;
- refreshTable("", "","","","");
+ refreshTable("", "", "", "", "", "", "", "");
// 琛ㄥ崟闇�瑕佺殑鍙橀噺
var infoOptions;
@@ -361,14 +346,17 @@
{field: 'LotText',title: '鎵规鎻忚堪',align: 'center'},
{field: 'OwnerNo',title: '璐т富缂栫爜',align: 'center'},
{field: 'OwnerName',title: '璐т富鍚嶇О',align: 'center'},
+ {field: 'Status',title: '搴撳瓨鐘舵��',align: 'center',templet: '#buttonTpl'},
+ {field: 'InspectStatus',title: '璐ㄦ鐘舵��',align: 'center',templet: '#buttonTp2'},
{field: 'Qty',title: '搴撳瓨鏁伴噺',align: 'center',totalRow: true},
{field: 'LockQty',title: '閿佸畾鏁伴噺',align: 'center',totalRow: true},
- {field: 'FrozenQty',title: '鍐荤粨鏁伴噺',align: 'center',totalRow: true}
+ {field: 'FrozenQty',title: '鍐荤粨鏁伴噺',align: 'center',totalRow: true},
+ {field: 'InspectQty',title: '鍙娊妫�鏁伴噺',align: 'center',totalRow: true},
]];
var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
//#endregion
//鑾峰彇鎬婚噺淇℃伅
- function refreshTable(SkuNo,SkuName,OwnerNo,OwnerName,LotNo) {
+ function refreshTable(SelectType,SkuNo,SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus) {
//#region 鑷畾涔夎〃澶�
var colsJson
var param1={
@@ -401,11 +389,14 @@
cols:colsJson
};
var param = {
+ SelectType:SelectType, //鏌ヨ绫诲瀷
SkuNo:SkuNo, //鐗╂枡鍙�
SkuName:SkuName, //鐗╂枡鍚嶇О
OwnerNo:OwnerNo, //璐т富缂栫爜
OwnerName:OwnerName, //璐т富鍚嶇О
LotNo:LotNo, //鎵规鍙�
+ Status:Status, //搴撳瓨鐘舵�� = $("#Status").val();
+ InspectStatus:InspectStatus, //璐ㄦ鐘舵�� = $("#InspectStatus").val();
};
sendData(IP + "/Statistical/GetInventoryList", param, 'get', function (res) {
console.log(res)
@@ -428,319 +419,47 @@
});
});
//#endregion
- }
-
- // 琛ㄥ崟闇�瑕佺殑鍙橀噺
- var infoOptions2;
- //#region 鍘熷闈炶嚜瀹氫箟鍒�
- //infoOptions2 = {
- // elem: '#LAY-app-content-list2',
- // height: 'full-206',
- // id: 'LAY-app-content-list2',
- // page: true,
- // limit: pageCnt,
- // limits: pageLimits,
- // even: true,
- // cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
- // cols:
- // [[
- // {
- // field: 'PalletNo',
- // title: '鎵樼洏鍙�',
- // align: 'center',
- // width: 110,
- // }, {
- // field: 'LocatNo',
- // title: '鍌ㄤ綅鍦板潃',
- // align: 'center',
- // width: 100,
- // }, {
- // field: 'RoadwayName',
- // title: '鎵�灞炲贩閬�',
- // width: 90,
- // align: 'center',
- // }, {
- // field: 'WareHouseName',
- // title: '鎵�灞炰粨搴�',
- // width: 90,
- // align: 'center',
- // }, {
- // field: 'SkuNo',
- // title: '鐗╂枡缂栫爜',
- // width: 100,
- // align: 'center',
- // }, {
- // field: 'SkuName',
- // title: '鐗╂枡鍚嶇О',
- // align: 'center',
- // }, {
- // field: 'Standard',
- // title: '鐗╂枡瑙勬牸',
- // width: 130,
- // align: 'center',
- // }, {
- // field: 'LotNo',
- // title: '鎵规鍙�',
- // align: 'center',
- // }, {
- // field: 'Qty',
- // title: '搴撳瓨鏁伴噺',
- // width: 110,
- // align: 'center',
- // }, {
- // field: 'LockQty',
- // title: '閿佸畾鏁伴噺',
- // width: 110,
- // align: 'center',
- // },
- // {
- // field: 'Status',
- // templet: '#buttonTpl',
- // title: '搴撳瓨鐘舵��',
- // width: 90,
- // align: 'center',
- // }, {
- // field: 'InspectStatus',
- // templet: '#buttonTp2',
- // title: '璐ㄦ鐘舵��',
- // width: 90,
- // align: 'center',
- // },
- // {
- // field: 'CompleteTime',
- // title: '鍏ュ簱鏃堕棿',
- // align: 'center',
- // width: 150,
- // templet: function (d) {
- // return formatDate(d.CompleteTime);
- // },
- // },
- // ]]
- //};
- //#endregion
-
- //鑾峰彇鏄庣粏淇℃伅
- //#region 鑷畾涔夎〃澶�
- var DetailColsArr = [[
- {field: 'PalletNo',title: '鎵樼洏鍙�',align: 'center',width: 110,},
- {field: 'LocatNo',title: '鍌ㄤ綅鍦板潃',align: 'center',width: 100,},
- {field: 'WareHouseName',title: '鎵�灞炰粨搴�',width: 90,align: 'center'},
- {field: 'RoadwayName',title: '鎵�灞炲贩閬�',width: 90,align: 'center'},
- {field: 'AreaName',title: '鎵�灞炲尯鍩�',width: 90,align: 'center'},
- {field: 'SkuNo',title: '鐗╂枡缂栫爜',width: 100,align: 'center'},
- {field: 'SkuName',title: '鐗╂枡鍚嶇О',align: 'center'},
- {field: 'Standard',title: '鐗╂枡瑙勬牸',width: 130,align: 'center'},
- {field: 'LotNo',title: '鎵规鍙�',align: 'center'},
- {field: 'OwnerNo',title: '璐т富缂栫爜',align: 'center'},
- {field: 'OwnerName',title: '璐т富鍚嶇О',align: 'center'},
- {field: 'SupplierNo',title: '渚涘簲鍟嗙紪鐮�',align: 'center'},
- {field: 'SupplierName',title: '渚涘簲鍟嗗悕绉�',align: 'center'},
- {field: 'Qty',title: '搴撳瓨鏁伴噺',width: 110,align: 'center'},
- {field: 'LockQty',title: '閿佸畾鏁伴噺',width: 110,align: 'center'},
- {field: 'Status',templet: '#buttonTpl',title: '搴撳瓨鐘舵��',width: 90,align: 'center'},
- {field: 'InspectStatus',templet: '#buttonTp2',title: '璐ㄦ鐘舵��',width: 90,align: 'center'},
- {field: 'CompleteTime',title: '鍏ュ簱鏃堕棿',align: 'center',width: 150,templet: '#templetCompleteTime'},
- ]];
- var DetailColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
- //#endregion
- function refreshTable2(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime) {
- //#region 鑷畾涔夎〃澶�
- var colsJson2
- var param1={
- Href:'Statistical/GetInventoryList1'
- };
- sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) {
- if (res.code == 0){
- if(res.data=='' || res.data==undefined || res.data==null){
- colsJson2=DetailColsArr
- }else{
- colsJson2= eval(res.data);
- }
- }else{
- colsJson2=DetailColsArr
- }
- infoOptions2 = {
- elem: '#LAY-app-content-list2',
- height: h1,
- id: 'LAY-app-content-list2',
- page: true,
- limit: pageCnt,
- limits: pageLimits,
- even: true,
- cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
- done: function(){
- //鑷畾涔夊垪瀹�
- SetTableColW('LAY-app-content-list2','Statistical/GetInventoryList1',DetailColsSysArr);
- },
- cols:colsJson2
- };
- var param = {
- SkuNo:SkuNo, //鐗╂枡鍙�
- SkuName:SkuName, //鐗╂枡鍚嶇О
- OwnerNo:OwnerNo, //璐т富缂栫爜
- OwnerName:OwnerName, //璐т富鍚嶇О
- LotNo:LotNo, //鎵规鍙�
- LocatNo:LocatNo,//鍌ㄤ綅鍦板潃
- PalletNo:PalletNo, //鎵樼洏鍙�
- Status:Status,//搴撳瓨鐘舵��
- InspectStatus:InspectStatus, //璐ㄦ鐘舵��
- StartTime:StartTime,//寮�濮嬫椂闂�
- EndTime:EndTime, //缁撴潫鏃堕棿
- };
- sendData(IP + "/Statistical/GetInventoryList1", param, 'get', function (res) {
- if (res.code == 0) //鎴愬姛
- {
- var list = res.data;
- $.extend(infoOptions2, {
- data: list
- });
- infoOptions2.page = {
- curr: 1
- }
- tableIns2 = table.render(infoOptions2);
- }
- else //涓嶆垚鍔�
- {
- layer.msg('鑾峰彇鏄庣粏鍒楄〃淇℃伅澶辫触锛�', {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }, function () { });
- }
- })
- });
- //#endregion
- }
+ }
- //var url = IP + "/Statistical/GetInventoryList1";
-
- //鎺ュ彈鍏ㄥ眬鍙橀噺
- let quanSkuNo = '';
- let quanLotNo='';
//鐩戝惉鎼滅储
form.on('submit(LAY-app-contlist-search)', function (data) {
+ var SelectType = $("#SelectType").val();
var SkuNo = $("#SkuNo").val();
var SkuName = $("#SkuName").val();
var LotNo = $("#LotNo").val();
- var LocatNo = $("#LocatNo").val();
- var PalletNo = $("#PalletNo").val();
var OwnerNo = $("#OwnerNo").val();
var OwnerName = $("#OwnerName").val();
var Status = $("#Status").val();
var InspectStatus = $("#InspectStatus").val();
- var StartTime = $("#StartTime").val();
- var EndTime = $("#EndTime").val();
- if (yemianid == 0) {
- console.log("鎬诲崟");
- refreshTable(SkuNo, SkuName,OwnerNo,OwnerName,LotNo);
- } else if (yemianid == 1) {
- //quanSkuNo = quanSkuNo;
- //quanLotNo='';
- console.log("鏄庣粏");
- console.log(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime)
- refreshTable2(quanSkuNo,SkuName,OwnerNo,OwnerName,quanLotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime);
- }
+ refreshTable(SelectType,SkuNo, SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus);
- });
- //瑙﹀彂琛屽弻鍑讳簨浠�
- table.on('rowDouble(LAY-app-content-list)', function (obj) {
- $(".layui-tab-title>li").attr("class", "");
- $('.layui-tab-title>li').eq(1).attr('class', 'layui-this');
- $('.layui-tab-content .layui-tab-item').attr('class', 'layui-tab-item')
- $('.layui-tab-content .layui-tab-item').eq(1).attr('class', 'layui-tab-item layui-show')
- console.log(obj);
- quanSkuNo = obj.data.SkuNo;
- quanLotNo=obj.data.lotNo;
- refreshTable2(obj.data.SkuNo,obj.data.SkuName,obj.data.OwnerNo,obj.data.OwnerName,obj.data.LotNo,obj.data.LocatNo,obj.data.PalletNo,obj.data.Status,obj.data.InspectStatus,obj.data.StartTime,obj.data.EndTime);
- yemianid = 1;
- });
-
- //鐩戝惉Tab鍒囨崲锛屼互鏀瑰彉鍦板潃hash鍊�
- element.on('tab(docDemoTabBrief)', function (data) {
- var SkuNo = $("#SkuNo").val();
- var SkuName = $("#SkuName").val();
- var LotNo = $("#LotNo").val();
- var LocatNo = $("#LocatNo").val();
- var PalletNo = $("#PalletNo").val();
- var OwnerNo = $("#OwnerNo").val();
- var OwnerName = $("#OwnerName").val();
- var Status = $("#Status").val();
- var InspectStatus = $("#InspectStatus").val();
- console.log(data.index);
- yemianid = data.index
- if (yemianid == 0) {
- console.log("鎬诲崟");
- refreshTable(SkuNo, SkuName,OwnerNo,OwnerName,LotNo);
- } else if (yemianid == 1) {
- console.log("鏄庣粏");
- refreshTable2(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime);
- }
});
form.on('submit(daochu)', function () {
layer.confirm('纭畾瀵煎嚭褰撳墠鏁版嵁鍚楋紵', function (index) {
- if (yemianid == 0) {
- console.log("鎬诲崟");
- var param = {
- SkuNo: $("#SkuNo").val(),
- SkuName: $("#SkuName").val(),
- };
- sendData(IP + "/Statistical/GetInventoryListDaoChu", param, 'get', function (res) {
- console.log(res);
- if (res.code == 0) { //鎴愬姛
- var list = res.data;
- table.exportFile(tableIns.config.id, list, 'xls', "搴撳瓨淇℃伅" + getNowTime(),); //data 涓鸿瀹炰緥涓殑浠绘剰鏁伴噺鐨勬暟鎹�
- layer.msg('瀵煎嚭鎴愬姛锛�', {
- icon: 1,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }, function () {
+ var param = {
+ SkuNo: $("#SkuNo").val(),
+ SkuName: $("#SkuName").val(),
+ };
+ sendData(IP + "/Statistical/GetInventoryListDaoChu", param, 'get', function (res) {
+ console.log(res);
+ if (res.code == 0) { //鎴愬姛
+ var list = res.data;
+ table.exportFile(tableIns.config.id, list, 'xls', "搴撳瓨淇℃伅" + getNowTime(),); //data 涓鸿瀹炰緥涓殑浠绘剰鏁伴噺鐨勬暟鎹�
+ layer.msg('瀵煎嚭鎴愬姛锛�', {
+ icon: 1,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }, function () {
- });
+ });
- } else { //涓嶆垚鍔�
- layer.msg('鑾峰彇淇℃伅澶辫触锛�', {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }, function () { });
- }
- });
- } else if (yemianid == 1) {
- console.log("鏄庣粏");
- var SkuNo = $("#SkuNo").val();
- if (SkuNo == '') {
- SkuNo = quanSkuNo;
+ } else { //涓嶆垚鍔�
+ layer.msg('鑾峰彇淇℃伅澶辫触锛�', {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }, function () { });
}
- var param = {
- SkuNo: SkuNo,
- SkuName: $("#SkuName").val(),
- LotNo: $("#LotNo").val(),
- LocatNo: $("#LocatNo").val(),
- PalletNo: $("#PalletNo").val(),
- Status: $("#Status").val(),
- InspectStatus: $("#InspectStatus").val(),
- IsSamolingTray: $("#IsSamolingTray").val(),
- StartTime: $("#StartTime").val(),
- EndTime: $("#EndTime").val(),
- };
- sendData(IP + "/Statistical/GetInventoryList1DaoChu", param, 'get', function (res) {
- console.log(res);
- if (res.code == 0) { //鎴愬姛
- var list = res.data;
- table.exportFile(tableIns2.config.id, list, 'xls', "搴撳瓨鏄庣粏淇℃伅" + getNowTime(),); //data 涓鸿瀹炰緥涓殑浠绘剰鏁伴噺鐨勬暟鎹�
- layer.msg('瀵煎嚭鎴愬姛锛�', {
- icon: 1,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }, function () {
-
- });
-
- } else { //涓嶆垚鍔�
- layer.msg('鑾峰彇淇℃伅澶辫触锛�', {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }, function () { });
- }
- });
- }
+ });
});
@@ -757,18 +476,7 @@
resize: false,
area: ['970px', '650px']
});
- },
- customCols2: function(){
- layer.open({
- type: 2,
- title: '鑷畾涔夊垪',
- content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetInventoryList1&ColsSysArr='+DetailColsSysArr,
- maxmin: false,
- resize: false,
- area: ['970px', '650px']
- });
}
-
};
$('.layui-btn').on('click', function() {
var type = $(this).data('type');
diff --git a/HTML/views/SystemSettings/PrintModule.html b/HTML/views/SystemSettings/PrintModule.html
new file mode 100644
index 0000000..5298460
--- /dev/null
+++ b/HTML/views/SystemSettings/PrintModule.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+
+<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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+ <link rel="stylesheet" type="text/css" href="../../js/HiPrint/css/hiprint.css?t=' + Math.random() + '" />
+ <link rel="stylesheet" type="text/css" href="../../js/HiPrint/css/print-lock.css" />
+ <link rel="stylesheet" media="print" href="../../js/HiPrint/css/print-lock.css" />
+ <!-- <link rel="stylesheet" type="text/css" href="../../js/HiPrint/css/bootstrap.min.css" > -->
+ <style>
+ .layui-form-label {
+ padding: 5px 1px;
+ text-align: center;
+ }
+
+ div {
+ font-size: inherit;
+ }
+ </style>
+</head>
+
+<body>
+ <div class="layui-card">
+ <input type="hidden" id="printData" name="printData">
+ <input type="hidden" id="printType" name="printType">
+ <div class="row">
+
+ <!--宸︿晶div-->
+ <div class="layui-col-xs2" style="padding-right:0px;max-height:250mm;">
+ <div class="small-printElement-types hiprintEpContainer">
+ </div>
+ </div>
+ <!--鎵撳嵃閮ㄥ垎-->
+ <div class="layui-col-xs6" style="margin-right: 50px;margin-left: 30px;">
+ <!--鎵撳嵃澶撮儴鍒�-->
+ <div class="hiprint-toolbar" style="margin-top:15px;">
+ <ul>
+ <li><a class="hiprint-toolbar-item"><input type="number" id="customWidth"
+ style="width: 50px;height: 19px;border: 0px;" placeholder="瀹�/mm" /></a></li>
+ <li><a class="hiprint-toolbar-item"><input type="number" id="customHeight"
+ style="width: 50px;height: 19px;border: 0px;" placeholder="楂�/mm" /></a></li>
+ <li><a class="hiprint-tizee-btn" onclick="clearTemplate()">娓呯┖</a></li>
+ <!-- <li> <a class="btn hiprint-toolbar-item "
+ style="color: #fff;background-color: #d9534f;border-color: #d43f3a;"
+ id="preview">蹇�熼瑙�</a> </li> -->
+ <li> <a id="directPrint" class="btn hiprint-toolbar-item "
+ style="color: #fff;background-color: #d9534f; border-color: #d43f3a;">鎵撳嵃</a>
+ </li>
+ <!-- <li>
+ <a class="btn hiprint-toolbar-item"
+ style="color: #fff;background-color: #d9534f; border-color: #d43f3a;"
+ id="A4_getJson_toTextarea" onclick="BtnSubmit_Click()">淇濆瓨</a>
+ </li> -->
+ </ul>
+ <div style="clear:both;"></div>
+ </div>
+ <!--鎵撳嵃涓讳綋閮ㄥ垎-->
+ <div id="hiprint-printTemplate" class="hiprint-printTemplate" style="margin-top:20px;">
+
+ </div>
+ <textarea class="form-control" rows="10" id="A4_textarea_json" style="display: none;"></textarea>
+ </div>
+ <!--鍙充晶div-->
+ <div class="layui-col-xs2" style="margin-left: 6%;max-height:260mm; overflow-y: scroll;">
+ <div id="PrintElementOptionSetting" style="margin-top: 10px;"></div>
+ </div>
+ </div>
+ </div>
+
+ <script src="../../js/jquery-3.5.1.min.js"></script>
+ <script src="../../js/jquery.cookie.js"></script>
+ <script src="../../js/hiprint/content/bootstrap.min.js"></script>
+ <script src="../../js/HiPrint/polyfill.min.js"></script>
+ <script src="../../js/HiPrint/plugins/jquery.minicolors.min.js"></script>
+ <script src="../../js/HiPrint/plugins/JsBarcode.all.min.js"></script>
+ <script src="../../js/HiPrint/plugins/qrcode.js"></script>
+ <script src="../../js/HiPrint/hiprint.bundle.js"></script>
+ <script src="../../js/HiPrint/plugins/jquery.hiwprint.js"></script>
+ <!-- <script src="../../js/HiPrint/plugins/socket.io.js"></script> -->
+ <script src="../../js/HiPrint/plugins/config-etype-provider.js"></script>
+ <script src="../../js/HiPrint/plugins/jspdf/canvas2image.js"></script>
+ <script src="../../js/HiPrint/plugins/jspdf/canvg.min.js"></script>
+ <script src="../../js/HiPrint/plugins/jspdf/html2canvas.min.js"></script>
+ <script src="../../js/HiPrint/plugins/jspdf/jspdf.min.js"></script>
+ <script src="../../js/HiPrint/plugins/print-data-list.js"></script>
+ <script src="../../js/HiPrint/hiprint.config.js"></script>
+ <script src="../../layuiadmin/layui/layui.js"></script>
+ <script src="../../js/public.js"></script>
+ <script>
+ var configPrintJson;
+ var datalist = [];
+ //鍒濆鍖栨墦鍗版彃浠舵覆鏌�
+ $(".hiprintEpContainer").html(""); //娓呴櫎div鍐呭
+
+
+
+ var hiprintTemplate;
+ // var JsonData = JSON.parse('{"panels":[{"index":0,"height":50,"width":50,"paperHeader":0,"paperFooter":141.73228346456693,"printElements":[{"tid":"configModule.SkuName","options":{"left":9,"top":12,"height":9.75,"width":120}},{"tid":"configModule.SkuNo","options":{"left":9,"top":37.5,"height":78,"width":120,"textType":"qrcode"}}],"paperNumberLeft":178.5,"paperNumberTop":123}]}')
+ var JsonData = {};
+ setTimeout(function () {
+ var printType = $("#printType").val();
+ datalist = getPrintDataList()(printType);
+ synData(IP + "/sys/GetDefaultPrintTemplate?Type=" + printType, {}, 'get', function (res) {
+ if (res.code == 0) { //鎴愬姛
+ hiprint.init({
+ providers: [new configElementTypeProvider()]
+ });
+ //璁剧疆宸︿晶鎷栨嫿浜嬩欢
+ hiprint.PrintElementTypeManager.build('.hiprintEpContainer', 'testModule');
+ JsonData = JSON.parse(res.data.PositionJson);
+ $("#customWidth").val(JsonData.panels[0].width);
+ $("#customHeight").val(JsonData.panels[0].height);
+ hiprintTemplate = new hiprint.PrintTemplate({
+ template: JsonData,//妯℃澘JSON
+ settingContainer: '#PrintElementOptionSetting',
+ paginationContainer: '.hiprint-printPagination'
+ });
+
+ //鎵撳嵃璁捐
+ hiprintTemplate.design('#hiprint-printTemplate');
+
+ //鎵撳嵃
+ //杩欓噷鑾峰彇涓婄骇椤甸潰鐨刾rintData鏁版嵁鎵撳嵃
+ // var printData = deepClone(parent.printData);
+ var printData = JSON.parse($("#printData").val());
+ hiprintTemplate.print(printData, '鎵撳嵃');
+ parent.layer.closeAll();
+ }
+ else //涓嶆垚鍔�
+ {
+ layer.msg(res.msg, {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }, function () { parent.layer.closeAll(); });
+ }
+ });
+ }, 100);
+
+
+
+ $('#directPrint').click(function () {
+ hiprintTemplate.print(printData);
+ });
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs b/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs
index 84c105e..dee475d 100644
--- a/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs
+++ b/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs
@@ -38,17 +38,23 @@
/// <summary>
/// 鏁伴噺
/// </summary>
- public string Qty { get; set; }
+ public decimal? Qty { get; set; }
/// <summary>
/// 閿佸畾鏁伴噺
/// </summary>
- public string LockQty { get; set; }
+ public decimal? LockQty { get; set; }
/// <summary>
/// 鍐荤粨鏁伴噺
/// </summary>
- public string FrozenQty { get; set; }
+ public decimal? FrozenQty { get; set; }
+
+
+ /// <summary>
+ /// 鍙娊妫�鏁伴噺
+ /// </summary>
+ public decimal? InspectQty { get; set; }
/// <summary>
/// 鍓╀綑鏁伴噺
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e746979..f2f8ea3 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -4380,7 +4380,7 @@
var exAllotList = new List<BllExportAllot>();
var assign = new AllotSku();
- var specialSku = new List<string>();//鐗规畩鐗╂枡闆嗗悎锛屾棤闇�鎵樼洏涓婂叏閮ㄥ垎閰嶇殑
+ var specialSku = new List<string>();//鐗规畩鐗╂枡闆嗗悎锛� 鏃犻渶鎵樼洏涓婂叏閮ㄥ垎閰嶇殑
Db.BeginTran();
try
{
@@ -4458,7 +4458,7 @@
}
else
{
- qty += assign.AllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic);
+ qty += assign.AllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic, detail.LotNo, detail.IsMixBox);
}
foreach (var sc in stockQtyDic)
diff --git a/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs b/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
index 88419dd..393fd6d 100644
--- a/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
@@ -480,7 +480,7 @@
Dictionary<string, int> zxQtyDic = new Dictionary<string, int>();//鎵樺嚭鏁寸鏁�
//鍒嗛厤璐х墿
//assign.AllocatePallets(stocks, pNum, bNum, needQty, stockQtyDic, zxQtyDic);
- var qty = assign.AllotPallets(stockDetail, decimal.Parse(needQty.ToString()), pNum, bNum, stockQtyDic);
+ var qty = assign.AllotPallets(stockDetail, decimal.Parse(needQty.ToString()), pNum, bNum, stockQtyDic, detail.LotNo, detail.IsMixBox);
foreach (var sc in stockQtyDic)
{
diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs
index 8259a64..ebf208d 100644
--- a/Wms/WMS.BLL/DataServer/StockServer.cs
+++ b/Wms/WMS.BLL/DataServer/StockServer.cs
@@ -5,9 +5,12 @@
using System.Runtime.Intrinsics.X86;
using System.Security.Claims;
using System.Text;
+using System.Threading.Tasks;
using Model.ModelDto;
using Model.ModelDto.DataDto;
+using Model.ModelDto.SysDto;
using Model.ModelVm.DataVm;
+using Model.ModelVm.SysVm;
using SqlSugar;
using WMS.DAL;
using WMS.Entity.Context;
@@ -31,92 +34,255 @@
/// <summary>
/// 鏌ヨ搴撳瓨鎬婚噺
/// </summary>
+ /// <param name="selectType">鏌ヨ绫诲瀷 0锛氱墿鏂欎俊鎭� 1锛氭壒娆′俊鎭� 2锛氳川妫�淇℃伅 3锛氳揣涓讳俊鎭�</param>
/// <param name="skuNo">鐗╂枡缂栫爜</param>
/// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <param name="ownerNo">璐т富缂栫爜</param>
+ /// <param name="ownerName">璐т富鍚嶇О</param>
+ /// <param name="lotNo">鎵规</param>
+ /// <param name="status">搴撳瓨鐘舵��</param>
+ /// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
- public List<MateDataStockDto> GetDataStockList(string skuNo, string skuName, string ownerNo, string ownerName, string lotNo)
+ public async Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus)
{
- string str = "select stock.SkuNo,stock.SkuName,stock.LotNo,stock.LotText,stock.Standard,stock.Qty," +
- "stock.LockQty,stock.FrozenQty,stock.OwnerNo,stock.OwnerName,(mate.Weight * stock.Qty) WeightSum " +
- "from DataStock stock " +
- "left join SysMaterials mate on stock.SkuNo = mate.SkuNo " +
- "Where stock.IsDel = @isdel and mate.IsDel = 0 ";
- //鍒ゆ柇鐗╂枡缂栫爜鏄惁涓虹┖
- if (!string.IsNullOrEmpty(skuNo))
+ List<MateDataStockDto> modUser = new List<MateDataStockDto>();
+ if (string.IsNullOrEmpty(selectType))
{
- str += " and stock.SkuNo like @skuno";
- }
- //鍒ゆ柇鐗╂枡鍚嶇О鏄惁涓虹┖
- if (!string.IsNullOrEmpty(skuName))
- {
- str += " and stock.SkuName like @skuname";
- }
- //鍒ゆ柇璐т富缂栫爜鏄惁涓虹┖
- if (!string.IsNullOrEmpty(ownerNo))
- {
- str += " and stock.OwnerNo like @ownerNo";
- }
- //鍒ゆ柇璐т富鍚嶇О鏄惁涓虹┖
- if (!string.IsNullOrEmpty(ownerName))
- {
- str += " and stock.OwnerName like @ownerName";
- }
- //鍒ゆ柇璐т富鍚嶇О鏄惁涓虹┖
- if (!string.IsNullOrEmpty(lotNo))
- {
- str += " and stock.LotNo like @lotNo";
- }
- //鎺掑簭
- str += " order by stock.SkuNo";
- List<MateDataStockDto> StockList = Db.Ado.SqlQuery<MateDataStockDto>(str, new
- {
- isdel = "0", //鏄惁鍒犻櫎
- skuno = "%" + skuNo + "%", //鐗╂枡缂栫爜
- skuname = "%" + skuName + "%", //鐗╂枡鍚嶇О
- ownerNo = "%" + ownerNo + "%", //璐т富缂栫爜
- ownerName = "%" + ownerName + "%", //璐т富鍚嶇О
- lotNo = "%" + lotNo + "%", //鎵规鍙�
- });
+ modUser = await Db.Queryable<DataStock>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), a => a.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), a => a.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo == lotNo)
+ .Where(a => a.IsDel == "0")
+ .Select(a => new MateDataStockDto()
+ {
+ SkuNo = a.SkuNo, //鐗╂枡缂栫爜
+ SkuName = a.SkuName, //鐗╂枡鍚嶇О
+ Standard = a.Standard, //瑙勬牸
+ LotNo = a.LotNo, //鎵规
+ LotText = a.LotText, //鎵规鎻忚堪
+ OwnerNo = a.OwnerNo, //璐т富缂栫爜
+ OwnerName = a.OwnerName, //璐т富鍚嶇О
+ Status = status, //搴撳瓨鐘舵��
+ InspectStatus = inspectStatus, //璐ㄦ鐘舵��
+ Qty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.Qty), //搴撳瓨鏁伴噺
+ //Qty = SqlFunc.AggregateSum(b.Qty), //搴撳瓨鏁伴噺
+ LockQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.LockQty), //閿佸畾鏁伴噺
+ FrozenQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺
+ InspectQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺
+ }).ToListAsync();
- //搴撳瓨鎬婚噺
- List<MateDataStockDto> StockListDto = new List<MateDataStockDto>();
-
- foreach (var item in StockList)
- {
- StockListDto.Add(item);
- ////鍒ゆ柇搴撳瓨鎬婚噺鏄惁鎷ユ湁鐗╂枡
- //if (StockListDto.Count > 0)
- //{
- // int i = 0;
- // //foreach寰幆搴撳瓨鎬婚噺
- // foreach (var dto in StockListDto)
- // {
- // //鍒ゆ柇鐗╂枡鍜屾壒娆℃槸鍚︾浉鍚�
- // if (dto.SkuNo == item.SkuNo && dto.LotNo == item.LotNo)
- // {
- // dto.Qty = (Convert.ToDecimal(dto.Qty) + Convert.ToDecimal(item.Qty)).ToString();
- // dto.FrozenQty = (Convert.ToDecimal(dto.FrozenQty) + Convert.ToDecimal(item.FrozenQty)).ToString();
- // dto.LockQty = (Convert.ToDecimal(dto.LockQty) + Convert.ToDecimal(item.LockQty)).ToString();
- // dto.ResidueQty= (Convert.ToDecimal(dto.ResidueQty) + Convert.ToDecimal(item.ResidueQty)).ToString();
- // break;
- // }
- // i += 1;
- // //鍒ゆ柇宸叉湁鐩稿悓鐗╂枡
- // if (i == StockListDto.Count)
- // {
- // StockListDto.Add(item);
- // break;
- // }
- // }
- //}
- //else
- //{
- // StockListDto.Add(item);
- // continue;
- //}
+ return modUser;
}
+ else
+ {
+ var selectList = new List<DataStockDetail>();
+ switch (selectType)
+ {
+ case "0": // 鐗╂枡淇℃伅
+ modUser = await Db.Queryable<DataStock>()
+ .Where(a => a.IsDel == "0")
+ .GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard })
+ .Select(a => new MateDataStockDto()
+ {
+ SkuNo = a.SkuNo, //鐗╂枡缂栫爜
+ SkuName = a.SkuName, //鐗╂枡鍚嶇О
+ Standard = a.Standard, //瑙勬牸
+ Qty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo)
+ .Sum(s => s.Qty), //搴撳瓨鏁伴噺
+ LockQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo)
+ .Sum(s => s.LockQty), //閿佸畾鏁伴噺
+ FrozenQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo)
+ .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺
+ InspectQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo)
+ .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺
+ })
+ .ToListAsync();
- return StockListDto;
+ return modUser;
+ case "1": // 鎵规淇℃伅
+
+ modUser = await Db.Queryable<DataStock>()
+ .Where(a => a.IsDel == "0")
+ .GroupBy(a => new { a.LotNo, a.LotText })
+ .Select(a => new MateDataStockDto()
+ {
+ LotNo = a.LotNo, //鎵规
+ LotText = a.LotText, //鎵规鎻忚堪
+ Qty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.Qty), //搴撳瓨鏁伴噺
+ LockQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.LockQty), //閿佸畾鏁伴噺
+ FrozenQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺
+ InspectQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo)
+ .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺
+ })
+ .ToListAsync();
+
+ return modUser;
+ case "2": // 璐ㄦ淇℃伅
+ modUser = await Db.Queryable<DataStock>()
+ .LeftJoin<DataStockDetail>((a, b) => a.LotNo == b.LotNo)
+ .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), a => a.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), a => a.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), (a, b) => b.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), (a, b) => b.InspectStatus == inspectStatus)
+ .Where(a => a.IsDel == "0")
+ .GroupBy((a, b) => b.InspectStatus)
+ .Select((a, b) => new MateDataStockDto()
+ {
+ InspectStatus = b.InspectStatus, //璐ㄦ鐘舵��
+ Qty = SqlFunc.AggregateSum(b.Qty), //搴撳瓨鏁伴噺
+ LockQty = SqlFunc.AggregateSum(b.LockQty), //閿佸畾鏁伴噺
+ FrozenQty = SqlFunc.AggregateSum(b.FrozenQty), //鍐荤粨鏁伴噺
+ InspectQty = SqlFunc.AggregateSum(b.InspectQty), //鍙娊妫�鏁伴噺
+ })
+ .ToListAsync();
+
+ return modUser;
+ case "3": // 璐т富淇℃伅
+
+ modUser = await Db.Queryable<DataStock>()
+ .Where(a => a.IsDel == "0")
+ .GroupBy(a => new { a.OwnerNo, a.OwnerName })
+ .Select(a => new MateDataStockDto()
+ {
+ OwnerNo = a.OwnerNo, //璐т富缂栫爜
+ OwnerName = a.OwnerName, //璐т富鍚嶇О
+ Qty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo)
+ .Sum(s => s.Qty), //搴撳瓨鏁伴噺
+ LockQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo)
+ .Sum(s => s.LockQty), //閿佸畾鏁伴噺
+ FrozenQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo)
+ .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺
+ InspectQty = SqlFunc.Subqueryable<DataStockDetail>()
+ .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo)
+ .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName)
+ .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo)
+ .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName)
+ .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo)
+ .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status)
+ .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus)
+ .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo)
+ .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺
+ })
+ .ToListAsync();
+ return modUser;
+ default:
+ break;
+ }
+
+ return modUser;
+ }
}
/// <summary>
@@ -837,9 +1003,9 @@
//鍒ゆ柇鐗╂枡鏄惁鐩稿悓
if (dto.SkuNo == item.SkuNo)
{
- dto.Qty = (Convert.ToInt32(dto.Qty) + Convert.ToInt32(item.Qty)).ToString();
- dto.FrozenQty = (Convert.ToInt32(dto.FrozenQty) + Convert.ToInt32(item.FrozenQty)).ToString();
- dto.LockQty = (Convert.ToInt32(dto.LockQty) + Convert.ToInt32(item.LockQty)).ToString();
+ dto.Qty = Convert.ToInt32(dto.Qty) + Convert.ToInt32(item.Qty);
+ dto.FrozenQty = Convert.ToInt32(dto.FrozenQty) + Convert.ToInt32(item.FrozenQty);
+ dto.LockQty = Convert.ToInt32(dto.LockQty) + Convert.ToInt32(item.LockQty);
dto.ResidueQty = (Convert.ToInt32(dto.ResidueQty) + Convert.ToInt32(item.ResidueQty)).ToString();
break;
}
diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs
index a995732..50235b8 100644
--- a/Wms/WMS.BLL/Logic/AllotSku.cs
+++ b/Wms/WMS.BLL/Logic/AllotSku.cs
@@ -20,8 +20,10 @@
/// <param name="fullPalletQty">婊℃墭鏁伴噺</param>
/// <param name="fullBoxQty">婊$鏁伴噺</param>
/// <param name="stockQtyDic">鎵樺嚭搴撶墿鍝佹暟 key:搴撳瓨鎵樼洏琛ㄧ殑ID銆乿al:鎵樼洏涓婄殑鏁伴噺</param>
+ /// <param name="lotNo">鎵规</param>
+ /// <param name="isMixBox">鏄惁鎺ュ彈鎷肩 0锛氬惁 1锛氭槸</param>
/// <returns></returns>
- public decimal AllotPallets(List<DataStockDetail> palletList, decimal needQty, int fullPalletQty, int fullBoxQty, Dictionary<int, decimal> stockQtyDic)
+ public decimal AllotPallets(List<DataStockDetail> palletList, decimal needQty, int fullPalletQty, int fullBoxQty, Dictionary<int, decimal> stockQtyDic,string lotNo,string isMixBox)
{
//浼樺厛鍏堣繘鍏堝嚭锛堝揩杩囨湡鐨勫厛鍑猴級
//浼樺厛闆剁銆侀浂鎵橈紙鍑哄畬闆剁鍑烘暣绠憋級
@@ -84,8 +86,6 @@
{
var ztNum = needQty / fullPalletQty;//闇�瑕佹暣鎵樻暟
-
-
var zps = list.Where(s => s.Qty >= fullPalletQty).ToList();//鏁存墭
var sps = list.Where(s => s.Qty < fullPalletQty).ToList();//鏁f墭(鏈夊彲鑳芥槸琚攣瀹氫簡鏁伴噺鐨�)
@@ -96,7 +96,14 @@
//鏁f墭
foreach (var s in st)
{
- var detailQty = decimal.Parse((s.Qty - s.LockQty - s.FrozenQty).ToString());
+ decimal otherLotQty = 0;//娣风涓叾浠栨壒娆℃暟閲�
+ //涓嶆帴鍙楁嫾绠�
+ if (isMixBox == "0")
+ {
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ otherLotQty = GetMixBoxQty(s.Id, lotNo);
+ }
+ var detailQty = decimal.Parse((s.Qty - s.LockQty - s.FrozenQty - otherLotQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -119,7 +126,14 @@
var zt = zps.OrderBy(s => s.ExpirationTime).ToList();//鎵�鏈夋湭浣跨敤鐨勬墭鐩橈紙鏈鍒嗛厤鐨勶級
foreach (var ss in zt)
{
- var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ decimal otherLotQty = 0;//娣风涓叾浠栨壒娆℃暟閲�
+ //涓嶆帴鍙楁嫾绠�
+ if (isMixBox == "0")
+ {
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ otherLotQty = GetMixBoxQty(ss.Id, lotNo);
+ }
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty - otherLotQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -135,10 +149,7 @@
break;
}
}
-
-
}
-
}
else if (allotSet == 1)//浼樺厛鏁存墭锛堝垎閰嶅悎閫傜殑鏁存墭鏁伴噺锛�
{
@@ -153,7 +164,14 @@
var zt = zps.OrderBy(s => s.ExpirationTime).ToList();//鎵�鏈夋湭浣跨敤鐨勬墭鐩橈紙鏈鍒嗛厤鐨勶級
foreach (var ss in zt)
{
- var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ decimal otherLotQty = 0;//娣风涓叾浠栨壒娆℃暟閲�
+ //涓嶆帴鍙楁嫾绠�
+ if (isMixBox == "0")
+ {
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ otherLotQty = GetMixBoxQty(ss.Id, lotNo);
+ }
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty - otherLotQty).ToString());
if (needQty - qty < detailQty)
{
break;
@@ -174,7 +192,14 @@
foreach (var ss in zt)
{
- var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ decimal otherLotQty = 0;//娣风涓叾浠栨壒娆℃暟閲�
+ //涓嶆帴鍙楁嫾绠�
+ if (isMixBox == "0")
+ {
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ otherLotQty = GetMixBoxQty(ss.Id, lotNo);
+ }
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty - otherLotQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -197,7 +222,14 @@
var zt = zps.Where(s => !sIds.Contains(s.Id)).OrderBy(s => s.ExpirationTime).ThenBy(m => m.Qty - m.LockQty - m.FrozenQty).ToList();//鎵�鏈夋湭浣跨敤锛堟湭琚垎閰嶇殑锛�
foreach (var ss in zt)
{
- var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ decimal otherLotQty = 0;//娣风涓叾浠栨壒娆℃暟閲�
+ //涓嶆帴鍙楁嫾绠�
+ if (isMixBox == "0")
+ {
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ otherLotQty = GetMixBoxQty(ss.Id, lotNo);
+ }
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty - otherLotQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -213,7 +245,6 @@
}
}
}
-
}
}
@@ -230,6 +261,28 @@
}
}
+ /// <summary>
+ /// 鏌ユ壘鍑烘贩绠变腑鍏朵粬鎵规鎬绘暟閲�
+ /// </summary>
+ /// <param name="stockDetailId"></param>
+ /// <param name="lotNo"></param>
+ /// <returns></returns>
+ private decimal GetMixBoxQty(int stockDetailId,string lotNo)
+ {
+ var contextDb = DataContext.Db;
+ //鏌ユ壘鍑烘贩绠遍泦鍚�
+ List<string> mixBoxList = contextDb.Queryable<DataBoxInfo>()
+ .Where(w => w.IsDel == "0" && w.StockDetailId == stockDetailId)
+ .GroupBy(g => g.LotNo)
+ .Having(h => SqlFunc.AggregateCount(h.LotNo) > 1)
+ .Select(s => s.BoxNo).ToList();
+
+ decimal otherLotQty = contextDb.Queryable<DataBoxInfo>()
+ .Where(w => w.IsDel == "0" && w.StockDetailId == stockDetailId && mixBoxList.Contains(w.BoxNo) && w.LotNo != lotNo)
+ .Sum(s => s.Qty);
+
+ return otherLotQty;
+ }
/// <summary>
/// JC23棰嗘枡鍑哄簱鍒嗛厤璐х墿锛堝垎閰嶆墭鐩樹笂鍏ㄩ儴鐗╂枡锛岄槻姝㈠洓妤间笉鍚屾姇鏂欏彛鍒嗛厤鍚屼竴鎵樼洏鐗╂枡鍐茬獊锛�
diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
index 5b0fd9d..6434ade 100644
--- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs
+++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
@@ -14,10 +15,16 @@
/// <summary>
/// 鏌ヨ搴撳瓨鎬婚噺
/// </summary>
+ /// <param name="selectType">鏌ヨ绫诲瀷</param>
/// <param name="skuNo">鐗╂枡缂栫爜</param>
/// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <param name="ownerNo">璐т富缂栫爜</param>
+ /// <param name="ownerName">璐т富鍚嶇О</param>
+ /// <param name="lotNo">鎵规</param>
+ /// <param name="status">搴撳瓨鐘舵��</param>
+ /// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
- List<MateDataStockDto> GetDataStockList(string skuNo, string skuName, string ownerNo, string ownerName, string lotNo);
+ Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus);
/// <summary>
/// 鑾峰彇搴撳瓨鏄庣粏
diff --git a/Wms/Wms/Controllers/StatisticalController.cs b/Wms/Wms/Controllers/StatisticalController.cs
index 8a87f0e..13f01ae 100644
--- a/Wms/Wms/Controllers/StatisticalController.cs
+++ b/Wms/Wms/Controllers/StatisticalController.cs
@@ -6,6 +6,7 @@
using WMS.Entity.DataEntity;
using WMS.IBLL.IDataServer;
using System.Security.Claims;
+using System.Threading.Tasks;
namespace Wms.Controllers
{
@@ -40,13 +41,19 @@
/// <summary>
/// 鑾峰彇搴撳瓨鎬婚噺
/// </summary>
- /// <param name="skuNo"></param>
- /// <param name="skuName"></param>
+ /// <param name="selectType">鏌ヨ绫诲瀷</param>
+ /// <param name="skuNo">鐗╂枡缂栫爜</param>
+ /// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <param name="ownerNo">璐т富缂栫爜</param>
+ /// <param name="ownerName">璐т富鍚嶇О</param>
+ /// <param name="lotNo">鎵规</param>
+ /// <param name="status">搴撳瓨鐘舵��</param>
+ /// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
[HttpGet]
- public IActionResult GetInventoryList(string skuNo, string skuName, string ownerNo, string ownerName, string lotNo)
+ public async Task<IActionResult> GetInventoryList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus)
{
- List<MateDataStockDto> StockList = _stock.GetDataStockList(skuNo, skuName, ownerNo, ownerName, lotNo);
+ List<MateDataStockDto> StockList = await _stock.GetDataStockList(selectType, skuNo, skuName, ownerNo, ownerName, lotNo, status, inspectStatus);
return Ok(new
{
data = StockList,
@@ -68,9 +75,9 @@
/// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
[HttpGet]
- public IActionResult GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus, string ownerNo, string ownerName,string startTime,string endTime)
+ public IActionResult GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime)
{
- List<StockDetailDto> stockDetailsList = _stock.GetInventoryList1(skuNo, skuName, lotNo, locatNo, palletNo, status, inspectStatus, ownerNo, ownerName, startTime,endTime);
+ List<StockDetailDto> stockDetailsList = _stock.GetInventoryList1(skuNo, skuName, lotNo, locatNo, palletNo, status, inspectStatus, ownerNo, ownerName, startTime, endTime);
return Ok(new
{
data = stockDetailsList,
@@ -98,7 +105,7 @@
/// <param name="inspectStatus">璐ㄩ噺鐘舵��</param>
/// <returns></returns>
[HttpGet]
- public IActionResult GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName,string startTime,string endTIme)
+ public IActionResult GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTIme)
{
try
{
@@ -341,7 +348,7 @@
/// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
[HttpGet]
- public IActionResult GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus,string startTime,string endTime)
+ public IActionResult GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus, string startTime, string endTime)
{
List<StockDetailDto> stockDetailsList = _stock.GetInventoryList1DaoChu(skuNo, skuName, lotNo, locatNo, palletNo, status, inspectStatus, startTime, endTime);
return Ok(new
--
Gitblit v1.8.0