| | |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | <!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel"> |
| | | <i class="layui-icon layui-icon-print layuiadmin-button-btn"></i>补打标签 |
| | | </button> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-danger delLabelClass" style="margin-left: 5px;" lay-event="delLabel" id="delLabel"> |
| | | <i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除标签 |
| | | </button> --> |
| | | </div> |
| | | <!-- 确认出库口弹窗 --> |
| | | <!-- <div class="layui-inline" id="divDelLotNo" style="display: none; padding-top: 10px;"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">入库单据</label> |
| | | <div class="layui-input-inline" style="width: 220px;"> |
| | | <input type="text" id="AsnNoSelect" name="AsnNoSelect" placeholder="入库单据" autocomplete="off" class="layui-input"> |
| | | |
| | | </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;"> |
| | | <select name="LotNoSelect" id="LotNoSelect" lay-search> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> --> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="layui-card-body"> |
| | |
| | | <script src="../../js/jquery-3.5.1.min.js"></script> |
| | | <script src="../../js/jquery.cookie.js"></script> |
| | | <script> |
| | | // layui.extend({ |
| | | // excel: '../../layuiadmin/layui/layui_exts/excel' // {/}的意思即代表采用自有路径,即不跟随 base 路径 |
| | | // }) |
| | | |
| | | |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //静态资源所在路径 |
| | | }).extend({ |
| | |
| | | // 页面加载绑定Table |
| | | bindTable(); |
| | | |
| | | //生成 |
| | | $('#BuDaLabel').on('click', function () { |
| | | layer.open({ |
| | | type: 2, |
| | | title: '打印', |
| | | content: 'LabelBoxBuDa.html', |
| | | maxmin: true, |
| | | area: ['430px', '390px'], |
| | | // btn: ['取消'] |
| | | }); |
| | | }); |
| | | $("#AsnNoSelect").on('input', function () { |
| | | |
| | | if ($("#AsnNoSelect").val() == "" || $("#AsnNoSelect").val().length < 16) { |
| | | return |
| | | } |
| | | if ($("#AsnNoSelect").val().length >= 16) { |
| | | $("#AsnNoSelect").val($("#AsnNoSelect").val().substr(-16)) |
| | | } |
| | | GetLotNoByAsnNo() |
| | | }) |
| | | function GetLotNoByAsnNo() { |
| | | |
| | | $("#LotNoSelect").empty() |
| | | $("#LotNoSelect").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | var param = { |
| | | asnNo: $("#AsnNoSelect").val(), |
| | | }; |
| | | sendData(IP + "/BllAsn/GetLotNoListByAsn", param, '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: 3000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //删除标签 |
| | | $('#delLabel').on('click', function () { |
| | | |
| | | layer.open({ |
| | | type: 1, |
| | | title: '删除标签', |
| | | content: $('#divDelLotNo'), |
| | | maxmin: false, |
| | | area: ['350px','340px'], |
| | | btn: ['确定', '取消'], |
| | | yes: function(index, layero) { |
| | | var param = { |
| | | AsnNo: $('#AsnNoSelect').val(), |
| | | LotNo: $('#LotNoSelect').val(), |
| | | }; |
| | | sendData(IP + "/BllAsn/DelLabelByAsnNo", param, 'post', function(res) { |
| | | if (res.code == 0) { //成功 |
| | | bindTable(); |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1500 //1秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | $('#AsnNoSelect').val(""); |
| | | $("#LotNoSelect").empty() |
| | | $("#LotNoSelect").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 3000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | bindTable(); |
| | | $('#AsnNoSelect').val(""); |
| | | $("#LotNoSelect").empty() |
| | | $("#LotNoSelect").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | }); |
| | | } |
| | | layer.close(index); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | |
| | | //自定义表头 |
| | | var TotalColsArr = [[ |
| | | |
| | |
| | | { field: 'CreateTime', title: '下发时间', align: 'center', templet: '#templetCreateTime' }, |
| | | { field: 'UpdateUserName', title: '修改人', align: 'center', width: 110 }, |
| | | { field: 'UpdateTime', title: '修改时间', align: 'center', templet: '#templetUpdateTime' }, |
| | | { field: 'caozuo', title: '操作', fixed: 'right', width: 280, align: 'center', toolbar: '#toolbarDemo1', "disabled": true } |
| | | //{ field: 'caozuo', title: '操作', fixed: 'right', width: 280, align: 'center', toolbar: '#toolbarDemo1', "disabled": true } |
| | | ]]; |
| | | var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | |
| | | { field: 'Qty', title: '数量', align: 'center', width: 70 }, |
| | | { field: 'CompleteQty', title: '完成数量', align: 'center', width: 90 }, |
| | | { field: 'CompleteTime', title: '完成时间', align: 'center', width: 160, templet: '#templetCompleteTime2' }, |
| | | { field: 'UnitName', title: '计量单位', align: 'center', width: 90 }, |
| | | { field: 'Price', title: '单价', align: 'center', width: 65 }, |
| | | { field: 'Money', title: '金额', align: 'center', width: 65 }, |
| | | //{ field: 'UnitName', title: '计量单位', align: 'center', width: 90 }, |
| | | //{ field: 'Price', title: '单价', align: 'center', width: 65 }, |
| | | //{ field: 'Money', title: '金额', align: 'center', width: 65 }, |
| | | { field: 'PackagName', title: '包装名称', align: 'center', width: 110, }, |
| | | { field: 'CreateUserName', title: '创建人', align: 'center', width: 100 }, |
| | | { field: 'CreateTime', title: '创建时间', align: 'center', width: 160, templet: '#templetCreateTime2' }, |
| | | { field: 'UpdateUserName', title: '修改人', align: 'center', width: 150, }, |
| | | { field: 'UpdateTime', title: '修改时间', align: 'center', width: 150, templet: '#templetUpdateTime3' }, |
| | | { field: 'caozuo', title: '操作', fixed: 'right', align: 'center', toolbar: '#toolbarDemoList', "disabled": true } |
| | | //{ field: 'caozuo', title: '操作', fixed: 'right', align: 'center', toolbar: '#toolbarDemoList', "disabled": true } |
| | | ]]; |
| | | var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | |
| | | } |
| | | //如果跳巷道并且未找到合适空储位,则跳到最后一次使用的巷道查询 |
| | | |
| | | if (roadNo == "") |
| | | if (string.IsNullOrWhiteSpace(roadNo)) |
| | | { |
| | | if (useLog != null) |
| | | { |
| | |
| | | roadNo = item; |
| | | } |
| | | //当前巷有位置则退出 |
| | | if (roadNo != null) |
| | | if (!string.IsNullOrWhiteSpace(roadNo)) |
| | | { |
| | | break; |
| | | } |
| | |
| | | }; |
| | | Db.Insertable(exTask).ExecuteCommand(); |
| | | |
| | | var asnNo = ""; |
| | | // 添加托盘绑定表托盘入库任务号 liudl |
| | | if (palletBindList.Count < 1) |
| | | { |
| | |
| | | bindModel.WareHouseNo = houseNo; |
| | | bindModel.RoadwayNo = roadNo; |
| | | Db.Updateable(bindModel).ExecuteCommand(); |
| | | asnNo = stockModel.ASNNo; |
| | | } |
| | | } |
| | | } |
| | | foreach (DataStockDetail stockModel in stockDetail) |
| | | { |
| | | //添加托盘上架记录 |
| | | var upShelf = new BllPalletUpShelf() |
| | | { |
| | | TaskNo = exTask.TaskNo, |
| | | TraceNo = asnNo, |
| | | PalletNo = palletNo, |
| | | SkuNo = stockModel.SkuNo, |
| | | SkuName = stockModel.SkuName, |
| | | LotNo = stockModel.LotNo, |
| | | Status = "1", |
| | | |
| | | WareHouseNo = houseNo, |
| | | RoadwayNo = roadNo, |
| | | AreaNo = "", |
| | | LocatNo = "", |
| | | |
| | | CreateUser = 0, |
| | | }; |
| | | Db.Insertable(upShelf).ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | if (palletBindList.Count >= 1) |
| | | { |
| | |
| | | |
| | | }; |
| | | Db.Insertable(exTask).ExecuteCommand(); |
| | | |
| | | var asnNo = ""; |
| | | // 添加托盘绑定表托盘入库任务号 liudl |
| | | foreach (DataStockDetail stockModel in stockDetail) |
| | | { |
| | |
| | | bindModel.RoadwayNo = locate.RoadwayNo; |
| | | bindModel.LocatNo = locate.LocatNo; |
| | | Db.Updateable(bindModel).ExecuteCommand(); |
| | | asnNo = stockModel.ASNNo; |
| | | } |
| | | } |
| | | foreach (DataStockDetail stockModel in stockDetail) |
| | | { |
| | | //添加托盘上架记录 |
| | | var upShelf = new BllPalletUpShelf() |
| | | { |
| | | TaskNo = exTask.TaskNo, |
| | | TraceNo = asnNo, |
| | | PalletNo = palletNo, |
| | | SkuNo = stockModel.SkuNo, |
| | | SkuName = stockModel.SkuName, |
| | | LotNo = stockModel.LotNo, |
| | | Status = "1", |
| | | |
| | | WareHouseNo = houseNo, |
| | | RoadwayNo = locate.RoadwayNo, |
| | | AreaNo = locate.AreaNo, |
| | | LocatNo = locate.LocatNo, |
| | | |
| | | CreateUser = 0, |
| | | }; |
| | | Db.Insertable(upShelf).ExecuteCommand(); |
| | | } |
| | | |
| | | oldTaskNo = taskNo; |
| | | } |
| | | else |
| | |
| | | } |
| | | Db.Updateable(oldTask).ExecuteCommand(); |
| | | |
| | | var bindModel = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.Status == "2" |
| | | && m.PalletNo == oldTask.PalletNo && m.TaskNo == oldTaskNo); |
| | | if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.LocatNo)) |
| | | |
| | | var bindModelList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2" |
| | | && m.PalletNo == oldTask.PalletNo && m.TaskNo == oldTaskNo).ToList(); |
| | | foreach (var bindModel in bindModelList) |
| | | { |
| | | bindModel.TaskNo = oldTask.TaskNo; |
| | | bindModel.WareHouseNo = locate.WareHouseNo; |
| | | bindModel.RoadwayNo = locate.RoadwayNo; |
| | | bindModel.LocatNo = locate.LocatNo; |
| | | Db.Updateable(bindModel).ExecuteCommand(); |
| | | if (string.IsNullOrWhiteSpace(bindModel.LocatNo)) |
| | | { |
| | | bindModel.TaskNo = oldTask.TaskNo; |
| | | bindModel.WareHouseNo = locate.WareHouseNo; |
| | | bindModel.RoadwayNo = locate.RoadwayNo; |
| | | bindModel.LocatNo = locate.LocatNo; |
| | | Db.Updateable(bindModel).ExecuteCommand(); |
| | | |
| | | } |
| | | } |
| | | //更改上架信息 |
| | | var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == oldTask.TaskNo && m.PalletNo == palletNo).ToList(); |
| | | foreach (var upShelf in upShelfList) |
| | | { |
| | | upShelf.WareHouseNo = locate.WareHouseNo; |
| | | upShelf.RoadwayNo = locate.RoadwayNo; |
| | | upShelf.LocatNo = locate.LocatNo; |
| | | upShelf.Status = "1"; |
| | | Db.Updateable(upShelf).ExecuteCommand(); |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | locate.Status = "2"; |
| | |
| | | //添加操作日志记录 |
| | | var k = new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", taskNo, "完成", $"点击完成按钮、完成任务号为:{taskNo}的任务", userId); |
| | | } |
| | | |
| | | //判断是否是回流入库完成 |
| | | if (stockDetail.Any()) |
| | | { |
| | |
| | | task.FinishDate = comTime;//完成时间 |
| | | //更新任务信息 |
| | | Db.Updateable(task).ExecuteCommand(); |
| | | |
| | | //更改托盘上架记录信息 |
| | | var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo && m.PalletNo == task.PalletNo).ToList(); |
| | | foreach (var upShelf in upShelfList) |
| | | { |
| | | upShelf.Status = "2"; |
| | | Db.Updateable(upShelf).ExecuteCommand(); |
| | | } |
| | | //判断是否是回流入库完成 |
| | | if (stockDetail.Any()) |
| | | { |
| | |
| | | Db.Updateable(dataBoxInfoList).ExecuteCommand(); |
| | | #endregion |
| | | |
| | | #region 采购计划 |
| | | //var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.ASNDetailNo); |
| | | //if (noticeDetail == null) |
| | | //{ |
| | | // throw new Exception("未查询到托盘绑定的入库单明细信息"); |
| | | //} |
| | | //var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo); |
| | | //if (notice == null) |
| | | //{ |
| | | // throw new Exception("未查询到托盘绑定的入库单信息"); |
| | | //} |
| | | //if (notice.Type == "1" && !string.IsNullOrEmpty(noticeDetail.OrderDetailCode)) |
| | | //{ |
| | | // //采购单明细 |
| | | // var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>().First(it => it.OrderDetailCode == noticeDetail.OrderDetailCode && it.IsDel == "0"); |
| | | // planDetail.CompleteQty += item.Qty; |
| | | // if (planDetail.CompleteQty >= planDetail.Qty) |
| | | // { |
| | | // planDetail.Status = "2"; |
| | | // planDetail.CompleteTime = comTime; |
| | | // } |
| | | // Db.Updateable(planDetail).ExecuteCommand(); |
| | | |
| | | // //采购单 |
| | | // var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.Id == planDetail.ParentId && it.IsDel == "0"); |
| | | // var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>() |
| | | // .Count(m => m.IsDel == "0" && m.ParentId == planDetail.ParentId && m.Status != "2"); |
| | | // if (planDetailNum == 0) |
| | | // { |
| | | // planOrd.Status = "2"; |
| | | // planOrd.CompleteTime = comTime; |
| | | // Db.Updateable(planOrd).ExecuteCommand(); |
| | | // } |
| | | // else |
| | | // { |
| | | // if (planOrd.Status == "0") |
| | | // { |
| | | // planOrd.Status = "1"; |
| | | // Db.Updateable(planOrd).ExecuteCommand(); |
| | | // } |
| | | // } |
| | | //} |
| | | #endregion |
| | | item.Status = "3"; |
| | | item.CompleteTime = comTime; |
| | | } |
| | |
| | | } |
| | | Db.Updateable(bind).ExecuteCommand(); |
| | | } |
| | | //更改托盘上架记录信息 |
| | | var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo && m.PalletNo == task.PalletNo).ToList(); |
| | | foreach (var upShelf in upShelfList) |
| | | { |
| | | upShelf.IsDel = "1"; |
| | | Db.Updateable(upShelf).ExecuteCommand(); |
| | | } |
| | | |
| | | //储位信息 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); |
| | | if (locate != null) |
| | | { |
| | |
| | | { |
| | | Status = "0", |
| | | OrderCode = model.OrderCode, |
| | | UserName = model.Username //制单人 |
| | | }; |
| | | // 插入采购单总表 |
| | | int parentId = Db.Insertable(planModel).ExecuteReturnIdentity(); |
| | |
| | | { |
| | | return Db.Queryable<SysMaterials>() |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysPackag>((a, b,c) => a.PackagNo == c.PackagNo) |
| | | .Where((a,b,c) => c.IsDel == "0") |
| | | .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo)) |
| | | .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuNo.Contains(skuName)) |
| | | .WhereIF(!string.IsNullOrEmpty(auditStatusNo), a => a.AuditStatusNo == auditStatusNo) |
| | |
| | | .WhereIF(!string.IsNullOrEmpty(environment), a => a.Environment == environment) |
| | | .WhereIF(!string.IsNullOrEmpty(categoryNo), a => a.CategoryNo == categoryNo) |
| | | .Where(a => a.IsDel == "0") |
| | | .Select<MaterialsDto>((a, b) => new MaterialsDto() { CreateUserName = b.RealName }, true) |
| | | .Select<MaterialsDto>((a, b, c) => new MaterialsDto() { CreateUserName = b.RealName,PackagName = c.PackagName }, true) |
| | | .ToListAsync(); |
| | | } |
| | | |