Merge branch 'master' into djp
| | |
| | | |
| | | } |
| | | |
| | | |
| | | var isChongFu = true; |
| | | //绑定到托盘事件 |
| | | form.on('submit(formBind)', function (data) { |
| | | if (xianshiyemian == 0) { |
| | | console.log($("#goodSelect").val()); |
| | | if ($("#bar").val() == "") { |
| | | layer.msg('请选择入库单', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#goodSelect").val() == "") { |
| | | layer.msg('请选择物料及明细', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#STOCKCODE").val() == "") { |
| | | layer.msg('请扫描托盘条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#BOXCODE").val() == "") { |
| | | layer.msg('请扫描外箱条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | var param = { |
| | | AsnNo: $("#bar").val(), |
| | | PalletNo: $("#STOCKCODE").val(), |
| | | AsnDetailId: parseInt($("#goodSelect").val()), |
| | | LotNo: $("#goodSelect").find("option:selected").text(), |
| | | BoxNo: $("#BOXCODE").val(), |
| | | IsContinue: isContinue, |
| | | TailBoxNo: $("#BOXCODE2").val(), |
| | | Origin: "PDA", |
| | | TableType: xianshiyemian, |
| | | } |
| | | console.log(param) |
| | | //组盘 |
| | | sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | setOrderGoods(); |
| | | //refreshTable(); |
| | | $("#BOXCODE").val(""); |
| | | $("#BOXCODE2").val(""); |
| | | $("#QTY").val(""); |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | if (isChongFu == true) { |
| | | isChongFu = false; |
| | | |
| | | if (xianshiyemian == 0) { |
| | | if ($("#bar").val() == "") { |
| | | layer.msg('请选择入库单', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | //回调 |
| | | }); |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | else if (xianshiyemian == 1) { |
| | | if ($("#bar1").val() == "") { |
| | | layer.msg('请选择入库单', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#goodSelect1").val() == "") { |
| | | layer.msg('请选择物料及明细', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#STOCKCODE1").val() == "") { |
| | | layer.msg('请扫描托盘条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | // 获取输入的值并处理 |
| | | var skuQty = parseFloat($("#SkuQty").val()) || 0; |
| | | // 确保显示时保留4位小数 |
| | | var formattedQty = skuQty.toFixed(4); |
| | | |
| | | var param = { |
| | | AsnNo: $("#bar1").val(), //出库单据 |
| | | PalletNo: $("#STOCKCODE1").val(), //托盘条码 |
| | | AsnDetailId: parseInt($("#goodSelect1").val()), //入库单明细ID |
| | | LotNo: $("#goodSelect1").find("option:selected").text(), //物料批次 |
| | | SkuQty: Number(skuQty), //物料数量 |
| | | Demo: $("#NoticeDemo").val(), //物料数量 |
| | | Origin: "PDA", |
| | | TableType: xianshiyemian, |
| | | } |
| | | |
| | | console.log(param) |
| | | //组盘 |
| | | sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | setOrderGoods(); |
| | | //refreshTable(); |
| | | $("#STOCKCODE").val(""); |
| | | $("#SkuQty").val(""); |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | if ($("#goodSelect").val() == "") { |
| | | layer.msg('请选择物料及明细', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | //回调 |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#STOCKCODE").val() == "") { |
| | | layer.msg('请扫描托盘条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#BOXCODE").val() == "") { |
| | | layer.msg('请扫描外箱条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | var param = { |
| | | AsnNo: $("#bar").val(), |
| | | PalletNo: $("#STOCKCODE").val(), |
| | | AsnDetailId: parseInt($("#goodSelect").val()), |
| | | LotNo: $("#goodSelect").find("option:selected").text(), |
| | | BoxNo: $("#BOXCODE").val(), |
| | | IsContinue: isContinue, |
| | | TailBoxNo: $("#BOXCODE2").val(), |
| | | Origin: "PDA", |
| | | TableType: xianshiyemian, |
| | | } |
| | | layer.msg('数据提交中,正在组托...'); |
| | | setTimeout(function() { |
| | | //组盘 |
| | | sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | setOrderGoods(); |
| | | //refreshTable(); |
| | | $("#BOXCODE").val(""); |
| | | $("#BOXCODE2").val(""); |
| | | $("#QTY").val(""); |
| | | |
| | | isChongFu = true; |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | //回调 |
| | | isChongFu = true; |
| | | }); |
| | | } |
| | | }); |
| | | }, 2000); // 延迟 1.5 秒 |
| | | |
| | | } |
| | | else if (xianshiyemian == 1) { |
| | | if ($("#bar1").val() == "") { |
| | | layer.msg('请选择入库单', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#goodSelect1").val() == "") { |
| | | layer.msg('请选择物料及明细', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#STOCKCODE1").val() == "") { |
| | | layer.msg('请扫描托盘条码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | // 获取输入的值并处理 |
| | | var skuQty = parseFloat($("#SkuQty").val()) || 0; |
| | | // 确保显示时保留4位小数 |
| | | var formattedQty = skuQty.toFixed(4); |
| | | |
| | | var param = { |
| | | AsnNo: $("#bar1").val(), //出库单据 |
| | | PalletNo: $("#STOCKCODE1").val(), //托盘条码 |
| | | AsnDetailId: parseInt($("#goodSelect1").val()), //入库单明细ID |
| | | LotNo: $("#goodSelect1").find("option:selected").text(), //物料批次 |
| | | SkuQty: Number(skuQty), //物料数量 |
| | | Demo: $("#NoticeDemo").val(), //物料数量 |
| | | Origin: "PDA", |
| | | TableType: xianshiyemian, |
| | | } |
| | | |
| | | console.log(param) |
| | | //组盘 |
| | | sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | setOrderGoods(); |
| | | //refreshTable(); |
| | | $("#STOCKCODE").val(""); |
| | | $("#SkuQty").val(""); |
| | | |
| | | 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秒) |
| | | }); |
| | | } |
| | | |
| | | |
| | | return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 |
| | | }); |
| | |
| | | { |
| | | throw Oops.Bah("托盘储位信息不存在,请检查!"); |
| | | } |
| | | if (models.WareHouseNo != "W04") |
| | | if (models.WareHouseNo != "W04" && models.WareHouseNo != "W02") |
| | | { |
| | | throw Oops.Bah("该托盘未在平库内,请检查!"); |
| | | throw Oops.Bah("该托盘未在平库内或货架库内,请检查!"); |
| | | } |
| | | return models.LocatNo; |
| | | } |
| | |
| | | { |
| | | throw Oops.Bah("托盘储位信息不存在,请检查!"); |
| | | } |
| | | if (models.WareHouseNo != "W04") |
| | | if (models.WareHouseNo != "W04" && models.WareHouseNo != "W02") |
| | | { |
| | | throw Oops.Bah("该托盘未在平库内,请检查!"); |
| | | } |
| | |
| | | throw Oops.Bah("储位信息不存在,请检查!"); |
| | | } |
| | | |
| | | |
| | | storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04").OrderBy(o => o.AreaNo).ToListAsync(); |
| | | if (models.WareHouseNo == "W02") |
| | | { |
| | | storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04" && (w.AreaNo == "B01" || w.AreaNo == "B02")).OrderBy(o => o.AreaNo).ToListAsync(); |
| | | } |
| | | else |
| | | { |
| | | storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04").OrderBy(o => o.AreaNo).ToListAsync(); |
| | | } |
| | | |
| | | } |
| | | return storageArea; |
| | |
| | | { |
| | | throw Oops.Bah("托盘储位信息不存在,请检查!"); |
| | | } |
| | | if (stockDetail.WareHouseNo != "W04") |
| | | if (stockDetail.WareHouseNo != "W04" && stockDetail.WareHouseNo != "W02") |
| | | { |
| | | throw Oops.Bah("该托盘未在平库内,请检查!"); |
| | | } |
| | |
| | | for (int i = 1; i <= 2; i++) |
| | | { |
| | | var iStr = i.ToString(); |
| | | locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr); |
| | | try |
| | | { |
| | | locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr); |
| | | } |
| | | catch (Exception e) |
| | | { } |
| | | if (locate != null) |
| | | { |
| | | break; |
| | |
| | | var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m=>m.RoadwayNo).ToList(); |
| | | //巷道组信息 |
| | | var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo) && roadStr.Contains(m.RoadwayNo)) |
| | | .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); |
| | | .GroupBy(m => m.RoadwayNo) |
| | | .Select(m => m.RoadwayNo) |
| | | .ToList() |
| | | .OrderBy(roadwayNo => |
| | | { |
| | | // 移除所有非数字字符,只保留数字 |
| | | var numbersOnly = new string(roadwayNo.Where(char.IsDigit).ToArray()); |
| | | return int.TryParse(numbersOnly, out int result) ? result : 0; |
| | | }).ToList(); |
| | | |
| | | #endregion |
| | | |
| | |
| | | { |
| | | // 判断当前巷道(组)是否有空余储位 |
| | | |
| | | var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); |
| | | var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.IsDel=="0" && m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); |
| | | |
| | | var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l) |
| | | .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count(); |
| | |
| | | |
| | | var roadList = db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) ) |
| | | .GroupBy(m=>m.RoadwayNo).Select(m=>m.RoadwayNo).ToList(); |
| | | |
| | | if (houseNo == "W02") |
| | | { |
| | | //一楼巷道 |
| | | var conveyList1 = new List<string>() { "LR01", "LR02", "LR03", "LR04", "LR05", "LR06", "LR07", "LR08" }; |
| | | //二楼巷道 |
| | | var conveyList2 = new List<string>() { "LR09", "LR10", "LR11", "LR12" }; |
| | | if (ceng == "1") |
| | | { |
| | | roadList = roadList.Where(m => conveyList1.Contains(m)).ToList(); |
| | | } |
| | | else if (ceng == "2") |
| | | { |
| | | roadList = roadList.Where(m => conveyList2.Contains(m)).ToList(); |
| | | } |
| | | } |
| | | |
| | | //数据字典(获取字典中仓库类型) |
| | | var dic = db.Queryable<SysDictionary>().First(m => m.Id.ToString() == house.Type); |
| | |
| | | foreach (var area in areaList) |
| | | { |
| | | var sql = $@"select * from SysStorageLocat where IsDel = 0 and Layer!= '3' and Flag = 0 and [Status] = 0 and RoadwayNo = '{roadwayNo}' and AreaNo = '{area}' and LocatNo not in({str}) "; |
| | | if (!string.IsNullOrWhiteSpace(ceng)) |
| | | { |
| | | sql += $"and Layer = '{ceng}' "; |
| | | } |
| | | //if (!string.IsNullOrWhiteSpace(ceng)) |
| | | //{ |
| | | // sql += $"and Layer = '{ceng}' "; |
| | | //} |
| | | sql += "order by "; |
| | | sql += topOrBom == 0 ? "Layer desc, " : "Layer, "; |
| | | sql += leftOrRight == 0 ? "[Column], " : "[Column] desc, "; |