From 32cfcc52c647b5dab8db7c5ca7b54ab3041e9d36 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 04 六月 2025 14:54:33 +0800
Subject: [PATCH] 修改车间出入库

---
 Pda/View/AsnSetting/WorkshopIn.html      |    6 
 Wms/Wms/Controllers/PdaSoController.cs   |   31 ++
 Pda/View/SoSetting/WorkshopOut.html      |  549 ++++++++++++++++++++++++++++++++++++++++++
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs  |  145 +++++++++++
 Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs  |    5 
 Wms/Wms/Controllers/PdaAsnController.cs  |    2 
 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs |    6 
 7 files changed, 741 insertions(+), 3 deletions(-)

diff --git a/Pda/View/AsnSetting/WorkshopIn.html b/Pda/View/AsnSetting/WorkshopIn.html
index 3ce1a48..6a4eeac 100644
--- a/Pda/View/AsnSetting/WorkshopIn.html
+++ b/Pda/View/AsnSetting/WorkshopIn.html
@@ -420,10 +420,12 @@
 
             //绠卞洖杞︿簨浠�
             function checkBoxInfo() {
+                
+                
                 var param = {
-                    "BoxNo": $("#BoxCode").val(),
+                    "boxNo": $("#BoxCode").val(),
                 }
-                sendData(IP + "/PdaAsn/GetWmsBoxInfos", param, 'post', function (res) {
+                synData(IP + "/PdaAsn/GetWmsBoxInfos", param, 'get', function (res) {
                     
                     if (res.code == 0) { //鎴愬姛
                         $("#BoxNum").val(res.data[0].Qty);
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/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index d69c86e..d2c75d7 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -2530,9 +2530,15 @@
                 }
                 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,
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 8cc4019..4839936 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1475,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
 
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
index d2260d4..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>
diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs
index fb8efd8..9d57717 100644
--- a/Wms/Wms/Controllers/PdaAsnController.cs
+++ b/Wms/Wms/Controllers/PdaAsnController.cs
@@ -197,7 +197,7 @@
         /// </summary>
         /// <param name="boxNo">BoxNo:绠卞彿</param>
         /// <returns></returns>
-        [HttpPost]
+        [HttpGet]
         public IActionResult GetWmsBoxInfos(string boxNo)
         {
             try
diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs
index f23655c..dca3e5d 100644
--- a/Wms/Wms/Controllers/PdaSoController.cs
+++ b/Wms/Wms/Controllers/PdaSoController.cs
@@ -174,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>
         /// 绌烘墭鍑哄簱
@@ -298,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鐗堝彇鏍�

--
Gitblit v1.8.0