zhaowc
2025-10-18 219a08427376efdd304e9b11e481ccd8276018bb
巷道形式存取放物料
7个文件已修改
1469 ■■■■■ 已修改文件
HTML/views/HouseWithinSetting/HopperTransport.html 1355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Utility/Tools/RcsHelper.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllTransServer/RcsServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/DownApiController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/HouseWithinSetting/HopperTransport.html
@@ -1,63 +1,66 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
  <head>
    <meta charset="utf-8" />
    <title>料斗转运</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
    <link rel="stylesheet" href="../../css/public.css" media="all">
    <meta name="renderer" content="webkit" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
    <link
      rel="stylesheet"
      href="../../layuiadmin/layui/css/layui.css"
      media="all" />
    <link
      rel="stylesheet"
      href="../../layuiadmin/style/admin.css"
      media="all" />
    <link rel="stylesheet" href="../../css/public.css" media="all" />
    <style type="text/css">
        .layui-table-view .layui-table[lay-size=sm] .layui-table-cell {
            height: auto;
            line-height: 23px;
        }
      .layui-table-view .layui-table[lay-size="sm"] .layui-table-cell {
        height: auto;
        line-height: 23px;
      }
        /* 表格下拉小箭头隐藏 */
        .layui-table-grid-down {
            display: none;
        }
        .flesDiv{
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .solidDiv{
            border: 1px solid black;
        }
        .showDiv{
            display: block;
        }
        .hideDiv{
            display: none;
        }
      /* 表格下拉小箭头隐藏 */
      .layui-table-grid-down {
        display: none;
      }
      .flesDiv {
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .solidDiv {
        border: 1px solid black;
      }
      .showDiv {
        display: block;
      }
      .hideDiv {
        display: none;
      }
    </style>
  </head>
</head>
  <body id="body">
    <div class="layui-fluid" style="padding-bottom: 0; height: 99%">
      <div class="layui-card" style="height: 99%">
        <div class="layui-card-body" style="height: 100%">
          <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
            <ul class="layui-tab-title" id="tab">
              <li class="layui-this">叫料</li>
              <li>叫车</li>
              <!-- <li>车间到车间</li> -->
            </ul>
<body id="body">
    <div class="layui-fluid" style="padding-bottom: 0;height: 99%;">
        <div class="layui-card" style="height: 99%;">
            <div class="layui-card-body" style="height: 100%;">
                    <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
                        <ul class="layui-tab-title" id="tab">
                            <li class="layui-this">叫料</li>
                            <li>叫车</li>
                            <!-- <li>车间到车间</li> -->
                        </ul>
                        <div class="layui-tab-content">
                            <div class="layui-tab-item layui-show ">
                                <div class="flesDiv" >
                                    <form class="layui-form" action="" style="width: 40%;">
                                        <!-- <div class="layui-form-item">
            <div class="layui-tab-content">
              <div class="layui-tab-item layui-show">
                <div class="flesDiv">
                  <form class="layui-form" action="" style="width: 40%">
                    <!-- <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">楼层</label>
                                            <div class="layui-input-block">
                                                <select name="Layer" lay-filter="">
@@ -67,108 +70,154 @@
                                                </select>
                                            </div>
                                        </div> -->
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">区域</label>
                                            <div class="layui-input-block">
                                                <select id="AreaSelect" name="AreaSelect" lay-filter="AreaSelect" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">目标位置</label>
                                            <div class="layui-input-block">
                                                <select id="LocateSelect" name="LocateSelect" lay-filter="LocateSelect" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">桶类型</label>
                                            <div class="layui-input-block">
                                                <select id="PalletStatus" name="PalletStatus" lay-filter="PalletStatus" >
                                                    <option value=""></option>
                                                    <option value="0">净桶</option>
                                                    <option value="2">满桶</option>
                                                    <!-- <option value="3">脏桶</option>  -->
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="StandardDiv">
                                            <label class="layui-form-label" style="width: 80px;">规格</label>
                                            <div class="layui-input-block">
                                                <select name="Standard" lay-filter="Standard" >
                                                    <option value="400L">400L</option>
                                                    <option value="800L">800L</option>
                                                    <option value="1000L">1000L</option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="SkuSelectDiv">
                                            <label class="layui-form-label" style="width: 80px;">物料</label>
                                            <div class="layui-input-block">
                                                <select id="SkuSelect" name="SkuSelect" lay-filter="SkuSelect" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="LotNoSelectDiv">
                                            <label class="layui-form-label" style="width: 80px;">批次</label>
                                            <div class="layui-input-block">
                                                <select id="LotNoSelect" name="LotNoSelect" lay-filter="LotNoSelect" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" >
                                            <div class="layui-input-block">
                                                <button type="submit" class="layui-btn" lay-submit
                                                    lay-filter="demo1">立即提交</button>
                                                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>
                            <div class="layui-tab-item">
                                <div class="flesDiv" >
                                    <form class="layui-form" action="" style="width: 40%;">
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">区域</label>
                                            <div class="layui-input-block">
                                                <select id="AreaSelect2" name="AreaSelect2" lay-filter="AreaSelect2" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">起始位置</label>
                                            <div class="layui-input-block">
                                                <select id="LocateSelect2" name="LocateSelect2" lay-filter="LocateSelect2" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">桶类型</label>
                                            <div class="layui-input-block">
                                                <select id="PalletStatus2" name="PalletStatus2" lay-filter="PalletStatus2" >
                                                    <option value=""></option>
                                                     <option value="0">净桶</option>
                                                    <option value="2">满桶</option>
                                                    <option value="3">脏桶</option>
                                                </select>
                                            </div>
                                        </div>
                                        <!-- <div class="layui-form-item" id="StandardDiv2">
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >区域</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="AreaSelect"
                          name="AreaSelect"
                          lay-filter="AreaSelect">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >目标位置</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="LocateSelect"
                          name="LocateSelect"
                          lay-filter="LocateSelect">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >桶类型</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="PalletStatus"
                          name="PalletStatus"
                          lay-filter="PalletStatus">
                          <option value=""></option>
                          <option value="0">净桶</option>
                          <option value="2">满桶</option>
                          <!-- <option value="3">脏桶</option>  -->
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="StandardDiv">
                      <label class="layui-form-label" style="width: 80px"
                        >规格</label
                      >
                      <div class="layui-input-block">
                        <select name="Standard" lay-filter="Standard">
                          <option value="400L">400L</option>
                          <option value="800L">800L</option>
                          <option value="1000L">1000L</option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="SkuSelectDiv">
                      <label class="layui-form-label" style="width: 80px"
                        >物料</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="SkuSelect"
                          name="SkuSelect"
                          lay-filter="SkuSelect">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="LotNoSelectDiv">
                      <label class="layui-form-label" style="width: 80px"
                        >批次</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="LotNoSelect"
                          name="LotNoSelect"
                          lay-filter="LotNoSelect">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <div class="layui-input-block">
                        <button
                          type="submit"
                          class="layui-btn"
                          lay-submit
                          lay-filter="demo1">
                          立即提交
                        </button>
                        <button
                          type="reset"
                          class="layui-btn layui-btn-primary">
                          重置
                        </button>
                      </div>
                    </div>
                  </form>
                </div>
              </div>
              <div class="layui-tab-item">
                <div class="flesDiv">
                  <form class="layui-form" action="" style="width: 40%">
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >区域</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="AreaSelect2"
                          name="AreaSelect2"
                          lay-filter="AreaSelect2">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >起始位置</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="LocateSelect2"
                          name="LocateSelect2"
                          lay-filter="LocateSelect2">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >桶类型</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="PalletStatus2"
                          name="PalletStatus2"
                          lay-filter="PalletStatus2">
                          <option value=""></option>
                          <option value="0">净桶</option>
                          <option value="2">满桶</option>
                          <option value="3">脏桶</option>
                        </select>
                      </div>
                    </div>
                    <!-- <div class="layui-form-item" id="StandardDiv2">
                                            <label class="layui-form-label" style="width: 80px;">规格</label>
                                            <div class="layui-input-block">
                                                <select name="Standard2" lay-filter="Standard2" lay-search>
@@ -178,148 +227,222 @@
                                                </select>
                                            </div>
                                        </div> -->
                                        <div class="layui-form-item" id="SkuSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">物料</label>
                                            <div class="layui-input-block">
                                                <select id="SkuSelect2" name="SkuSelect2" lay-filter="SkuSelect2" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="LotNoSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">批次</label>
                                            <div class="layui-input-block">
                                                <input type="text" id="LotNoInput" name="LotNoInput" placeholder="" autocomplete="off"
                                                    class="layui-input">
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="WeightSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">重量</label>
                                            <div class="layui-input-block">
                                                <input type="text" id="WeightInput" name="WeightInput" placeholder="" autocomplete="off"
                                                    class="layui-input">
                                            </div>
                                        </div>
                                        <div class="layui-form-item" >
                                            <div class="layui-input-block">
                                                <button type="submit" class="layui-btn" lay-submit
                                                    lay-filter="demo2">立即提交</button>
                                                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>
                            <div class="layui-tab-item">
                                <div class="flesDiv" >
                                    <form class="layui-form" action="" style="width: 40%;">
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">起始区域</label>
                                            <div class="layui-input-block">
                                                <select id="AreaSelect3" name="AreaSelect3" lay-filter="AreaSelect3" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">起始位置</label>
                                            <div class="layui-input-block">
                                                <select id="LocateSelect3" name="LocateSelect3" lay-filter="LocateSelect3" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">目标区域</label>
                                            <div class="layui-input-block">
                                                <select id="AreaSelect4" name="AreaSelect4" lay-filter="AreaSelect4" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">目标位置</label>
                                            <div class="layui-input-block">
                                                <select id="LocateSelect4" name="LocateSelect4" lay-filter="LocateSelect4" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item">
                                            <label class="layui-form-label" style="width: 80px;">桶类型</label>
                                            <div class="layui-input-block">
                                                <select id="PalletStatus2" name="PalletStatus2" lay-filter="PalletStatus2" >
                                                    <option value=""></option>
                                                     <option value="0">净桶</option>
                                                    <option value="2">满桶</option>
                                                    <option value="3">脏桶</option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="SkuSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">物料</label>
                                            <div class="layui-input-block">
                                                <select id="SkuSelect2" name="SkuSelect2" lay-filter="SkuSelect2" >
                                                    <option value=""></option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="LotNoSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">批次</label>
                                            <div class="layui-input-block">
                                                <input type="text" id="LotNoInput" name="LotNoInput" placeholder="" autocomplete="off"
                                                    class="layui-input">
                                            </div>
                                        </div>
                                        <div class="layui-form-item" id="WeightSelectDiv2">
                                            <label class="layui-form-label" style="width: 80px;">重量</label>
                                            <div class="layui-input-block">
                                                <input type="text" id="WeightInput" name="WeightInput" placeholder="" autocomplete="off"
                                                    class="layui-input">
                                            </div>
                                        </div>
                                        <div class="layui-form-item" >
                                            <div class="layui-input-block">
                                                <button type="submit" class="layui-btn" lay-submit
                                                    lay-filter="demo3">立即提交</button>
                                                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>
                        </div>
                    <div class="layui-form-item" id="SkuSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >物料</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="SkuSelect2"
                          name="SkuSelect2"
                          lay-filter="SkuSelect2">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="LotNoSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >批次</label
                      >
                      <div class="layui-input-block">
                        <input
                          type="text"
                          id="LotNoInput"
                          name="LotNoInput"
                          placeholder=""
                          autocomplete="off"
                          class="layui-input" />
                      </div>
                    </div>
                    <div class="layui-form-item" id="WeightSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >重量</label
                      >
                      <div class="layui-input-block">
                        <input
                          type="text"
                          id="WeightInput"
                          name="WeightInput"
                          placeholder=""
                          autocomplete="off"
                          class="layui-input" />
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <div class="layui-input-block">
                        <button
                          type="submit"
                          class="layui-btn"
                          lay-submit
                          lay-filter="demo2">
                          立即提交
                        </button>
                        <button
                          type="reset"
                          class="layui-btn layui-btn-primary">
                          重置
                        </button>
                      </div>
                    </div>
                  </form>
                </div>
              </div>
              <div class="layui-tab-item">
                <div class="flesDiv">
                  <form class="layui-form" action="" style="width: 40%">
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >起始区域</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="AreaSelect3"
                          name="AreaSelect3"
                          lay-filter="AreaSelect3">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >起始位置</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="LocateSelect3"
                          name="LocateSelect3"
                          lay-filter="LocateSelect3">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >目标区域</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="AreaSelect4"
                          name="AreaSelect4"
                          lay-filter="AreaSelect4">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >目标位置</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="LocateSelect4"
                          name="LocateSelect4"
                          lay-filter="LocateSelect4">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <label class="layui-form-label" style="width: 80px"
                        >桶类型</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="PalletStatus2"
                          name="PalletStatus2"
                          lay-filter="PalletStatus2">
                          <option value=""></option>
                          <option value="0">净桶</option>
                          <option value="2">满桶</option>
                          <option value="3">脏桶</option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="SkuSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >物料</label
                      >
                      <div class="layui-input-block">
                        <select
                          id="SkuSelect2"
                          name="SkuSelect2"
                          lay-filter="SkuSelect2">
                          <option value=""></option>
                        </select>
                      </div>
                    </div>
                    <div class="layui-form-item" id="LotNoSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >批次</label
                      >
                      <div class="layui-input-block">
                        <input
                          type="text"
                          id="LotNoInput"
                          name="LotNoInput"
                          placeholder=""
                          autocomplete="off"
                          class="layui-input" />
                      </div>
                    </div>
                    <div class="layui-form-item" id="WeightSelectDiv2">
                      <label class="layui-form-label" style="width: 80px"
                        >重量</label
                      >
                      <div class="layui-input-block">
                        <input
                          type="text"
                          id="WeightInput"
                          name="WeightInput"
                          placeholder=""
                          autocomplete="off"
                          class="layui-input" />
                      </div>
                    </div>
                    <div class="layui-form-item">
                      <div class="layui-input-block">
                        <button
                          type="submit"
                          class="layui-btn"
                          lay-submit
                          lay-filter="demo3">
                          立即提交
                        </button>
                        <button
                          type="reset"
                          class="layui-btn layui-btn-primary">
                          重置
                        </button>
                      </div>
                    </div>
                  </form>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="../../layuiadmin/layui/layui.js"></script>
    <script src="../../js/public.js"></script>
    <script src="../../js/jquery-3.5.1.min.js"></script>
    <script src="../../js/jquery.cookie.js"></script>
    <script type="text/javascript">
    </script>
    <script type="text/javascript"></script>
    <script>
        layui.config({
            base: '../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'table', 'laypage', 'element', 'layer', 'laydate'], function () {
      layui
        .config({
          base: "../../layuiadmin/", //静态资源所在路径
        })
        .extend({
          index: "lib/index", //主入口模块
        })
        .use(
          ["index", "table", "laypage", "element", "layer", "laydate"],
          function () {
            var table = layui.table;
            var form = layui.form;
            var element = layui.element;
@@ -328,324 +451,470 @@
            var laydate = layui.laydate;
            var a = 0;
            var bodyHeight = $("#body").outerHeight();
            var bodyHeight = $("#body").outerHeight();
            var hh = bodyHeight - 146 ;//6是body上内边距
            $(".layui-card-body").attr("style","height:"+hh+"px");
            var hh = bodyHeight - 146; //6是body上内边距
            $(".layui-card-body").attr("style", "height:" + hh + "px");
            //tab切换判断值
            var yemianid = 0;
            var yemianid = 0;
            //监听Tab切换,以改变地址hash值
            element.on('tab(docDemoTabBrief)', function (data) {
                yemianid = data.index;
                console.log(yemianid);
            element.on("tab(docDemoTabBrief)", function (data) {
              yemianid = data.index;
              console.log(yemianid);
                if (yemianid == 0) {
                } else if (yemianid == 1) {
                }
              if (yemianid == 0) {
              } else if (yemianid == 1) {
              }
            });
            $("#StandardDiv").hide();
            $("#SkuSelectDiv").hide();
            $("#LotNoSelectDiv").hide();
            var doing = true;
            // 叫料提交事件
            form.on('submit(demo1)', function (data) {
                var field = data.field; // 获取表单字段值
                var param = {
                    AreaNo: field.AreaSelect,
                    LocateNo : field.LocateSelect,
                    PlnStatus:field.PalletStatus,
                    Standard:field.Standard,
                    SkuNo:field.SkuSelect,
                    LotNo:field.LotNoSelect
                };
                sendData(IP + "/DownApi/jiaoLiaoHopper", param, 'post', function(res) {
                    if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                            icon: 1,
                            time: 1000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
                return false; // 阻止默认 form 跳转
            });
            // 叫车提交事件
            form.on('submit(demo2)', function (data) {
                var field = data.field; // 获取表单字段值
                console.log("field.WeightInput:"+field.WeightInput);
                if(field.WeightInput.length != 0)
                {
                    a = parseFloat(field.WeightInput);
            form.on("submit(demo1)", function (data) {
              var field = data.field; // 获取表单字段值
              var param = {
                AreaNo: field.AreaSelect,
                LocateNo: field.LocateSelect,
                PlnStatus: field.PalletStatus,
                Standard: field.Standard,
                SkuNo: field.SkuSelect,
                LotNo: field.LotNoSelect,
              };
              sendData(
                IP + "/DownApi/jiaoLiaoHopper",
                param,
                "post",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 1,
                        time: 1000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
                var param = {
                    AreaNo: field.AreaSelect2,
                    LocateNo : field.LocateSelect2,
                    PlnStatus:field.PalletStatus2,
                    SkuNo:field.SkuSelect2,
                    LotNo:field.LotNoInput,
                    Weight:a
                };
                console.log(param);
                sendData(IP + "/DownApi/jiaoCheHopper", param, 'post', function(res) {
                    if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                            icon: 1,
                            time: 1000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
                return false; // 阻止默认 form 跳转
            });
            GetArea();
            form.on('select(AreaSelect)', function(data) {
                GetLocate(data.value);
                GetPlnStatus(data.value)
              );
              return false; // 阻止默认 form 跳转
            });
            form.on('select(PalletStatus)', function(data) {
                //0:净桶 1:预混 2:半成品 3:脏桶
                if (data.value == "0") {
                    $("#StandardDiv").show();
                    $("#SkuSelectDiv").hide();
                    $("#LotNoSelectDiv").hide();
                } else {
                    $("#StandardDiv").hide();
                    $("#SkuSelectDiv").show();
                    $("#LotNoSelectDiv").show();
                    GetSku(data.value)
            // 叫车提交事件
            form.on("submit(demo2)", function (data) {
              var field = data.field; // 获取表单字段值
              console.log("field.WeightInput:" + field.WeightInput);
              if (field.WeightInput.length != 0) {
                a = parseFloat(field.WeightInput);
              }
              var param = {
                AreaNo: field.AreaSelect2,
                LocateNo: field.LocateSelect2,
                PlnStatus: field.PalletStatus2,
                SkuNo: field.SkuSelect2,
                LotNo: field.LotNoInput,
                Weight: a,
              };
              console.log(param);
              sendData(
                IP + "/DownApi/jiaoCheHopper",
                param,
                "post",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 1,
                        time: 1000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
              return false; // 阻止默认 form 跳转
            });
            form.on('select(SkuSelect)', function(data) {
                GetLotNo(data.value);
            GetArea();
            form.on("select(AreaSelect)", function (data) {
              GetLocate(data.value);
              GetPlnStatus(data.value);
            });
            form.on("select(PalletStatus)", function (data) {
              //0:净桶 1:预混 2:半成品 3:脏桶
              if (data.value == "0") {
                $("#StandardDiv").show();
                $("#SkuSelectDiv").hide();
                $("#LotNoSelectDiv").hide();
              } else {
                $("#StandardDiv").hide();
                $("#SkuSelectDiv").show();
                $("#LotNoSelectDiv").show();
                GetSku(data.value);
              }
            });
            form.on("select(SkuSelect)", function (data) {
              GetLotNo(data.value);
            });
            // 获取区域
            function GetArea() {
                $("#AreaSelect").empty();
                $("#AreaSelect").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetAreaListByUser", {}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        console.log(res.data);
                        for (var i = 0; i < res.data.length; i++) {
                            $("#AreaSelect").append('<option value =' + res.data[i].AreaNo + '>' + res.data[i].AreaName +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              $("#AreaSelect").empty();
              $("#AreaSelect").append('<option value =""></option>');
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetAreaListByUser",
                {},
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    console.log(res.data);
                    for (var i = 0; i < res.data.length; i++) {
                      $("#AreaSelect").append(
                        "<option value =" +
                          res.data[i].AreaNo +
                          ">" +
                          res.data[i].AreaName +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            // 获取储位
            function GetLocate(val) {
                $("#LocateSelect").empty();
                $("#LocateSelect").append('<option value =""></option>');
              $("#LocateSelect").empty();
              $("#LocateSelect").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetLocatByArea", {"areaNo":val}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#LocateSelect").append('<option value =' + res.data[i].LocatNo + '>' + res.data[i].LocatNo +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetLocatByArea",
                { areaNo: val },
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    for (var i = 0; i < res.data.length; i++) {
                      $("#LocateSelect").append(
                        "<option value =" +
                          res.data[i].LocatNo +
                          ">" +
                          res.data[i].LocatNo +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            // 获取桶类型
            function GetPlnStatus(val) {
                $("#PalletStatus").empty();
                $("#PalletStatus").append('<option value =""></option>');
              $("#PalletStatus").empty();
              $("#PalletStatus").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetPlnStatusByArea", {"areaNo":val}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#PalletStatus").append('<option value =' + res.data[i].dic1 + '>' + res.data[i].dic2 +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetPlnStatusByArea",
                { areaNo: val },
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    for (var i = 0; i < res.data.length; i++) {
                      $("#PalletStatus").append(
                        "<option value =" +
                          res.data[i].dic1 +
                          ">" +
                          res.data[i].dic2 +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            //获取物料
            function GetSku(val) {
                $("#SkuSelect").empty();
                $("#SkuSelect").append('<option value =""></option>');
              $("#SkuSelect").empty();
              $("#SkuSelect").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetSkuByStatus", {"palletStatus":val}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#SkuSelect").append('<option value =' + res.data[i] + '>' + res.data[i] +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetSkuByStatus",
                { palletStatus: val },
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    for (var i = 0; i < res.data.length; i++) {
                      $("#SkuSelect").append(
                        "<option value =" +
                          res.data[i].SkuNo +
                          ">" +
                          res.data[i].SkuName +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            //获取批次
            function GetLotNo(val) {
                $("#LotNoSelect").empty();
                $("#LotNoSelect").append('<option value =""></option>');
              $("#LotNoSelect").empty();
              $("#LotNoSelect").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetLotNoBySku", {"skuNo":val}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#LotNoSelect").append('<option value =' + res.data[i] + '>' + res.data[i] +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetLotNoBySku",
                { skuNo: val },
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    for (var i = 0; i < res.data.length; i++) {
                      $("#LotNoSelect").append(
                        "<option value =" +
                          res.data[i] +
                          ">" +
                          res.data[i] +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            //------------------------------------------------------------------------------------
            $("#WeightSelectDiv2").hide();
            $("#SkuSelectDiv2").hide();
            $("#LotNoSelectDiv2").hide();
            GetArea2();
            GetSku2();
            form.on('select(AreaSelect2)', function(data) {
                GetLocate2(data.value);
            form.on("select(AreaSelect2)", function (data) {
              GetLocate2(data.value);
            });
            form.on('select(PalletStatus2)', function(data) {
                //0:净桶 1:预混 2:半成品 3:脏桶
                if (data.value == "2") {
                    $("#WeightSelectDiv2").show();
                    $("#SkuSelectDiv2").show();
                    $("#LotNoSelectDiv2").show();
                } else {
                    $("#WeightSelectDiv2").hide();
                    $("#SkuSelectDiv2").hide();
                    $("#LotNoSelectDiv2").show();
                    GetSku(data.value)
                }
            form.on("select(PalletStatus2)", function (data) {
              //0:净桶 1:预混 2:半成品 3:脏桶
              if (data.value == "2") {
                $("#WeightSelectDiv2").show();
                $("#SkuSelectDiv2").show();
                $("#LotNoSelectDiv2").show();
              } else {
                $("#WeightSelectDiv2").hide();
                $("#SkuSelectDiv2").hide();
                $("#LotNoSelectDiv2").show();
                GetSku(data.value);
              }
            });
            // 获取区域
            function GetArea2() {
                $("#AreaSelect2").empty();
                $("#AreaSelect2").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetAreaListByUser", {}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        console.log(res.data);
                        for (var i = 0; i < res.data.length; i++) {
                            $("#AreaSelect2").append('<option value =' + res.data[i].AreaNo + '>' + res.data[i].AreaName +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              $("#AreaSelect2").empty();
              $("#AreaSelect2").append('<option value =""></option>');
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetAreaListByUser",
                {},
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    console.log(res.data);
                    for (var i = 0; i < res.data.length; i++) {
                      $("#AreaSelect2").append(
                        "<option value =" +
                          res.data[i].AreaNo +
                          ">" +
                          res.data[i].AreaName +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            // 获取储位
            function GetLocate2(val) {
                $("#LocateSelect2").empty();
                $("#LocateSelect2").append('<option value =""></option>');
              $("#LocateSelect2").empty();
              $("#LocateSelect2").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetLocatByArea", {"areaNo":val}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#LocateSelect2").append('<option value =' + res.data[i].LocatNo + '>' + res.data[i].LocatNo +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(
                IP + "/DownApi/GetLocatByArea",
                { areaNo: val },
                "get",
                function (res) {
                  if (res.code == 0) {
                    //成功
                    for (var i = 0; i < res.data.length; i++) {
                      $("#LocateSelect2").append(
                        "<option value =" +
                          res.data[i].LocatNo +
                          ">" +
                          res.data[i].LocatNo +
                          "</option>"
                      );
                    }
                    form.render("select");
                  } else {
                    //不成功
                    layer.msg(
                      res.msg,
                      {
                        icon: 2,
                        time: 2000, //2秒关闭(如果不配置,默认是3秒)
                      },
                      function () {}
                    );
                  }
                }
              );
            }
            //获取物料
            function GetSku2() {
                $("#SkuSelect2").empty();
                $("#SkuSelect2").append('<option value =""></option>');
              $("#SkuSelect2").empty();
              $("#SkuSelect2").append('<option value =""></option>');
                //获取仓库下拉框信息
                sendData(IP + "/DownApi/GetSku", {}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#SkuSelect2").append('<option value =' + res.data[i] + '>' + res.data[i] +'</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
              //获取仓库下拉框信息
              sendData(IP + "/DownApi/GetSku", {}, "get", function (res) {
                if (res.code == 0) {
                  //成功
                  for (var i = 0; i < res.data.length; i++) {
                    $("#SkuSelect2").append(
                      "<option value =" +
                        res.data[i].SkuNo +
                        ">" +
                        res.data[i].SkuName +
                        "</option>"
                    );
                  }
                  form.render("select");
                } else {
                  //不成功
                  layer.msg(
                    res.msg,
                    {
                      icon: 2,
                      time: 2000, //2秒关闭(如果不配置,默认是3秒)
                    },
                    function () {}
                  );
                }
              });
            }
        });
          }
        );
    </script>
</body>
</html>
  </body>
</html>
Wms/Utility/Tools/RcsHelper.cs
@@ -45,7 +45,11 @@
            }
            //跨楼层任务tasktype值赋值……
            //tasktype = "";
            if (taskDetial.Endport.Substring(0,3) == "C01")
            {
                tasktype = "F23";
            }
            List<targetRoute> pahtList = new List<targetRoute>();
            //起始位置
Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
@@ -159,13 +159,14 @@
        /// <param name="palletStatus"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public List<string> GetSkuByStatus(string palletStatus)
        public List<DataStockDetail> GetSkuByStatus(string palletStatus)
        {
            try
            {
                //获取储位上的库存物料
                var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LocatNo) && m.PalletStatus == palletStatus).Select(m=>m.SkuNo).Distinct().ToList();
                return detail;
                var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LocatNo) && m.PalletStatus == palletStatus).ToList();
                List<DataStockDetail> result = detail.GroupBy(x => x.SkuNo).Select(xx => xx.First()).ToList();
                return result;
            }
            catch (Exception e)
            {
@@ -191,12 +192,14 @@
            }
        }
        public List<string> GetSku()
        public List<SysMaterials> GetSku()
        {
            try
            {
                //获取储位上的库存物料
                var detail = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" ).Select(m => m.SkuNo).Distinct().ToList();
                //var detail = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" ).Select(m => m.SkuNo).Distinct().ToList();
                var detail = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                return detail;
            }
            catch (Exception e)
@@ -264,12 +267,20 @@
                    throw new Exception("没有查询到仓库信息");
                }
                //查找状态是未分配且储位不为空的库存信息
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.Status == "0" && m.WareHouseNo == house.WareHouseNo && !string.IsNullOrWhiteSpace(m.LocatNo)).ToList();
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.Status == "0" && m.WareHouseNo == house.WareHouseNo && !string.IsNullOrWhiteSpace(m.LocatNo) && m.IsDel=="0").ToList();
                //净桶
                if (plnStatus == "0")
                if (plnStatus == "0")  //4L叫净桶不分楼层
                {
                    stockDetail = stockDetail.Where(m => m.PalletStatus == "0" && m.Standard == standard).OrderBy(m => m.LocatNo).ToList();
                    if (house.WareHouseNo == "M01")
                    {
                        stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.Status == "0" && m.PalletStatus == "0" && m.Standard == standard && !string.IsNullOrWhiteSpace(m.LocatNo)).OrderBy(m => m.LocatNo).ToList();
                    }
                    else
                    {
                        stockDetail = stockDetail.Where(m => m.IsDel == "0" && m.Status == "0" && m.PalletStatus == "0" && m.Standard == standard && !string.IsNullOrWhiteSpace(m.LocatNo)).OrderBy(m => m.LocatNo).ToList();
                    }
                }
                //满桶
                else if (plnStatus == "2") 
@@ -292,12 +303,12 @@
                bool resultYi = false;
                #region#查找合适的 桶号 储位
                //目标仓库所有储位
                var locatList = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.WareHouseNo == house.WareHouseNo).ToList();
                //目标仓库所有不需要移库的储位
                var locatList = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Flag=="0" && w.WareHouseNo == house.WareHouseNo).OrderBy(w=>w.Column).ToList();
                //目标仓库所有最外侧的储位
                var locatListWai = locatList.Where(w => string.IsNullOrEmpty(w.AisleOne)).Select(s => s.LocatNo);
                //先找不需要移库的桶
                var palletModel = stockDetail.Where(w => locatListWai.Contains(w.LocatNo)).OrderByDescending(w => w.UpdateTime).FirstOrDefault();
                var palletModel = stockDetail.Where(w => locatListWai.Contains(w.LocatNo) && w.Status == "0").OrderByDescending(w => w.UpdateTime).FirstOrDefault();
                if (palletModel == null)
                {
                    //找需要移库的桶
@@ -383,16 +394,12 @@
                        }
                        else//失败
                        {
                            logTaskEntry.IsSuccess = 0;
                            logTaskEntry.Information = agvMsg;
                            Db.Updateable(logTaskEntry).ExecuteCommand();
                            throw new Exception("桶号:"+ task.Pallno + ",调度小车失败");
                        }
                    }
                    else 
                    {
                        logTaskEntry.IsSuccess = 0;
                        logTaskEntry.Information = "货架与货位绑定失败,原因:"+agvBindMsg;
                        Db.Updateable(logTaskEntry).ExecuteCommand();
                        throw new Exception("桶号:" + task.Pallno + ",绑定货位失败");
                    }
                   
                }
@@ -428,6 +435,11 @@
                if (string.IsNullOrWhiteSpace(areaNo) || string.IsNullOrWhiteSpace(StartLocate) || string.IsNullOrWhiteSpace(plnStatus))
                {
                    throw new Exception("区域/起始位/桶类型不能为空");
                }
                if (weight < 0)
                {
                    throw new Exception("重量应不小于0");
                }
                //if (plnStatus == "0" && string.IsNullOrWhiteSpace(standard))
@@ -586,17 +598,13 @@
                    }
                    else//失败
                    {
                        logTaskEntry.IsSuccess = 0;
                        logTaskEntry.Information = agvMsg;
                        Db.Updateable(logTaskEntry).ExecuteCommand();
                        throw new Exception("桶号:" + task.Pallno + ",调度小车失败");
                    }
                }
                else
                {
                    logTaskEntry.IsSuccess = 0;
                    logTaskEntry.Information = "货架与货位绑定失败,原因:"+agvBindMsg;
                    Db.Updateable(logTaskEntry).ExecuteCommand();
                    throw new Exception("桶号:" + task.Pallno + ",绑定货位失败");
                }
                
@@ -619,7 +627,7 @@
        /// <param name="comeFrom"></param>
        /// <param name="userId"></param>
        /// <exception cref="Exception"></exception>
        public void RCSFinishTask(string taskNo, string status, string comeFrom, int userId = 0)
        public void RCSFinishTask(string taskNo, string locateNo, string status, string comeFrom, int userId = 0)
        {
            try
            {
@@ -659,7 +667,7 @@
                    return;
                }
                //库存明细
                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == taskInfo.PalletNo);
                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == taskInfo.PalletNo && w.IsDel=="0");
                if (stockDetail == null)
                {
                    throw new Exception($"桶库存信息不存在");
@@ -789,7 +797,7 @@
                                break;
                            case "2002":
                                deviceID = "1004";
                                break;
                                break;
                            default:
                                throw new Exception("叫净桶点位异常");
                        }
@@ -829,7 +837,7 @@
                            //判断当前清洗机设备上有几个脏桶,status:2 正在清洗的脏桶(状态触发变更为AGV叫第2个脏桶时触发)
                            int ztQty = Db.Queryable<DataStockDetail>().Count(w => w.IsDel == "0" && w.Status == "2" && w.LocatNo == deviceID);
                            if (ztQty == 1)
                            if (ztQty == 2)
                            {
                                throw new Exception((deviceID == "1001"?"1":"2") + "号清洗机脏桶已满,重复叫料!");
                            }
@@ -866,6 +874,14 @@
                            {
                                throw new Exception($"起始目标储位信息不存在,桶号:{palletModel.LocatNo}");
                            }
                            //起始桶信息
                            var startDataDetil = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.Status == "0" && w.PalletStatus == "3");
                            if (startDataDetil == null)
                            {
                                throw new Exception($"清洗机所叫的桶状态错误,桶号:{palletModel.LocatNo}");
                            }
                            startDataDetil.Status = "4";
                            Db.Updateable(startDataDetil).ExecuteCommand();
                        }
                        else
                        {
@@ -891,7 +907,7 @@
                            {
                                palletModel.LocatNo = startLoction.LocatNo;
                                palletModel.PalletStatus = "0";
                                palletModel.Status = "0";
                                palletModel.Status = "4";
                                Db.Updateable(palletModel).ExecuteCommand();
                            }
                            //分配储位
@@ -903,13 +919,13 @@
                                throw new Exception("没有空余的净桶储位");
                            }
                            //优先分配四楼中间站净桶区
                            //endLoction = jtLocate.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C01")
                            //                    .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
                            //if (endLoction == null)//四楼中间站净桶区没有空储位,再从三楼中间站净桶区查找
                            //{
                            endLoction = jtLocate.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C01")
                                                .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
                            if (endLoction == null)//四楼中间站净桶区没有空储位,再从三楼中间站净桶区查找
                            {
                            endLoction = jtLocate.Where(w => w.WareHouseNo == "M16" && w.AreaNo == "C24")
                                                .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
                            //}
                            }
                            if (endLoction == null)//三楼中间站净桶区没有空储位,再从三楼清洗间缓存区查找             PS:小车现在还不支持清洗机直接送往4楼净桶区
                            {
                                endLoction = jtLocate.Where(w => w.WareHouseNo == "M44" && w.AreaNo == "C55")
@@ -996,16 +1012,12 @@
                    }
                    else//失败
                    {
                        logTaskEntry.IsSuccess = 0;
                        logTaskEntry.Information = agvMsg;
                        Db.Updateable(logTaskEntry).ExecuteCommand();
                        throw new Exception("桶号:" + task.Pallno + ",调度小车失败");
                    }
                }
                else
                {
                    logTaskEntry.IsSuccess = 0;
                    logTaskEntry.Information = agvBindMsg;
                    Db.Updateable(logTaskEntry).ExecuteCommand();
                    throw new Exception("桶号:" + task.Pallno + ",绑定货位失败");
                }
                
                //提交事务
@@ -1046,6 +1058,8 @@
                //判断该储位是否是内侧储位
                if (!string.IsNullOrEmpty(locatInfo.AisleOne))
                {
                    ////获取当前库位的外侧储位信息
                    //var waiLocatInfo = Db.Queryable<SysStorageLocat>().First(w=>w.IsDel == "0" && w.Row == locatInfo.Row && w.Column == locatInfo.Column - 1);
                    //判断外侧储位是否有桶
                    var palletInfoYi = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == locatInfo.AisleOne);
                    if (palletInfoYi != null)
@@ -1429,6 +1443,7 @@
                string areaNo = string.Empty;
                switch (palletStatus)
                {
                    case "0"://净桶
                             //查到到净桶区域编号
                        areaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.Type == "0").Select(s => s.AreaNo).First();
Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -1097,7 +1097,7 @@
                
                //修改库存明细
                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
                if (stockDetail == null)
                if (stockDetail == null)
                {
                    throw new Exception("未查询到该桶库存信息,请检查!");
                }
Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
namespace WMS.IBLL.IBllTransServer
@@ -12,9 +13,9 @@
        List<SysStorageLocat> GetLocatByArea(string area);
        List<DicModel> GetPlnStatusByArea(string area);
        List<string> GetSkuByStatus(string palletStatus);
        List<DataStockDetail> GetSkuByStatus(string palletStatus);
        List<string> GetLotNoBySku(string skuNo);
        List<string> GetSku();
        List<SysMaterials> GetSku();
        void jiaoLiaoHopper(string areaNo, string endLocate, string plnStatus, string standard, string skuNo, string lotNo, string url,string bindUrl, int userId);
        void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight, string skuNo, string lotNo, string url, string bindUrl, int userId);
@@ -35,7 +36,7 @@
        /// <param name="comeFrom"></param>
        /// <param name="userId"></param>
        /// <exception cref="Exception"></exception>
        void RCSFinishTask(string taskNo, string status, string comeFrom, int userId = 0);
        void RCSFinishTask(string taskNo, string locateNo, string status, string comeFrom, int userId = 0);
        /// <summary>
        /// 清洗机叫料状态
Wms/Wms/Controllers/DownApiController.cs
@@ -954,9 +954,9 @@
                }
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                _hopper.RCSFinishTask(model.robotTaskCode, "1", "AGV");
                _hopper.RCSFinishTask(model.robotTaskCode, extraValue.values.slotCode, "1", "AGV");
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
Wms/Wms/appsettings.json
@@ -11,7 +11,7 @@
    //"ConnectionString": "Server=47.95.120.93;Database=WMS_JC09;User ID=sa;password=boxline!@#; Integrated Security=True;",
    //"ConnectionString": "Server=47.95.120.53;Database=WMS_JC09;User ID=sa;Password=boxline!@#;Integrated Security=False;",
    //"ConnectionString": "Server=192.168.62.106;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;",
    "ConnectionString": "Server=192.168.62.200;Database=WMS_JC37;User ID=sa;Password=sql2019;Integrated Security=False;"
    "ConnectionString": "Server=192.168.10.201\\WMSSQLSERVER;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
    //"ConnectionString": "Server=.;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
    //"ConnectionString": "Data Source=192.168.10.201\\WMSSQLSERVER;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
    //"ConnectionString": "Server=.\\MSSQLSERVER2019;Database=WMS_JC23-2;User Id=sa;Password=admin2023@;" // SqlServer 库连接字符串