admin
12 小时以前 cd93dd1fd57afa3437e43499236273c2e1df4423
HTML/views/SOSetting/ExportNotice.html
@@ -68,7 +68,7 @@
                        <option value="2">抽检出库</option>
                        <option value="4">不合格品出库</option>
                        <option value="7">其他出库</option>
                        <option value="9">生产领料出库</option>
                        <option value="9">生产领料出库</option>
                     </select>
                  </div>
               </div>
@@ -128,9 +128,41 @@
                     <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
                  </button>
               </div>
               <!-- 批量导出按钮 -->
               <div class="layui-inline">
                  <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit
                     lay-filter="LAY-app-xml-search" id="xmlExportBtn">
                     <i class="layui-icon"></i>XML
                  </button>
               </div>
               <!-- 批量导出按钮时间选择框 -->
               <div class="layui-inline" id="divXmlExport" style="display: none; padding-top: 10px;">
                  <div class="layui-form">
                     <div class="layui-form-item">
                        <label class="layui-form-label">选择日期</label>
                        <div class="layui-input-inline" style="width: 200px;">
                           <input type="text" id="exportDate" class="layui-input" placeholder="请选择日期">
                        </div>
                     </div>
                     <div class="layui-form-item">
                        <div class="layui-input-block">
                           <button class="layui-btn layui-btn-sm" id="confirmExportBtn">
                              <i class="layui-icon layui-icon-ok"></i>确定导出
                           </button>
                           <button type="button" class="layui-btn layui-btn-sm layui-btn-primary"
                              id="cancelExportBtn">
                              <i class="layui-icon layui-icon-close"></i>取消
                           </button>
                        </div>
                     </div>
                  </div>
               </div>
               <!-- 确认出库口弹窗 -->
               <div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
                  <div class="layui-inline">
                  <!-- <div class="layui-inline">
                     <label class="layui-form-label">拆垛方式</label>
                     <div class="layui-input-inline" style="width: 220px;">
                        <select name="UnstackWay" id="UnstackWay" lay-filter="UnstackWay" lay-search>
@@ -138,7 +170,7 @@
                           <option value="1">PDA拆垛</option>
                        </select>
                     </div>
                  </div>
                  </div> -->
                  <!-- <div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
                     <label class="layui-form-label">装车口</label>
                     <div class="layui-input-inline" style="width: 220px;">
@@ -156,10 +188,8 @@
                     <div class="layui-input-inline" style="width: 220px;">
                        <select name="PickingArea" id="PickingArea" lay-search>
                           <option value=""></option>
                           <option value="1">1</option>
                           <option value="2">2</option>
                           <option value="3">3</option>
                           <option value="4">4</option>
                           <option value="17">17工位</option>
                           <option value="18">18工位</option>
                        </select>
                     </div>
                  </div>
@@ -340,7 +370,11 @@
               </script>
               <!-- #endregion -->
            </div>
            <!-- if(d.Type == "1" && (d.Status == '2' || d.Status == '3')){
                              html += `<a class="layui-btn layui-btn-normal layui-btn-xs outClass" lay-event="beiLiaoOutKu">
                                 <i class="layui-icon layui-icon-ok"></i>备料
                              </a>`;
                           } -->
            <script type="text/html" id="table-content-list">
                  {{# function GetBtn1(d){
                        var html = ''; 
@@ -352,7 +386,7 @@
                                 </a>`;
                              }
                           }
                           if(d.Status == '0' && d.Origin == 'WMS'){
                           if(d.Status == '0'){
                              html += `<a class="layui-btn layui-btn-normal layui-btn-xs uptClass" lay-event="edit">
                                       <i class="layui-icon layui-icon-edit"></i>编辑
                                    </a>
@@ -365,18 +399,14 @@
                                       <i class="layui-icon layui-icon-delete"></i>取消分配
                                    </a>`;
                           }
                           if(d.Type == "1" && (d.Status == '2' || d.Status == '3')){
                              html += `<a class="layui-btn layui-btn-normal layui-btn-xs outClass" lay-event="beiLiaoOutKu">
                                 <i class="layui-icon layui-icon-ok"></i>备料
                              </a>`;
                           }
                           if( d.Status == '2' || d.Status == '3'){
                           if( (d.Status == '2' || d.Status == '3')){
                              html += `<a class="layui-btn layui-btn-normal layui-btn-xs outClass" lay-event="outKu">
                                       <i class="layui-icon layui-icon-ok"></i>出库
                                    </a>`;
                           }
                        }
                        if( d.Status == '4'){
                        if( d.Status == '3' || d.Status == '4'){
                           html += `<a class="layui-btn layui-btn-normal layui-btn-xs guanClass" lay-event="finish"> 
                                    <i class="layui-icon layui-icon-ok"></i>关单
                                 </a>`;
@@ -402,12 +432,13 @@
                  {{# function GetBtn2(d){
                        var html = '';
                        
                        if((d.Status == "0" ||d.Status == "1") && d.Qty > d.AllotQty && d.IsWave == "0"){
                        if(d.AllotQty<d.Qty){
                           html += `<a class="layui-btn layui-btn-normal layui-btn-xs shoufenClass" lay-event="wan">
                                    <i class="layui-icon layui-icon-ok"></i>手动分配
                                 </a>`;
                        } 
                        if(d.Status == "0" && d.Origin == "WMS" && d.IsWave == "0"){
                        if(d.Status == "0" && d.Origin == "WMS"){
                           html +=`<a class="layui-btn layui-btn-danger layui-btn-xs delClass" lay-event="del">
                                    <i class="layui-icon layui-icon-delete"></i>删除
                                 </a>`;
@@ -490,14 +521,15 @@
         var TotalColsArr = [[
            { field: '', title: '序号', type: 'numbers', width: 50, align: 'center', fixed: 'left', "disabled": true },
            { field: 'SONo', title: '出库单号', align: 'center', fixed: 'left', width: 165, "disabled": true },
            { field: 'Type', title: '单据类型', align: 'center', templet: '#templetType' , width: 120,},
            { field: 'Type', title: '单据类型', align: 'center', templet: '#templetType', width: 120, },
            { field: 'Status', title: '执行状态', align: 'center', templet: '#templetStatus', width: 90, },
            { field: 'OrderCode', title: '下发单号', align: 'center', width: 180 },
            { field: 'LogisticsName', title: '承运商', align: 'center', width: 120, },
            { field: 'CustomerName', title: '客户名称', align: 'center', width: 120, },
            { field: 'WareHouseName', title: '仓库', align: 'center', width: 90, },
            { field: 'Origin', title: '来源', align: 'center', width: 90, },
            { field: 'Demo', title: '备注', align: 'center', width: 180 },
            { field: 'CreateUserName', title: '创建人', align: 'center' , width: 110},
            { field: 'CreateUserName', title: '创建人', align: 'center', width: 110 },
            { field: 'CreateTime', title: '创建时间', align: 'center', width: 160, templet: '#templetCreateTime' },
            { field: 'UpdateUserName', title: '修改人', align: 'center', width: 110 },
            { field: 'UpdateTime', title: '修改时间', align: 'center', width: 160, templet: '#templetUpdateTime' },
@@ -509,7 +541,7 @@
            { field: 'LotNoText', title: '批次描述', align: 'center' },
            { field: 'IsDespatch', title: '是否发运', align: 'center', templet: '#templetIsDespatch' },
            { field: 'SupplierLot', title: '供货批次', align: 'center' },
            { field: 'caozuo', title: '操作', fixed: 'right', align: 'center', width: 360, toolbar: '#table-content-list', "disabled": false }
         ]];
         var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码
@@ -1128,6 +1160,7 @@
            }
         });
         var isNeedUnpack = '0'//是否需要拆箱,0:否  1:是
         var xmlFileName = "";
         //监听数据操作
         table.on('tool(LAY-app-content-list)', function (obj) {
            var data = obj.data;
@@ -1200,7 +1233,7 @@
                              isChongFu = true;
                           });
                        } else { //不成功
                           if(res.code==2){
                           if (res.code == 2) {
                              layer.confirm('当前单据批次出库是跨批出库,是否跨批出库?', function () {
                                 var param1 = {
                                    soNo: SoNo,
@@ -1225,12 +1258,12 @@
                                    }
                                 })
                              })
                           }else{
                           } else {
                              layer.msg(res.msg, {
                                 icon: 2,
                                 time: 2000 //2秒关闭(如果不配置,默认是3秒)
                              });
                           }
                           }
                           isChongFu = true;
                        }
                     });
@@ -1274,50 +1307,12 @@
                  area: ['1200px', '90%'],
               });
            } else if (obj.event === 'outKu') {
               $("#UnstackWay").val(0)
               $("#UnstackWay").attr("disabled", false);
               //$("#LoadingArea").val('')
               $("#PickingArea").val('')
               $('.DivLoadingArea').show()
               form.render('select');
               var param = {
                  soNo: SoNo
               };
               if (orderType == "0") {
                  // 判断是否需要拆箱,需要拆箱就需要选择出库口
                  sendData(IP + "/BllSo/IsNeedUnpack", param, 'get', function (res) {
                     if (res.code == 0) { //成功
                        if (res.data == "1") {
                           isNeedUnpack = '1'
                           $('.DivPickingArea2').show()
                        } else {
                           isNeedUnpack = '0'
                           $('.DivPickingArea2').hide()
                        }
                        if ($('#UnstackWay').val() == '1') {
                           $('.DivPickingArea2').show()
                        }
                        outFunction(data.SONo)
                     } else { //不成功
                        layer.msg(res.msg, {
                           icon: 2,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           return;
                        });
                     }
                  });
               } else {
                  $("#UnstackWay").val(1)
                  $("#UnstackWay").attr("disabled", true);
                  form.render('select');
                  $('.DivLoadingArea').hide()
                  outFunction(data.SONo)
               }
               //if(data.WareHouseName =="成品库"){
               outFunction(data.SONo);
               // }else{
               //    outFunction2(data.SONo)
               // }
            } else if (obj.event === 'beiLiaoOutKu') {
               if (orderType != "1") {
@@ -1340,6 +1335,14 @@
                     };
                     sendData(IP + "/BllSo/AddExXmlStr", param, 'post', function (res) {
                        console.log(res);
                        if (data.Type == "0") {
                           xmlFileName = "SalesWareHouseOut_" + data.OrderCode + "_linklink";
                        } else if (data.Type == "2") {
                           xmlFileName = "CheckWareHouseOut_" + data.OrderCode + "_linklink";
                        } else {
                           xmlFileName = data.OrderCode + "_linklink";
                        }
                        if (res.code == 0) { //成功 
                           createFile(res.data);
                           layer.msg("操作成功!", {
@@ -1405,31 +1408,40 @@
            } else if (obj.event === 'check') {//复核
               // 代码区域
               layer.confirm('确定复核此单据吗?', function (index) {
                  var param = {
                     Id: data.Id,
                  };
                  sendData(IP + "/UpApi/FinishExportNotice", param, 'post', function (res) {
                     if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable();
                           doing = true
                        });
                     } else { //不成功
                        layer.msg(res.msg, {
                           icon: 2,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () { doing = true });
                     }
                  });
                  if (isChongFu == true) {
                     isChongFu = false;
                     var param = {
                        Id: data.Id,
                     };
                     sendData(IP + "/UpApi/FinishExportNotice", param, 'post', function (res) {
                        if (res.code == 0) { //成功
                           layer.msg(res.msg, {
                              icon: 1,
                              time: 2000 //2秒关闭(如果不配置,默认是3秒)
                           }, function () {
                              refreshTable();
                              isChongFu = true;
                           });
                        } else { //不成功
                           layer.msg(res.msg, {
                              icon: 2,
                              time: 2000 //2秒关闭(如果不配置,默认是3秒)
                           }, function () { isChongFu = true; });
                        }
                     });
                  } else {
                     layer.msg("请勿重复点击", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                     });
                  }
               });
            }
         });
         //选择出库口弹窗方法
         function outFunction(soNo) {
            layer.open({
               type: 1,
               title: '确认出库口',
@@ -1438,29 +1450,11 @@
               area: ['350px', '285px'],
               btn: ['确定', '取消'],
               yes: function (index, layero) {
                  var pa = $('#PickingArea').val();
                  console.log(pa)
                  if (isChongFu == true) {
                     isChongFu = false;
                     if (pa == null) {
                        layer.msg("请勿重复点击", {
                           icon: 2,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                     }
                     // if ($('#UnstackWay').val() == '0') {
                     //    if ($('#LoadingArea').val() == '') {
                     //       layer.msg("请选择装车口", {
                     //          icon: 2,
                     //          time: 2000 //2秒关闭(如果不配置,默认是3秒)
                     //       });
                     //       isChongFu = true;
                     //       return;
                     //    }
                     // }
                     console.log($("#PickingArea").val())
                     if ($("#PickingArea").val() == '') {
                     if ($("#PickingArea").val() == '' || $('#PickingArea').val() == null) {
                        layer.msg("请选择出库口", {
                           icon: 2,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
@@ -1470,8 +1464,8 @@
                     }
                     var param = {
                        soNo: soNo,
                        unstackingMode: $('#UnstackWay').val(),
                        outMode: pa,
                        //unstackingMode: $('#UnstackWay').val(),
                        outMode: $("#PickingArea").val(),
                        //loadingAddre: $('#LoadingArea').val()
                     };
                     console.log(param);
@@ -1503,6 +1497,47 @@
                     });
                  }
               }
            });
         }
         //不选择出库口的弹窗方法
         function outFunction2(soNo) {
            layer.confirm('确定当前单据出库吗?', function (index) {
               if (isChongFu == true) {
                  isChongFu = false;
                  var param = {
                     soNo: soNo,
                  };
                  console.log(param);
                  sendData(IP + "/DownApi/IssueOutHouse", param, 'get', function (res) {
                     console.log(res);
                     if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 3000 //1秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable();
                           isChongFu = true;
                        });
                     } else { //不成功
                        layer.msg(res.msg, {
                           icon: 2,
                           time: 3000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable();
                           isChongFu = true;
                        });
                     }
                     layer.close(index);
                  });
               } else {
                  layer.msg("请勿重复点击", {
                     icon: 2,
                     time: 2000 //2秒关闭(如果不配置,默认是3秒)
                  });
               }
            });
         }
@@ -1613,7 +1648,7 @@
         function createFile(val) {
            var content = val;   // 文件内容
            var blob = new Blob([content], { type: "text/plain;charset=utf-8" });
            var fileName = "ExInfo.xml"; // 文件名
            var fileName = xmlFileName + ".xml"; // 文件名
            saveAs(blob, fileName);
         }
         //下载文件函数
@@ -1673,6 +1708,118 @@
         //#endregion
      });
      //xml批量导出
      $('#xmlExportBtn').on('click', function () {
         // 打开日期选择弹窗
         layer.open({
            type: 1,
            title: '选择导出日期',
            content: $('#divXmlExport'),
            maxmin: false,
            area: ['350px', '200px'],
            success: function (layero, index) {
               // 初始化日期选择器
               laydate.render({
                  elem: '#exportDate',
                  type: 'date',
                  format: 'yyyy-MM-dd',
                  value: new Date(),
                  btns: ['confirm'],
                  done: function (value, date) {
                     console.log('选择的日期:', value);
                  }
               });
               // 清空输入框
               $('#exportDate').val('');
            }
         });
      });
      // 确定导出按钮点击事件
      $(document).on('click', '#confirmExportBtn', function () {
         var selectedDate = $('#exportDate').val();
         if (!selectedDate) {
            layer.msg('请先选择日期', {
               icon: 2,
               time: 2000
            });
            return;
         }
         //生成文件
         function createFile(val) {
            var content = val;   // 文件内容
            var blob = new Blob([content], { type: "text/plain;charset=utf-8" });
            var fileName = xmlFileName + ".xml"; // 文件名
            saveAs(blob, fileName);
         }
         //下载文件函数
         function saveAs(blob, fileName) {
            var downloadA = document.createElement("a");
            downloadA.download = fileName;
            downloadA.href = URL.createObjectURL(blob);
            document.body.appendChild(downloadA);
            downloadA.click();
            document.body.removeChild(downloadA);
         }
         // 获取搜索参数
         var param = {
            date: selectedDate  // 添加选择的日期
         };
         layer.confirm('确定导出 ' + selectedDate + ' 的数据吗?', function (index) {
            layer.close(index); // 关闭确认框
            // 显示加载中
            var loadingIndex = layer.load(1, {
               shade: [0.1, '#fff']
            });
            // 调用后端接口导出XML
            sendData(IP + "/BllSo/AddExportXmls", param, 'get', function (res) {
               console.log(res);
               if (res.code == 0) { //成功
                  for (var i = 0; i < res.data.length; i++) {
                     xmlFileName = res.data[i].fileName;
                     createFile(res.data[i].fileContent);
                  }
                  layer.msg("操作成功!", {
                     icon: 1,
                     time: 2000 //2秒关闭(如果不配置,默认是3秒)
                  }, function () {
                     layer.closeAll();
                  });
               } else { //不成功
                  layer.msg(res.msg, {
                     icon: 2,
                     time: 2000 //2秒关闭(如果不配置,默认是3秒)
                  }, function () {
                     isChongFu = true;
                  });
               }
            }, function (xhr, status, error) {
               layer.close(loadingIndex);
               layer.msg('网络请求失败: ' + error, {
                  icon: 2,
                  time: 2000
               });
            });
         });
      });
      // 取消按钮点击事件
      $(document).on('click', '#cancelExportBtn', function () {
         layer.closeAll();
      });
   </script>
</body>