From 1c2541b283ce6ba855e67c476412dffe2c693480 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期三, 11 六月 2025 13:56:23 +0800 Subject: [PATCH] Merge branch 'csc' --- Pda/View/AsnSetting/WorkshopIn.html | 573 ++++++++++++++ Wms/WMS.BLL/HttpServer.cs | 320 +++++++ Wms/Wms/Controllers/UpApiController.cs | 2 Wms/WMS.BLL/Logic/AllotSku.cs | 2 Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 13 Pda/View/SoSetting/ExNoticeOut.html | 29 Wms/Wms/Controllers/PdaAsnController.cs | 54 + Wms/WMS.Entity/BllAsnEntity/BllPalletBind.cs | 2 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 458 +++++++++++ Wms/WMS.IBLL/IHttpServer.cs | 10 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 2 Pda/View/AsnSetting/productEnterQuantity.html | 9 Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs | 6 Wms/Wms/Controllers/PdaSoController.cs | 44 + Pda/View/SoSetting/WorkshopOut.html | 549 ++++++++++++++ Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 203 ++++ Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs | 10 Wms/Model/InterFaceModel/AsnModels.cs | 3 Wms/Wms/Controllers/DownApiController.cs | 34 19 files changed, 2,280 insertions(+), 43 deletions(-) diff --git a/Pda/View/AsnSetting/WorkshopIn.html b/Pda/View/AsnSetting/WorkshopIn.html index e69de29..6a4eeac 100644 --- a/Pda/View/AsnSetting/WorkshopIn.html +++ b/Pda/View/AsnSetting/WorkshopIn.html @@ -0,0 +1,573 @@ +<!DOCTYPE html> +<html> + +<head> + <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> + <meta charset="UTF-8" /> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> --> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> --> + <meta http-equiv="X-UA-Compatible" content="ie=edge" /> + <title>Boxline PDA</title> + + <link rel="stylesheet" href="/layui/css/layui.css" /> + <link rel="stylesheet" href="/css/style.css" /> + <script src="/js/adaptive.js"></script> + <link rel="stylesheet" href="/css/my.css" /> + <style type="text/css"> + td { + word-break: break-all; + word-wrap: break-word; + } + + .layui-form-switch { + margin-top: 0; + } + + /* 鏍囩鏍峰紡 */ + .tableyang-this a { + margin: 10px 10px 0px 0px; + line-height: 30px; + width: 100px; + color: #999; + text-align: center; + float: left; + background: #f7f7f7; + user-select: none; + position: relative; + z-index: 1; + cursor: pointer; + border-radius: 5px; + border: 1px solid #ccc; + transition: all 0.3s ease; + } + + .tableyang-this a.hover { + color: #5298ff; + background-color: #eff2ff; + border: 1px solid #5298ff; + } + + /* 鍐呭灞呬腑 */ + .tableyang-tab { + display: flex; + /* justify-content: center; */ + /* align-items: center; */ + flex-direction: column; + height: 90vh; + } + + /* 蹇呯敤鏍峰紡 */ + .tableyang-2, + .tableyang-3 { + display: none; + } + + ul { + list-style-type: none; + padding: 0; + } + + li { + cursor: pointer; + background-color: lightgray; + padding: 10px; + margin-bottom: 5px; + } + </style> + <link rel="stylesheet" href="/css/adapter.css" /> + <script src="../../js/jquery.js"></script> + <script src="../../js/jquery-3.5.1.min.js"></script> +</head> + +<body> + <div id="" class="main-content"> + + <div id="" class="layout-title"> + <table border="" cellspacing="" cellpadding=""> + <tr> + <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td> + <td class="title-text" lang>杞﹂棿鍏ュ簱</td> + <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> + </tr> + </table> + </div> + + <div id="" class="layout-sub-content"> + <div id="menuList" class="menu"> + <ul class="" style="text-align: center;"> + <li><a href="../index.html" lang>涓婚〉</a></li> + <!-- <li><a href="productEnterConfirm.html">鍏ュ簱淇℃伅纭</a></li> --> + <li><a href="../login.html" lang>閲嶆柊鐧诲綍</a></li> + </ul> + </div> + + <button id="option1" class="layout-btn" type="button">鏍囩</button> + <button id="option2" class="layout-btn" type="button">鏁伴噺</button> + <br /><br /> + + <!-- 鏈夌爜 --> + <div id="content1"> + <div id="zongDiv" class="layout-bill-info" style="height: 285px;"> + <form class="layui-form" action=""> + + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵樼洏鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="PalletNo" type="text" lay-verify="stock" lang langholder + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="BOX" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>澶栫鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="BoxCode" type="text" lay-verify="required" lang langholder + placeholder="璇锋壂鎻忓绠辨潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鏁伴噺锛�</label> + <div class="layui-input-block"> + <input id="BoxNum" type="number" lay-verify="required" lang langholder + placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" class="layui-input" + oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + </div> + </div> + <div id="" class="layui-form-item layout-dropdownlist"> + <label class="layui-form-label" lang>杞﹂棿锛�</label> + <div class="layui-input-block" id="selectAreaDiv"> + <select id="area" lay-filter="getarea" lay-search> + <option value="B06">1002</option> + <option value="B09">1003涓�妤�</option> + <option value="B07">1003浜屾ゼ</option> + </select> + <img src="/assets/down_arraw.png"> + </div> + </div> + <table class="layout-tbl-input" border="" cellspacing="" cellpadding=""> + <tr> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>鎵规:</label> + <div class="layui-input-block"> + <input id="LotNo" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>鐗╂枡鍚嶇О锛�</label> + <div class="layui-input-block"> + <input id="SkuName" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + + </tr> + </table> + + <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> + <tr> + <td style="width: 23%;"></td> + <td> + <button class="layout-btn layout-btn-red" lang type="button" lay-submit + lay-filter="formBind">缁戝畾鍒版墭鐩�</button> + </td> + <td style="width: 33%;"></td> + + </tr> + </table> + </form> + </div> + + </div> + <!-- 鏃犵爜 --> + <div id="content2"> + <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> + <form class="layui-form" id="form2" action=""> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鐗╂枡缂栫爜锛�</label> + <div class="layui-input-block"> + <input id="SkuNo" type="text" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" autocomplete="off" class="layui-input"> + </div> + </div><div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵规鍙凤細</label> + <div class="layui-input-block"> + <input id="LotNo2" type="text" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ユ壒娆�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵樼洏鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="PalletNo2" type="text" lay-verify="stock" lang langholder + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鐗╂枡鏁伴噺锛�</label> + <div class="layui-input-block"> + <input id="SkuQty2" type="number" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ョ墿鏂欐暟閲�" autocomplete="off" class="layui-input" + oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + </div> + </div> + <div id="" class="layui-form-item layout-dropdownlist"> + <label class="layui-form-label" lang>杞﹂棿锛�</label> + <div class="layui-input-block" id="selectAreaDiv2"> + <select id="area2" lay-filter="getarea2" lay-search> + <option value="B06">1002</option> + <option value="B09">1003涓�妤�</option> + <option value="B07">1003浜屾ゼ</option> + </select> + <img src="/assets/down_arraw.png"> + </div> + </div> + <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> + <tr> + <td style="width: 23%;"></td> + <td> + <button class="layout-btn layout-btn-red" lang type="button" lay-submit + lay-filter="formBind">缁戝畾鍒版墭鐩�</button> + </td> + <td style="width: 33%;"></td> + + </tr> + </table> + + </form> + </div> + + <br> + <br> + <div id="demodiv1"> + <br><br><br><br><br><br><br> + </div> + + + <!-- <div id="" class="cut-line"> + <img src="/assets/fengexian.png"> + </div> --> + + <!-- <div class="layout-tbl-paging" id=""> + <table id="tableBoxList1" class="tbl-box-list" border="" cellspacing="" cellpadding=""> + <tr> + <th lang style="width: 15%;">鐗╂枡缂栫爜</th> + <th lang style="width: 35%;">鐗╂枡鍚嶇О</th> + <th lang style="width: 25%;">鎵规</th> + <th lang style="width: 15%;">鐗╂枡鏁伴噺</th> + <th lang style="width: 10%;">鎿嶄綔</th> + </tr> + <tr id="boxCell" style="display: none;"> + <td name="code">AG000001</td> + <td name="name">鐤嫍鍚嶇О鍚嶇О鍚嶇О</td> + <td name="lotNo">鎵规鍙�</td> + <td name="num">30</td> + <td name="del"> + <div id="" class="tbl-btn-del" lang> + 鍒犻櫎 + </div> + </td> + </tr> + </table> + + <table id="tableBoxPages1" class="tbl-box-pages" border="" cellspacing="" cellpadding=""> + <tr> + <td class="page-prev">涓婁竴椤�</td> + <td class="page-num page-num-select">1</td> + <td class="page-num">2</td> + <td class="page-num">3</td> + <td class="page-num">4</td> + <td class="page-num">5</td> + <td class="page-next">涓嬩竴椤�</td> + </tr> + </table> + </div> --> + + </div> + + </div> + </div> + <script src="/js/jquery-3.5.1.min.js"></script> + <script src="/layui/layui.js"></script> + <script src="/js/public.js"></script> + <script src="/js/language.js"></script> + <script src="/js/jquery.cookie.js"></script> + <script> + layui.use(['form', 'jquery'], function () { + var form = layui.form + + /* 鏍囩鍒囨崲浠g爜 */ + $('#demodiv').hide(); + $('#demodiv1').hide(); + var xianshiyemian = 0; + + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + $('#content2').hide(); + $(document).ready(function () { + $('#option1').click(function () { + // qingkong(); + xianshiyemian = 0; + $('#content1').show(); + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + + $('#content2').hide(); + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + }); + + $('#option2').click(function () { + // qingkong(); + xianshiyemian = 1; + $('#content1').hide(); + $('#option1').attr("style", "background-color: #999;width: 50%;float: left;text-align: center;"); //榛樿棰滆壊 + + + $('#content2').show(); + $('#option2').attr("style", "background-color: red;width: 50%;float: right;text-align: center;"); //閫変腑鍚庨鑹� + + }); + }); + + /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ + + initLanguage() + setLanguage() + + + //鏄惁杩炵画缁勬墭 + isContinue = "0"; + + + // 鎵樼洏鐮佹枃鏈敼鍙樻椂瑙﹀彂 + $("#PalletNo").on('input', function () { + + if ($("#PalletNo").val() == "" || $("#PalletNo").val().length < 8) { + return; + } + if ($("#PalletNo").val().length >= 8) { + $("#PalletNo").val($("#PalletNo").val().substr(-8)) + } + checkPalletStat() + }) + // 鎵樼洏鐮佹枃鏈敼鍙樻椂瑙﹀彂-鏁伴噺 + $("#PalletNo1").on('input', function () { + + if ($("#PalletNo1").val() == "" || $("#PalletNo1").val().length < 8) { + return; + } + if ($("#PalletNo1").val().length >= 8) { + $("#PalletNo1").val($("#PalletNo1").val().substr(-8)) + } + checkPalletStat() + }) + + // 鍒ゆ柇鎵樼洏鐮佹槸鍚﹀彲鐢� + function checkPalletStat() { + if (xianshiyemian == 0) { + var param = { + "PalletNo": $("#PalletNo").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + $("#BoxCode").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + else if (xianshiyemian == 1) { + var param = { + "PalletNo": $("#PalletNo1").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + + $("#SkuQty").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + + } + + + //绠辩爜鍥炶溅浜嬩欢 + $("#BoxCode").keydown(function (e) { + if (e.keyCode === 13) { + if ($("#BoxCode").val() == "") { + layer.msg('璇峰厛鎵弿绠辩爜', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return + } + checkBoxInfo() + } + }); + + //绠卞洖杞︿簨浠� + function checkBoxInfo() { + + + var param = { + "boxNo": $("#BoxCode").val(), + } + synData(IP + "/PdaAsn/GetWmsBoxInfos", param, 'get', function (res) { + + if (res.code == 0) { //鎴愬姛 + $("#BoxNum").val(res.data[0].Qty); + $("#SkuName").val(res.data[0].SkuName); + $("#LotNo").val(res.data[0].LotNo); + + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + + } + }); + + } + + //缁戝畾鍒版墭鐩樹簨浠� + form.on('submit(formBind)', function (data) { + if (xianshiyemian == 0) { + + if ($("#PalletNo").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#BoxCode").val() == "") { + layer.msg('璇锋壂鎻忓绠辨潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo").val(), + BoxNo: $("#BoxCode").val(), + SkuQty: parseFloat($("#BoxNum").val()), //鐗╂枡鏁伴噺 + AreaNo:$("#area").val(), + TableType: xianshiyemian, + } + console.log(param) + //缁勭洏 + sendData(IP + "/PdaAsn/ChejianIn", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + $("#BoxCode").val(""); + $("#BoxNum").val(""); + $("#SkuName").val(""); + $("#LotNo").val(""); + + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + else if (xianshiyemian == 1) { + if ($("#bar1").val() == "") { + layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#SkuNo").val() == "") { + layer.msg('璇疯緭鍏ョ墿鏂�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#PalletNo2").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo2").val(), + SkuNo: $("#SkuNo").val(), + LotNo: $("#LotNo2").val(), + SkuQty: parseFloat($("#SkuQty2").val()), //鐗╂枡鏁伴噺 + AreaNo:$("#area").val(), + TableType: xianshiyemian, + } + console.log(param) + //缁勭洏 + sendData(IP + "/PdaAsn/ChejianIn", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + $("#PalletNo2").val(""); + $("#SkuNo").val(""); + $("#SkuQty2").val(""); + $("#LotNo2").val(""); + + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + + + + /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ + + $("#menuImg").click(function (e) { + e.stopPropagation() + + if ($("#menuList").is(":hidden")) { + $("#menuList").show() + } else { + $("#menuList").hide() + } + }) + $('body').click(function () { + $("#menuList").hide() + }) + }) + </script> +</body> + +</html> \ No newline at end of file diff --git a/Pda/View/AsnSetting/productEnterQuantity.html b/Pda/View/AsnSetting/productEnterQuantity.html index 4eb6ee8..ed63d72 100644 --- a/Pda/View/AsnSetting/productEnterQuantity.html +++ b/Pda/View/AsnSetting/productEnterQuantity.html @@ -1086,14 +1086,21 @@ } } asnDetails.forEach(element => { - console.log(element); + console.log(element.SkuNo ); + console.log( res.data[0].SkuNo); + console.log(element.SkuNo == res.data[0].SkuNo); + console.log(element.LotNo == res.data[0].LotNo); if (element.SkuNo == res.data[0].SkuNo && element.LotNo == res.data[0].LotNo) { + console.log("asdfasdfsadf"); + var sel = 'dd[lay-value=' + element.id + ']'; $('#goodSelect').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this'); bl = true; } }); + console.log(bl); + if (!bl) { layer.msg("姝ょ鐗╂枡涓嶇鍚堣鍏ュ簱鍗曪紝璇锋牳瀹�!", { icon: 2, diff --git a/Pda/View/SoSetting/ExNoticeOut.html b/Pda/View/SoSetting/ExNoticeOut.html index 0643eae..26b6c46 100644 --- a/Pda/View/SoSetting/ExNoticeOut.html +++ b/Pda/View/SoSetting/ExNoticeOut.html @@ -147,13 +147,22 @@ //閫変腑鍗曟嵁浜嬩欢 form.on('select(getbar)', function (data) { - + $("#PalletNo").empty() + $("#PalletNo").append('<option value =>' + '</option>'); + form.render('select'); if (data.value == "") { return; } updateGoodList(); + }); - + //閫変腑鍗曟嵁鏄庣粏浜嬩欢 + form.on('select(goodSelect)', function (data) { + + $("#PalletNo").empty() + $("#PalletNo").append('<option value =>' + '</option>'); + form.render('select'); + }); $("#selectDiv").click(function () { var input = $('select[id="bar"]').next().find('.layui-select-title input') var val = input.val() @@ -163,6 +172,17 @@ $('select[id="bar"]').next().find('.layui-select-title input').val(val) }) }) + + $("#selectPalletNo").click(function () { + var input = $('select[id="PalletNo"]').next().find('.layui-select-title input') + var val = input.val() + //鍏堟洿鏂颁竴涓嬪嚭搴撳崟 + updatePalletNoList(function (data) { + $('select[id="PalletNo"]').next().addClass('layui-form-selected') + $('select[id="PalletNo"]').next().find('.layui-select-title input').val(val) + }) + }) + //鍒濆鍖栨覆鏌� 鍑哄簱鍗� function updateBillList(callback) { var input = $('select[id="bar"]').next().find('.layui-select-title input') @@ -271,9 +291,10 @@ form.render('select'); var param = { - soNo:$("#bar").val() + SoNo:$("#bar").val(), + SoDetailId:$("#goodSelect").val(), }; - sendData(IP + "/PdaCr/GetPalletNoListBySoNo", param, 'get', function (res) { + sendData(IP + "/PdaSo/GetPalletListBySo", param, 'post', function (res) { if (res.code == 0) { //鎴愬姛 for (var i = 0; i < res.data.length; i++) { $("#PalletNo").append('<option value =' + res.data[i] + '>' + res.data[i]+ diff --git a/Pda/View/SoSetting/WorkshopOut.html b/Pda/View/SoSetting/WorkshopOut.html index e69de29..95e1c08 100644 --- a/Pda/View/SoSetting/WorkshopOut.html +++ b/Pda/View/SoSetting/WorkshopOut.html @@ -0,0 +1,549 @@ +<!DOCTYPE html> +<html> + +<head> + <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> + <meta charset="UTF-8" /> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> --> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> --> + <meta http-equiv="X-UA-Compatible" content="ie=edge" /> + <title>Boxline PDA</title> + + <link rel="stylesheet" href="/layui/css/layui.css" /> + <link rel="stylesheet" href="/css/style.css" /> + <script src="/js/adaptive.js"></script> + <link rel="stylesheet" href="/css/my.css" /> + <style type="text/css"> + td { + word-break: break-all; + word-wrap: break-word; + } + + .layui-form-switch { + margin-top: 0; + } + + /* 鏍囩鏍峰紡 */ + .tableyang-this a { + margin: 10px 10px 0px 0px; + line-height: 30px; + width: 100px; + color: #999; + text-align: center; + float: left; + background: #f7f7f7; + user-select: none; + position: relative; + z-index: 1; + cursor: pointer; + border-radius: 5px; + border: 1px solid #ccc; + transition: all 0.3s ease; + } + + .tableyang-this a.hover { + color: #5298ff; + background-color: #eff2ff; + border: 1px solid #5298ff; + } + + /* 鍐呭灞呬腑 */ + .tableyang-tab { + display: flex; + /* justify-content: center; */ + /* align-items: center; */ + flex-direction: column; + height: 90vh; + } + + /* 蹇呯敤鏍峰紡 */ + .tableyang-2, + .tableyang-3 { + display: none; + } + + ul { + list-style-type: none; + padding: 0; + } + + li { + cursor: pointer; + background-color: lightgray; + padding: 10px; + margin-bottom: 5px; + } + </style> + <link rel="stylesheet" href="/css/adapter.css" /> + <script src="../../js/jquery.js"></script> + <script src="../../js/jquery-3.5.1.min.js"></script> +</head> + +<body> + <div id="" class="main-content"> + + <div id="" class="layout-title"> + <table border="" cellspacing="" cellpadding=""> + <tr> + <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td> + <td class="title-text" lang>杞﹂棿鍑哄簱</td> + <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> + </tr> + </table> + </div> + + <div id="" class="layout-sub-content"> + <div id="menuList" class="menu"> + <ul class="" style="text-align: center;"> + <li><a href="../index.html" lang>涓婚〉</a></li> + <!-- <li><a href="productEnterConfirm.html">鍏ュ簱淇℃伅纭</a></li> --> + <li><a href="../login.html" lang>閲嶆柊鐧诲綍</a></li> + </ul> + </div> + + <button id="option1" class="layout-btn" type="button">鏍囩</button> + <button id="option2" class="layout-btn" type="button">鏁伴噺</button> + <br /><br /> + + <!-- 鏈夌爜 --> + <div id="content1"> + <div id="zongDiv" class="layout-bill-info" style="height: 285px;"> + <form class="layui-form" action=""> + + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵樼洏鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="PalletNo" type="text" lay-verify="stock" lang langholder + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="BOX" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>澶栫鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="BoxCode" type="text" lay-verify="required" lang langholder + placeholder="璇锋壂鎻忓绠辨潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + + <table class="layout-tbl-input" border="" cellspacing="" cellpadding=""> + <tr> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" style=" width: 21%;" lang>鎵规:</label> + <div class="layui-input-block" style=" width: 79%;margin-left: 21%;" > + <input id="LotNo" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + </tr> + <tr> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" style=" width: 21%;" lang>鐗╂枡鍚嶇О锛�</label> + <div class="layui-input-block" style=" width: 79%;margin-left: 21%;" > + <input id="SkuName" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + </tr> + </table> + + <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> + <tr> + <td style="width: 23%;"></td> + <td> + <button class="layout-btn layout-btn-red" lang type="button" lay-submit + lay-filter="formBind">鍑哄簱</button> + </td> + <td style="width: 33%;"></td> + + </tr> + </table> + </form> + </div> + + </div> + <!-- 鏃犵爜 --> + <div id="content2"> + <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> + <form class="layui-form" id="form2" action=""> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鐗╂枡缂栫爜锛�</label> + <div class="layui-input-block"> + <input id="SkuNo" type="text" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" autocomplete="off" class="layui-input"> + </div> + </div><div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵规鍙凤細</label> + <div class="layui-input-block"> + <input id="LotNo2" type="text" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ユ壒娆�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵樼洏鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="PalletNo2" type="text" lay-verify="stock" lang langholder + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鐗╂枡鏁伴噺锛�</label> + <div class="layui-input-block"> + <input id="SkuQty2" type="number" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ョ墿鏂欐暟閲�" autocomplete="off" class="layui-input" + oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + </div> + </div> + <div id="" class="layui-form-item layout-dropdownlist"> + <label class="layui-form-label" lang>杞﹂棿锛�</label> + <div class="layui-input-block" id="selectAreaDiv2"> + <select id="area2" lay-filter="getarea2" lay-search> + <option value="B06">1002</option> + <option value="B09">1003涓�妤�</option> + <option value="B07">1003浜屾ゼ</option> + </select> + <img src="/assets/down_arraw.png"> + </div> + </div> + <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> + <tr> + <td style="width: 23%;"></td> + <td> + <button class="layout-btn layout-btn-red" lang type="button" lay-submit + lay-filter="formBind">鍑哄簱</button> + </td> + <td style="width: 33%;"></td> + + </tr> + </table> + + </form> + </div> + + <br> + <br> + <div id="demodiv1"> + <br><br><br><br><br><br><br> + </div> + + + <!-- <div id="" class="cut-line"> + <img src="/assets/fengexian.png"> + </div> --> + + <!-- <div class="layout-tbl-paging" id=""> + <table id="tableBoxList1" class="tbl-box-list" border="" cellspacing="" cellpadding=""> + <tr> + <th lang style="width: 15%;">鐗╂枡缂栫爜</th> + <th lang style="width: 35%;">鐗╂枡鍚嶇О</th> + <th lang style="width: 25%;">鎵规</th> + <th lang style="width: 15%;">鐗╂枡鏁伴噺</th> + <th lang style="width: 10%;">鎿嶄綔</th> + </tr> + <tr id="boxCell" style="display: none;"> + <td name="code">AG000001</td> + <td name="name">鐤嫍鍚嶇О鍚嶇О鍚嶇О</td> + <td name="lotNo">鎵规鍙�</td> + <td name="num">30</td> + <td name="del"> + <div id="" class="tbl-btn-del" lang> + 鍒犻櫎 + </div> + </td> + </tr> + </table> + + <table id="tableBoxPages1" class="tbl-box-pages" border="" cellspacing="" cellpadding=""> + <tr> + <td class="page-prev">涓婁竴椤�</td> + <td class="page-num page-num-select">1</td> + <td class="page-num">2</td> + <td class="page-num">3</td> + <td class="page-num">4</td> + <td class="page-num">5</td> + <td class="page-next">涓嬩竴椤�</td> + </tr> + </table> + </div> --> + + </div> + + </div> + </div> + <script src="/js/jquery-3.5.1.min.js"></script> + <script src="/layui/layui.js"></script> + <script src="/js/public.js"></script> + <script src="/js/language.js"></script> + <script src="/js/jquery.cookie.js"></script> + <script> + layui.use(['form', 'jquery'], function () { + var form = layui.form + + /* 鏍囩鍒囨崲浠g爜 */ + $('#demodiv').hide(); + $('#demodiv1').hide(); + var xianshiyemian = 0; + + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + $('#content2').hide(); + $(document).ready(function () { + $('#option1').click(function () { + // qingkong(); + xianshiyemian = 0; + $('#content1').show(); + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + + $('#content2').hide(); + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + }); + + $('#option2').click(function () { + // qingkong(); + xianshiyemian = 1; + $('#content1').hide(); + $('#option1').attr("style", "background-color: #999;width: 50%;float: left;text-align: center;"); //榛樿棰滆壊 + + + $('#content2').show(); + $('#option2').attr("style", "background-color: red;width: 50%;float: right;text-align: center;"); //閫変腑鍚庨鑹� + + }); + }); + + /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ + + initLanguage() + setLanguage() + + + //鏄惁杩炵画缁勬墭 + isContinue = "0"; + + + // 鎵樼洏鐮佹枃鏈敼鍙樻椂瑙﹀彂 + $("#PalletNo").on('input', function () { + + if ($("#PalletNo").val() == "" || $("#PalletNo").val().length < 8) { + return; + } + if ($("#PalletNo").val().length >= 8) { + $("#PalletNo").val($("#PalletNo").val().substr(-8)) + } + checkPalletStat() + }) + // 鎵樼洏鐮佹枃鏈敼鍙樻椂瑙﹀彂-鏁伴噺 + $("#PalletNo1").on('input', function () { + + if ($("#PalletNo1").val() == "" || $("#PalletNo1").val().length < 8) { + return; + } + if ($("#PalletNo1").val().length >= 8) { + $("#PalletNo1").val($("#PalletNo1").val().substr(-8)) + } + checkPalletStat() + }) + + // 鍒ゆ柇鎵樼洏鐮佹槸鍚﹀彲鐢� + function checkPalletStat() { + if (xianshiyemian == 0) { + var param = { + "PalletNo": $("#PalletNo").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + $("#BoxCode").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + else if (xianshiyemian == 1) { + var param = { + "PalletNo": $("#PalletNo1").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + + $("#SkuQty").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + + } + + + //绠辩爜鍥炶溅浜嬩欢 + $("#BoxCode").keydown(function (e) { + if (e.keyCode === 13) { + if ($("#BoxCode").val() == "") { + layer.msg('璇峰厛鎵弿绠辩爜', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return + } + checkBoxInfo() + } + }); + + //绠卞洖杞︿簨浠� + function checkBoxInfo() { + var param = { + "BoxNo": $("#BoxCode").val(), + } + sendData(IP + "/PdaSo/GetWmsBoxInfos", param, 'get', function (res) { + + if (res.code == 0) { //鎴愬姛 + $("#SkuName").val(res.data[0].SkuName); + $("#LotNo").val(res.data[0].LotNo); + + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + + } + }); + + } + + //缁戝畾鍒版墭鐩樹簨浠� + form.on('submit(formBind)', function (data) { + if (xianshiyemian == 0) { + + if ($("#PalletNo").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#BoxCode").val() == "") { + layer.msg('璇锋壂鎻忓绠辨潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo").val(), + BoxNo: $("#BoxCode").val(), + TableType: xianshiyemian, + } + //缁勭洏 + sendData(IP + "/PdaSo/ChejianPick", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + $("#BoxCode").val(""); + $("#SkuName").val(""); + $("#LotNo").val(""); + + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + else if (xianshiyemian == 1) { + if ($("#bar1").val() == "") { + layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#SkuNo").val() == "") { + layer.msg('璇疯緭鍏ョ墿鏂�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#PalletNo2").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo2").val(), + SkuNo: $("#SkuNo").val(), + LotNo: $("#LotNo2").val(), + SkuQty: parseFloat($("#SkuQty2").val()), //鐗╂枡鏁伴噺 + AreaNo:$("#area").val(), + TableType: xianshiyemian, + } + console.log(param) + //缁勭洏 + sendData(IP + "/PdaAsn/ChejianIn", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + $("#PalletNo2").val(""); + $("#SkuNo").val(""); + $("#SkuQty2").val(""); + $("#LotNo2").val(""); + + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + + + + /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ + + $("#menuImg").click(function (e) { + e.stopPropagation() + + if ($("#menuList").is(":hidden")) { + $("#menuList").show() + } else { + $("#menuList").hide() + } + }) + $('body').click(function () { + $("#menuList").hide() + }) + }) + </script> +</body> + +</html> \ No newline at end of file diff --git a/Wms/Model/InterFaceModel/AsnModels.cs b/Wms/Model/InterFaceModel/AsnModels.cs index c46db3c..1673222 100644 --- a/Wms/Model/InterFaceModel/AsnModels.cs +++ b/Wms/Model/InterFaceModel/AsnModels.cs @@ -78,6 +78,9 @@ public string HouseNo { get; set; } public string RoadwayNo { get; set; } public string Ceng { get; set; } + public int palletNum { get; set; } + + public string locate { get; set; } } diff --git a/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs b/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs index 38ea760..871e349 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs @@ -24,7 +24,8 @@ /// Desc:澶栫鏉$爜 /// </summary> public string BoxNo { get; set; } - + public string SkuNo { get; set; } + /// <summary> /// Desc:鏄惁杩炵画缁勬墭 /// </summary> @@ -100,6 +101,11 @@ /// </summary> public string BoxLevel { get; set; } - + /// <summary> + /// 杞﹂棿鍖哄煙 1002 1003涓�妤� 1003浜屾ゼ + /// </summary> + public string AreaNo { get; set; } + + } } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 8bf3ab5..3b6b5d6 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -2415,6 +2415,464 @@ } } + /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<BoxInfoDto> GetWmsBoxInfos(string boxNo) + { + try + { + if (string.IsNullOrEmpty(boxNo)) + { + throw new Exception("璇锋壂鎻忓绠辨潯鐮�!"); + } + + string sqlString = $@"SELECT BoxNo, SkuNo, SkuName, LotNo, BitBoxMark, SUM(Qty) as Qty FROM BllBoxInfo + WHERE IsDel = '0' and Status='0' and BoxNo = '{boxNo}' + GROUP BY BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + + if (models.Count != 0) + { + return models; + } + else + { + throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�"); + } + + } + catch (Exception ex) + { + throw ex; + } + } + + + public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId) + { + try + { + #region MyRegion + + if (string.IsNullOrWhiteSpace(palletNo)) + { + throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); + } + if (string.IsNullOrWhiteSpace(boxNo)) + { + throw new Exception("绠卞彿涓嶈兘涓虹┖"); + } + if (qty<=0) + { + throw new Exception("鏁伴噺涓嶈兘灏忕瓑0"); + } + var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo).ToList(); + if (boxInfo.Count == 0) + { + throw new Exception("鏈煡璇㈠埌褰撳墠绠卞彿淇℃伅"); + } + var boxInfoOne = boxInfo.First(); + var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (pall == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅"); + } + #endregion + + //寮�鍚簨鍔� + Db.BeginTran(); + //褰撳墠鏃堕棿 + var comTime = DateTime.Now; + + #region 鍖呰 + + var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == boxInfoOne.SkuNo); + var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo); + + var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 + var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 + + //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺 + new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum); + + #endregion + + var msgStr = $"绠卞彿涓簕boxNo}"; + var boxInfoList = new List<BllBoxInfo>(); + + + boxInfoList.AddRange(boxInfo); + + #region 搴撳瓨鏄庣粏 + + var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo); + if (area == null) + { + throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖"); + } + + var tags = "0"; + + // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� + var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo== boxInfoOne.SkuNo && m.LotNo == boxInfoOne.LotNo && m.PalletNo == palletNo); + var sdId1 = 0; + if (sd1 != null) + { + if (sd1.AreaNo!= areaNo) + { + throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓"); + } + sdId1 = sd1.Id; + // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 + sd1.Qty += qty; + sd1.CompleteTime = comTime; + sd1.UpdateUser = userId; + sd1.UpdateTime = comTime; + + Db.Updateable(sd1).ExecuteCommand(); + } + else + { + var sd2 = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.AreaNo)); + if (sd2.Count(m=>m.AreaNo!= areaNo) > 0) + { + throw new Exception("褰撳墠鎵樼洏浣嶇疆涓庨�夋嫨鐨勪笉鍚岋紝璇锋牳瀹�"); + } + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 + sd1 = new DataStockDetail() + { + ASNNo = "", + LotNo = boxInfoOne.LotNo, + LotText = boxInfoOne.LotText, + SupplierLot = boxInfoOne.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = area.AreaNo,//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = palletNo, + PalletTags = tags, + CompleteTime = comTime, + ProductionTime = boxInfoOne.ProductionTime, + ExpirationTime = boxInfoOne.ExpirationTime, + Status = "0", + InspectMark = boxInfoOne.InspectMark, + InspectStatus = sku.IsInspect, + BitPalletMark = "1", + PackagNo = sku.PackagNo, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + + //娣诲姞搴撳瓨鏄庣粏 + sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + } + #endregion + + // 鏇存敼绠辨敮鍏崇郴琛� + decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� + + + //鏍囩缁勬墭 + var boxGroup = boxInfo.GroupBy(m => m.BoxNo).ToList(); + foreach (var g in boxGroup) + { + decimal boxFullQty = 0;//绠卞唴鎬绘暟閲� + foreach (var box in g) + { + if (box.BindNo != null && box.BindNo != 0) + { + continue; + } + + + box.PalletNo = palletNo; + box.Status = "2"; + + box.CompleteTime = comTime; + box.UpdateTime = comTime; + box.UpdateUser = userId; + + //box.Qty = box.Qty; + //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1"; + + factQty += box.Qty; + boxFullQty += box.Qty; + + #region 搴撳瓨绠辩爜鏄庣粏 + var box2 = new DataBoxInfo() + { + StockDetailId = sdId1, + BoxNo = box.BoxNo, + BoxNo2 = box.BoxNo2, + BoxNo3 = box.BoxNo3, + PalletNo = box.PalletNo, + PalletNo2 = box.PalletNo2, + PalletNo3 = box.PalletNo3, + Qty = box.Qty, + FullQty = box.FullQty, + Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 + LotNo = box.LotNo, + LotText = box.LotText, + SkuNo = box.SkuNo, + SkuName = box.SkuName, + Standard = sku.Standard, + ProductionTime = box.ProductionTime, + SupplierLot = box.SupplierLot, + InspectStatus = sku.IsInspect, + InspectMark = box.InspectMark, + BitBoxMark = box.BitBoxMark, + ExpirationTime = box.ExpirationTime, + + CreateUser = 0, + CreateTime = comTime + }; + //娣诲姞搴撳瓨绠辩爜鏄庣粏 + Db.Insertable(box2).ExecuteCommand(); + #endregion + } + if (boxFullQty > bNum) + { + throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); + } + } + //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� + Db.Updateable(boxInfoList).ExecuteCommand(); + + + #region 搴撳瓨 + var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == boxInfoOne.LotNo); + if (dataStock != null) + { + dataStock.Qty += factQty; + Db.Updateable(dataStock).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = boxInfoOne.LotNo, + LotText = boxInfoOne.LotText, + Qty = qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = "0", + IsDel = "0", + CreateUser = userId, + CreateTime = comTime + }; + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + // 鏇存敼鎵樼洏浣跨敤鐘舵�� + var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';"; + ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� + //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; + //Db.Ado.ExecuteCommand(sqlStr); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", boxNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}銆亄msgStr}鐨勫叆搴撲俊鎭�", userId); + + //鎻愪氦浜嬪姟 + Db.CommitTran(); + + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + /// <summary> + /// 杞﹂棿缁戝畾鎵樼洏 涓嶈创鏍囩墿鏂� + /// </summary> + /// <param name="model"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void ChejianQtyIn(string palletNo, string skuNo, string lotNo, decimal qty, string areaNo, int userId) + { + try + { + #region MyRegion + + if (string.IsNullOrWhiteSpace(palletNo)) + { + throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); + } + if (string.IsNullOrWhiteSpace(skuNo)) + { + throw new Exception("鐗╂枡涓嶈兘涓虹┖"); + } + if (qty <= 0) + { + throw new Exception("鏁伴噺涓嶈兘灏忕瓑0"); + } + var skuInfo = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == skuNo); + if (skuInfo == null) + { + throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅"); + } + var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (pall == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅"); + } + #endregion + + //寮�鍚簨鍔� + Db.BeginTran(); + //褰撳墠鏃堕棿 + var comTime = DateTime.Now; + + #region 鍖呰 + + var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo); + + var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 + var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 + + //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺 + new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum); + + #endregion + + + + #region 搴撳瓨鏄庣粏 + + var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo); + if (area == null) + { + throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖"); + } + + var tags = "0"; + + // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� + var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo == skuNo && m.LotNo == lotNo && m.PalletNo == palletNo); + var sdId1 = 0; + if (sd1 != null) + { + if (sd1.AreaNo != areaNo) + { + throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓"); + } + sdId1 = sd1.Id; + // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 + sd1.Qty += qty; + sd1.CompleteTime = comTime; + sd1.UpdateUser = userId; + sd1.UpdateTime = comTime; + if (sd1.Qty >= pNum) + { + sd1.BitPalletMark = "0"; + } + Db.Updateable(sd1).ExecuteCommand(); + } + else + { + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 + sd1 = new DataStockDetail() + { + LotNo = lotNo, + SupplierLot = "", + SkuNo = skuInfo.SkuNo, + SkuName = skuInfo.SkuName, + Standard = skuInfo.Standard, + Qty = qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = area.AreaNo,//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = palletNo, + PalletTags = tags, + CompleteTime = comTime, + //ProductionTime = boxInfoOne.ProductionTime, + //ExpirationTime = boxInfoOne.ExpirationTime, + Status = "0", + InspectMark = "0", + InspectStatus = "1", + BitPalletMark = qty >= pNum ?"0" :"1", + PackagNo = skuInfo.PackagNo, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + + //娣诲姞搴撳瓨鏄庣粏 + sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + } + #endregion + + // 鏇存敼绠辨敮鍏崇郴琛� + decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� + + + #region 搴撳瓨 + var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == skuInfo.SkuNo && m.LotNo == lotNo); + if (dataStock != null) + { + dataStock.Qty += factQty; + Db.Updateable(dataStock).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = skuInfo.SkuNo, + SkuName = skuInfo.SkuName, + Standard = skuInfo.Standard, + LotNo = lotNo, + LotText = "", + Qty = qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = "0", + IsDel = "0", + CreateUser = userId, + CreateTime = comTime + }; + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + // 鏇存敼鎵樼洏浣跨敤鐘舵�� + var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';"; + ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� + //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; + Db.Ado.ExecuteCommand(sqlStr); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", skuNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}鐨勫叆搴撲俊鎭�", userId); + + //鎻愪氦浜嬪姟 + Db.CommitTran(); + + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + + } + #endregion // 鑾峰彇鍗曟嵁鍒楄〃 public List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 6c14235..bdd23ce 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -124,7 +124,7 @@ if (pinStockDetail != null) { - if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� + if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� { var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id!= pinStockDetail.Id).ToList(); if (pinStockDetails.Count(m=>m.SONo != notice.SONo) > 0) @@ -142,15 +142,19 @@ var newPalletInfo = await Db.Queryable<SysPallets>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Status == "0"); if (newPalletInfo == null) { - var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList(); + var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew &&(m.SkuNo != stockDetail.SkuNo || m.LotNo != stockDetail.LotNo)).ToList(); if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0) { throw Oops.Bah("鏂版墭鐩樹俊鎭笉瀛樺湪鎴栧凡琚娇鐢紒"); - } + } } - //淇敼鏂版墭鐩樼姸鎬� - newPalletInfo.Status = "1"; - await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); + else + { + //淇敼鏂版墭鐩樼姸鎬� + newPalletInfo.Status = "1"; + await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); + } + } var sd = new DataStockDetail(); @@ -458,9 +462,10 @@ if (isNew) { - sd.Qty = pickQty; - sd.LockQty = pickQty; - await Db.Updateable(sd).ExecuteCommandAsync(); + var sdnew = Db.Queryable<DataStockDetail>().First(m => m.Id == sdId); + sdnew.Qty = pickQty; + sdnew.LockQty = pickQty; + await Db.Updateable(sdnew).ExecuteCommandAsync(); } else { @@ -588,15 +593,18 @@ var newPalletInfo = await Db.Queryable<SysPallets>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Status == "0"); if (newPalletInfo == null) { - var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList(); + var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && (m.SkuNo != stockDetail.SkuNo && m.LotNo != stockDetail.LotNo)).ToList(); if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0) { throw Oops.Bah("鏂版墭鐩樹俊鎭笉瀛樺湪鎴栧凡琚娇鐢紒"); } } - //淇敼鏂版墭鐩樼姸鎬� - newPalletInfo.Status = "1"; - await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); + else + { + //淇敼鏂版墭鐩樼姸鎬� + newPalletInfo.Status = "1"; + await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); + } } if (isNew) @@ -1467,6 +1475,151 @@ } } + //杞﹂棿pda鎷h揣 + public async Task ChejianPick(string palletNo, string boxNo, int userId) + { + Db.BeginTran(); + try + { + #region 鍒ゆ柇 + + if (string.IsNullOrWhiteSpace(palletNo)) + { + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); + } + if (string.IsNullOrEmpty(boxNo)) + { + throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); + } + + //绠辩爜鏄庣粏 + List<DataBoxInfo> boxInfos; + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); + if (await boxInfo.CountAsync() == 0) + { + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + } + boxInfos = await boxInfo.ToListAsync(); + + //搴撳瓨鏄庣粏 + var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo); + if (stockDetail == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + } + var areaList = new List<string>() { "B06", "B07", "B09" }; + if (!areaList.Contains(stockDetail.AreaNo)) + { + throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�"); + } + //搴撳瓨鎬昏〃 + var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + if (stock == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); + } + #endregion + + + var pickQty = boxInfos.Sum(m => m.Qty); + + + //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� + stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� + stockDetail.Qty -= pickQty; + if (stockDetail.Qty == stockDetail.LockQty) + { + stockDetail.Status = "2"; + } + else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) + { + stockDetail.Status = "1"; + } + else + { + stockDetail.Status = "0"; + } + + if (stockDetail.Qty <= 0) + { + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stockDetail).ExecuteCommandAsync(); + } + stock.Qty -= pickQty; + //stock.LockQty -= pickQty; + if (stock.Qty <= 0) + { + await Db.Deleteable(stock).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stock).ExecuteCommandAsync(); + } + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (num2 <= 0) + { + //鏀瑰彉鎵樼洏鐘舵�� + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); + if (pallet == null) + { + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + await Db.Updateable(pallet).ExecuteCommandAsync(); + } + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", boxNo, "鎷h揣", $"鍦≒DA涓婂绠卞彿涓猴細{boxNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); + Db.CommitTran(); + } + catch (AppFriendlyException e) + { + Db.RollbackTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<BoxInfoDto> GetWmsBoxInfos(string boxNo) + { + try + { + if (string.IsNullOrEmpty(boxNo)) + { + throw new Exception("璇锋壂鎻忓绠辨潯鐮�!"); + } + + string sqlString = $@"SELECT BoxNo, SkuNo, SkuName, LotNo FROM DataBoxInfo + WHERE IsDel = '0' and BoxNo = '{boxNo}' + GROUP BY BoxNo,SkuNo,SkuName,LotNo; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + + if (models.Count != 0) + { + return models; + } + else + { + throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�"); + } + + } + catch (Exception ex) + { + throw ex; + } + } #endregion @@ -1521,6 +1674,27 @@ return allotList2; } + + + //鑾峰彇鎵樼洏涓惈鏈夌殑鎵ц涓殑鍗曟嵁 + public async Task<List<string>> GetPalletListBySo(string soNo, string soDetailId) + { + if (string.IsNullOrWhiteSpace(soNo))//鍒ゆ柇鎵樼洏鏄惁涓虹┖ + { + throw Oops.Bah("鍑哄簱鍗曚负绌猴紝璇烽�夋嫨鍑哄簱鍗�"); + } + if (string.IsNullOrWhiteSpace(soDetailId)) + { + throw Oops.Bah("鍑哄簱鏄庣粏涓虹┖锛岃閫夋嫨鐗╂枡-鎵规"); + } + + var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "0" && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId)).Select(m => m.PalletNo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync(); + return allotList; + + + } + + //鑾峰彇鎵樼洏涓惈鏈夌殑鎵ц涓殑鍗曟嵁 public async Task<List<string>> GetRunNoticeList(string type) @@ -2468,6 +2642,7 @@ throw Oops.Bah("闇�瑕佸灈鏁板ぇ浜庡簱瀛樺灈鏁帮紝璇烽噸鏂拌緭鍏�!"); } } + stockDetail = new AllotSku().GetDataListOrder(stockDetail); //鑾峰彇搴撳瓨鎬昏〃淇℃伅 var stock = await Db.Queryable<DataStock>().FirstAsync(s => s.IsDel == "0" && s.SkuNo == "100099"); //楠岃瘉搴撳瓨鎬昏〃鏄惁涓虹┖ @@ -2571,7 +2746,7 @@ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateTime = Db.GetDate(), //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� Msg = "Pda绌烘墭浠�" + s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index 4ef8b56..0322da7 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -1014,7 +1014,7 @@ skuList = skuList.Where(m => m.SkuNo == "100088").ToList(); } skuStrList = skuList.Select(m => m.SkuNo).ToList(); - var areaStr = new List<string>() { "B02", "B05", "B08" }; + var areaStr = new List<string>() { "B06", "B07", "B09" }; var stockRst = new StockServer(); var stockDetailRst = new StockDetailServer(); Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs index 81d4d68..4d3a0f6 100644 --- a/Wms/WMS.BLL/HttpServer.cs +++ b/Wms/WMS.BLL/HttpServer.cs @@ -26,6 +26,298 @@ private static readonly SqlSugarScope Db = DataContext.Db; public HttpServer() { } + + public OutCommandDto RequestPalletIn(string palletNo, string houseNo, int palletNum, string Strlocate) + { + return null; + //try + //{ + // #region 鍒ゆ柇 + // if (string.IsNullOrEmpty(palletNo)) + // { + // throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); + // } + // if (string.IsNullOrEmpty(houseNo)) + // { + // throw new Exception("浠撳簱鍙蜂笉鑳戒负绌�"); + // } + // if (palletNum <= 0) + // { + // throw new Exception("鎵樼洏鏁伴噺涓嶈兘灏忕瓑0"); + // } + // if (string.IsNullOrEmpty(Strlocate)) + // { + // throw new Exception("璧峰浣嶇疆涓嶈兘涓虹┖"); + // } + // //鑾峰彇鍌ㄤ綅淇℃伅 + // var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == houseNo && m.LocatNo == Strlocate); + // if (locateInfo == null) + // { + // throw new Exception("鏈煡璇㈠埌绌哄偍浣�"); + // } + // if (locateInfo.Flag != "0") + // { + // throw new Exception("褰撳墠浣嶇疆鏍囪瘑鐘舵�佹槸闈炴甯哥殑"); + // } + + // #endregion + + // #region MyRegion + + // var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList(); + // if (stockDetail.Count > 0) + // { + // throw new Exception("褰撳墠鎵樼洏鍦ㄥ簱鍐呭凡鏈夊簱瀛樹俊鎭紝璇锋牳瀹�"); + // } + + // //鑾峰彇鎵樼洏淇℃伅 + // var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + // if (pallet == null) + // { + // throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅"); + // } + // if (pallet.Status != "0") + // { + // throw new Exception("鎵樼洏鐘舵�佷笉鑳芥湭浣跨敤鐘舵��"); + // } + // //鑾峰彇鎵樼洏淇℃伅 + // var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == "100099"); + // var pNum = 0; + // var bNum = 0; + + // new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum); + + // var datetime = Db.GetDate(); + // Db.BeginTran(); + + // // 鎻掑叆鎵樼洏缁戝畾琛� + // var modelpb = new BllPalletBind + // { + // ASNNo = "", + // ASNDetailNo = 0, + // TaskNo = "", //浠诲姟鍙� + // PalletNo = palletNo, + // Qty = palletNum, + // FullQty = pNum, + // Status = "3", //涓婃灦瀹屾垚 + // Type = "1", //0 鐗╂枡鎵� 1 绌烘墭 + // LotNo = "", + // LotText = "", + // SupplierLot = "", + // InspectMark = "0", //0 鍚� 1 鏄� + // BitPalletMark = pNum == palletNum ? "0" : "1", + // IsBale = "0", + // IsBelt = "0", + // CreateUser = 0, + // CreateTime = Db.GetDate() + // }; + // var id = Db.Insertable(modelpb).ExecuteReturnIdentity(); + + // #region 搴撳瓨鏄庣粏 + // var sd1 = new DataStockDetail() + // { + // LotNo = modelpb.LotNo, + // LotText = modelpb.LotText, + // SupplierLot = modelpb.SupplierLot, + // SkuNo = sku.SkuNo, + // SkuName = sku.SkuName, + // Standard = sku.Standard, + // Qty = modelpb.Qty, + // LockQty = 0, + // FrozenQty = 0, + // InspectQty = 0, + // ASNNo = modelpb.ASNNo, + // ASNDetailNo = modelpb.ASNDetailNo, + // WareHouseNo = "", + // RoadwayNo = "", + // AreaNo = "", + // LocatNo = "", + // PalletNo = modelpb.PalletNo, + // PalletNo2 = modelpb.PalletNo2, + // PalletNo3 = modelpb.PalletNo3, + // PalletTags = "0", + // CompleteTime = datetime, + // ProductionTime = modelpb.ProductionTime, + // ExpirationTime = modelpb.ExpirationTime, + // Status = "0", + // InspectMark = modelpb.InspectMark, + // InspectStatus = sku.IsInspect, + // BitPalletMark = modelpb.BitPalletMark, + // PackagNo = sku.PackagNo, + // IsBale = modelpb.IsBale, + // IsBelt = modelpb.IsBelt, + + + // IsDel = "0", + // CreateUser = 0, + // CreateTime = datetime + // }; + // var sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + // #endregion + + // #region 搴撳瓨 + // var dataStock1 = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo); + // if (dataStock1 != null) + // { + // dataStock1.Qty += modelpb.Qty; + // if (modelpb.InspectMark == "1") + // { + // dataStock1.IsSampling = "0"; + // } + // Db.Updateable(dataStock1).ExecuteCommand(); + // } + // else + // { + // var stock = new DataStock() + // { + // SkuNo = sku.SkuNo, + // SkuName = sku.SkuName, + // Standard = sku.Standard, + // LotNo = "", + // LotText = "", + // Qty = modelpb.Qty, + // LockQty = 0, + // FrozenQty = 0, + // IsSampling = "0", + // IsDel = "0", + // CreateUser = 0, + // CreateTime = datetime + // }; + // Db.Insertable(stock).ExecuteCommand(); + // } + // #endregion + + + // #region 鐢宠鍌ㄤ綅 + + // SysStorageLocat locate; + // var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo); + // if (sku == null) + // { + // throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒板叆搴撳崟鏄庣粏鍖呭惈鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱"); + // } + // //鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅 + // if (string.IsNullOrWhiteSpace(sku.CategoryNo)) + // { + // throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈煡璇㈠埌绫诲埆淇℃伅"); + // } + + // var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo); + // if (skuCategory == null) + // { + // throw new Exception($"鏈湪绫诲埆淇℃伅涓煡璇㈠埌鐗╂枡锛歿sku.SkuNo}鍖呭惈鐨勭被鍒�"); + // } + + // var areaStr = skuCategory.AreaNo.Split(","); + // var areaList = new List<string>(); + // foreach (var item in areaStr) + // { + // areaList.Add(item); + // } + + // locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", ceng); + + + // #endregion + + // #region 娣诲姞浠诲姟 + + // //娣诲姞宸烽亾浣跨敤璁板綍 + // var log = new SysRoadwayUseLog + // { + // RoadwayNo = locateInfo.RoadwayNo, + // WareHouseNo = houseNo, + // Row = 0, + // Column = 0, + // Layer = 0, + // }; + // Db.Insertable(log).ExecuteCommand(); + // var taskNo = new Common().GetMaxNo("TK"); + // var inTask = new LogTask //鍏ュ簱浠诲姟 + // { + // TaskNo = taskNo, + // Sender = "WMS", + // Receiver = "WCS", + // IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + // SendDate = DateTime.Now, //鍙戦�佹椂闂� + // BackDate = DateTime.Now, //杩斿洖鏃堕棿 + // StartRoadway = "", // 璧峰宸烽亾 + // StartLocat = locate,//璧峰浣嶇疆 + // EndLocat = locateInfo.LocatNo,//鐩爣浣嶇疆 + // EndRoadway = locateInfo.RoadwayNo, // 鐩爣宸烽亾 + // PalletNo = palletNo,//鎵樼洏鐮� + // IsSend = 1,//鏄惁鍙啀娆′笅鍙� + // IsCancel = 1,//鏄惁鍙彇娑� + // IsFinish = 1,//鏄惁鍙畬鎴� + // Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + // Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + // OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + // Msg = $"{locateInfo.LocatNo}鍒�=>>" + + "鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 + + // }; + // Db.Insertable(inTask).ExecuteCommand(); + // var asnNo = ""; + + // //娣诲姞鎵樼洏涓婃灦璁板綍 + // var upShelf = new BllPalletUpShelf() + // { + // TaskNo = inTask.TaskNo, + // TraceNo = asnNo, + // PalletNo = palletNo, + // SkuNo = stockModel.SkuNo, + // SkuName = stockModel.SkuName, + // LotNo = stockModel.LotNo, + // Status = "1", + + // WareHouseNo = houseNo, + // RoadwayNo = locate.RoadwayNo, + // AreaNo = locate.AreaNo, + // LocatNo = locate.LocatNo, + + // CreateUser = 0, + // }; + // Db.Insertable(upShelf).ExecuteCommand(); + + + + // locate.Status = "2"; + // Db.Updateable(locate).ExecuteCommand(); + + // Db.CommitTran(); + // comDto = new OutCommandDto() + // { + // TaskNo = taskNo, // 浠诲姟鍙� + // TaskType = "0",// 浠诲姟绫诲瀷 + // PalletNo = palletNo,//鎵樼洏鍙� + + // StartRoadway = inTask.StartRoadway, + // StartLocate = inTask.StartLocat, // 璧峰浣嶇疆 + // EndLocate = inTask.EndLocat, // 鐩爣浣嶇疆 + // EndRoadway = inTask.EndRoadway, // 鐩爣宸烽亾 + + // Order = 999, + // Type = PLCTypeEnum.AGV + // }; + + // #endregion + + // // 鏇存敼鎵樼洏浣跨敤鐘舵�� + // string sqlStr = string.Empty; + // sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';"; + // Db.Ado.ExecuteCommand(sqlStr); + // Db.CommitTran(); + + // #endregion + + // return null; + //} + //catch (Exception e ) + //{ + // throw new Exception(e.Message); + //} + } + + /// <summary> /// 鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� /// </summary> @@ -1378,7 +1670,7 @@ throw new Exception("閫夋嫨鐨勫嚭搴撳崟鏄庣粏鍙傛暟閿欒"); } //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�) - var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.Status == "0" ); + var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.PalletNo == palletNo && a.Status == "0" ); if (item == null) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按 { throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏"); @@ -1418,8 +1710,7 @@ var imBl = com.GetImTask(item.PalletNo); if (imBl != null) { - str = "瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱"; - return outDto1; + throw new Exception("瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱"); } //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴� if (item.Status == "0") @@ -1445,40 +1736,34 @@ Db.Updateable(notice).ExecuteCommand(); } } - str = "瑕佸嚭搴撶殑鎵樼洏宸插湪搴撳"; + Db.CommitTran(); + str = "鎵樼洏宸插湪搴撳"; return outDto1; } - str = "瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱"; - return outDto1; } var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭� if (locate == null) { - str = "鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)"; - return outDto1; + throw new Exception("鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)"); } //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧� if (locate.Flag == "2") { - str = "鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱"; - return outDto1; + throw new Exception("鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱"); } if (locate.WareHouseNo != "W02") { - str = "鎵樼洏涓嶅湪璐ф灦搴撲笂"; - return outDto1; + throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂"); } var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭� if (locateEnd == null) { - str = "鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)"; - return outDto1; + throw new Exception("鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)"); } else if (locateEnd.Status != "0") { - str = "鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅"; - return outDto1; + throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅"); } #endregion @@ -1606,8 +1891,7 @@ } else if (locate.Status == "5") //绉诲嚭涓� { - str = "褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭"; - return outDto1; + throw new Exception("褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭"); } diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs index a780b7a..b4be3d2 100644 --- a/Wms/WMS.BLL/Logic/AllotSku.cs +++ b/Wms/WMS.BLL/Logic/AllotSku.cs @@ -237,7 +237,7 @@ /// </summary> /// <param name="palletList"></param> /// <returns></returns> - private List<DataStockDetail> GetDataListOrder(List<DataStockDetail> palletList) + public List<DataStockDetail> GetDataListOrder(List<DataStockDetail> palletList) { try { diff --git a/Wms/WMS.Entity/BllAsnEntity/BllPalletBind.cs b/Wms/WMS.Entity/BllAsnEntity/BllPalletBind.cs index 14fbde5..6106319 100644 --- a/Wms/WMS.Entity/BllAsnEntity/BllPalletBind.cs +++ b/Wms/WMS.Entity/BllAsnEntity/BllPalletBind.cs @@ -87,7 +87,7 @@ public decimal? FullQty {get;set;} /// <summary> - /// Desc:鐘舵�� + /// Desc:鐘舵�� 2鍏ュ簱瀹屾垚 3涓婃灦瀹屾垚 /// Default: /// Nullable:True /// </summary> diff --git a/Wms/WMS.IBLL/IHttpServer.cs b/Wms/WMS.IBLL/IHttpServer.cs index 748ec82..d99d8df 100644 --- a/Wms/WMS.IBLL/IHttpServer.cs +++ b/Wms/WMS.IBLL/IHttpServer.cs @@ -11,6 +11,16 @@ #region WCS /// <summary> + /// 绌烘墭璺虹粍鎵樺叆搴� + /// </summary> + /// <param name="palletNo">鎵樼洏鍙�</param> + /// <param name="houseNo">浠撳簱</param> + /// <param name="palletNum">鎵樼洏鏁伴噺</param> + /// <param name="locate">璧峰浣嶇疆</param> + /// <returns></returns> + OutCommandDto RequestPalletIn(string palletNo, string houseNo, int palletNum, string Strlocate); + + /// <summary> /// 鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� /// </summary> /// <param name="palletNo"></param> diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs index 5df16db..c6beb28 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs @@ -31,6 +31,12 @@ /// <param name="userId"></param> void SaveAppointLocate(string palletNo, string locateNo, int userId); + List<BoxInfoDto> GetWmsBoxInfos(string boxNo); + + void ChejianIn(string palletNo, string boxNo, decimal qty,string areaNo, int userId); + + void ChejianQtyIn(string palletNo, string skuNo, string lotNo, decimal qty, string areaNo, int userId); + #endregion diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs index 826ff84..1ec35da 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs @@ -37,6 +37,11 @@ /// <param name="userId"></param> Task SoSetQtyPinPick34(string soNo, string soDetailId, string palletNo, string PickQty, string palletNoNew, int userId); + + Task ChejianPick(string palletNo, string boxNo, int userId); + + List<BoxInfoDto> GetWmsBoxInfos(string boxNo); + #endregion /// <summary> @@ -62,6 +67,14 @@ Task<List<string>> GetRunNoticeList(string type); /// <summary> + /// 鑾峰彇鍑哄簱鍗曟湭涓嬪彂鍑哄簱鐨勬墭鐩� + /// </summary> + /// <param name="soNo"></param> + /// <param name="soDetailId"></param> + /// <returns></returns> + Task<List<string>> GetPalletListBySo(string soNo, string soDetailId); + + /// <summary> /// 鑾峰彇鍑哄簱鎵樼洏涓婄殑鐗╂枡鎵规(鏍规嵁鎵樼洏鐮�) /// </summary> /// <param name="palletNo">鎵樼洏鐮�</param> diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index e9f10fe..1a8c847 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -329,6 +329,40 @@ #region WMS鎺ュ彛 琚笅娓哥郴缁熸帴鍙h皟鐢� /// <summary> + /// WCS鐢宠绌烘墭璺虹粍鎵樺叆搴� 锛堝彔鎵樼洏鏈猴級 + /// </summary> + /// <param name="model">鍏ュ簱鍗曚俊鎭�</param> + /// <returns></returns> + [AllowAnonymous] + [HttpPost] + public IActionResult RequestPalletIn(RequestLocate model) + { + var logStr = ""; + + logStr = $@".\log\WCS\WCS鐢宠绌烘墭璺虹粍鎵樺叆搴�" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + + try + { + + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴擄細( {jsonData} ),", logStr); + + var list = _http.RequestPalletIn(model.PalletNo, model.HouseNo, model.palletNum,model.locate); + + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴撹繑鍥烇細( {JsonConvert.SerializeObject(list)} ),", logStr); + + return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list }); + } + catch (Exception e) + { + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴撹繑鍥烇細( {e.Message} ),", logStr); + + return Ok(new ErpModel { Success = -1, Message = e.Message }); + } + } + + + /// <summary> /// PDA 浜哄伐鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� /// </summary> /// <param name="model">鍏ュ簱鍗曚俊鎭�</param> diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs index 699280a..d8829bc 100644 --- a/Wms/Wms/Controllers/PdaAsnController.cs +++ b/Wms/Wms/Controllers/PdaAsnController.cs @@ -194,6 +194,26 @@ } /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛� + /// </summary> + /// <param name="boxNo">BoxNo:绠卞彿</param> + /// <returns></returns> + [HttpGet] + public IActionResult GetWmsBoxInfos(string boxNo) + { + try + { + var models = _PdaAsnSvc.GetWmsBoxInfos(boxNo); + + return Ok(new { code = 0, msg = "鏍囩绠辩爜淇℃伅", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 鍏敤鏂规硶 /// </summary> /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> @@ -244,6 +264,40 @@ } + /// <summary> + /// 缁戝畾鎵樼洏 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public IActionResult ChejianIn(PdaPalletBindVm model) + { + try + { + + if (_userManager.UserId ==0) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + + if (model.TableType == 0) + { + _PdaAsnSvc.ChejianIn(model.PalletNo,model.BoxNo,model.SkuQty,model.AreaNo, _userManager.UserId); + } + else if (model.TableType == 1) + { + _PdaAsnSvc.ChejianQtyIn(model.PalletNo,model.SkuNo,model.LotNo,model.SkuQty,model.AreaNo, _userManager.UserId); + } + + return Ok(new { code = 0, msg = "缁戝畾鎴愬姛!" }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + //---------------------------------------------鐢宠鍏ュ簱椤甸潰---------------------------------------------------------------------- diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs index 2d6283f..dca3e5d 100644 --- a/Wms/Wms/Controllers/PdaSoController.cs +++ b/Wms/Wms/Controllers/PdaSoController.cs @@ -81,6 +81,19 @@ return await _pdaSoSvc.GetSoSkuLotNoListBySo(model.SoNo); } + + /// <summary> + /// 鑾峰彇鐗╂枡-鎵规淇℃伅 + /// </summary> + /// <param name="model">PalletNo:鎵樼洏鐮併�丼oNo:鍗曟嵁鍙�</param> + /// <returns></returns> + [HttpPost] + public async Task<List<string>> GetPalletListBySo(PdaSoVm model) + { + return await _pdaSoSvc.GetPalletListBySo(model.SoNo,model.SoDetailId); + } + + /// <summary> /// 鑾峰彇鐗╂枡-鎵规淇℃伅 /// </summary> @@ -161,6 +174,25 @@ await _pdaSoSvc.SoSetQtyPick(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, _userManager.UserId); } + /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛� + /// </summary> + /// <param name="boxNo">BoxNo:绠卞彿</param> + /// <returns></returns> + [HttpGet] + public IActionResult GetWmsBoxInfos(string boxNo) + { + try + { + var models = _pdaSoSvc.GetWmsBoxInfos(boxNo); + + return Ok(new { code = 0, msg = "鏍囩绠辩爜淇℃伅", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } /// <summary> /// 绌烘墭鍑哄簱 @@ -285,6 +317,18 @@ { await _pdaSoSvc.SoSetQtyPinPick34(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, model.PalletNoNew, _userManager.UserId); } + + /// <summary> + /// 杞﹂棿pda鎷h揣-鏍囩 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public async Task ChejianPick(PdaSoVm model) + { + await _pdaSoSvc.ChejianPick(model.PalletNo, model.BoxNo, _userManager.UserId); + } + #endregion #region JC23鐗堝彇鏍� diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs index b8743c0..79cb4b6 100644 --- a/Wms/Wms/Controllers/UpApiController.cs +++ b/Wms/Wms/Controllers/UpApiController.cs @@ -242,7 +242,7 @@ await _stockCheckSvc.StockAdjustAuto(model.Id); } //绯荤粺瀵规帴鍚庢斁寮� - //var bl =_stockCheckSvc.FinishCr(model.Id,_config.ErpHost + _config.DataChangeUrl, int.Parse(userId)); + var bl =_stockCheckSvc.FinishCr(model.Id,_config.ErpHost + _config.DataChangeUrl, int.Parse(userId)); //if (bl) //{ return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曡皟鏁翠笂浼犳垚鍔�" }); -- Gitblit v1.8.0