| | |
| | | var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | | function refreshTable() { |
| | | //#region 原始非自定义列 |
| | | // var param = { |
| | | // ASNNo: $("#ASNNo").val(), |
| | | // Type: $("#Type").val(), |
| | | // Status: $("#Status").val(), |
| | | // CustomerName: $("#CustomerName").val(), |
| | | // LotNo: $("#LotNo").val(), |
| | | // SkuNo: $("#SkuNo").val(), |
| | | // SkuName: $("#SkuName").val(), |
| | | // StartTime:$("#StartTime").val(), |
| | | // EndTime: $("#EndTime").val() |
| | | // }; |
| | | // table.render({ |
| | | // elem: '#LAY-app-content-list', |
| | | // url: IP + "/BllAsn/GetArrivalNoticeList", |
| | | // method: 'POST', |
| | | // height: h1, |
| | | // id: 'LAY-app-content-list', |
| | | // where: param, |
| | | // contentType: 'application/json', |
| | | // headers:{ToKen:$.cookie('token')}, |
| | | // page: true, |
| | | // even: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // done: function(res) { |
| | | // setRight(); |
| | | |
| | | // //aaa = $('#LAY-app-content-list').next().find('.layui-table-main').find('tr[data-index="0"]').find('td[data-field="ASNNo"]'); |
| | | // // refreshTablemx(res.data[0].ASNNo); |
| | | // }, |
| | | // cols: [ |
| | | // [{ |
| | | |
| | | // title: '序号', |
| | | // type: 'numbers', |
| | | // width: 50, |
| | | // align: 'center', |
| | | // fixed: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'ASNNo', |
| | | // title: '入库单号', |
| | | // align: 'center', |
| | | // fixed: 'left', |
| | | // sort: true, |
| | | // width: 180 |
| | | // }, |
| | | // { |
| | | // field: 'Status', |
| | | // title: '执行状态', |
| | | // align: 'center', |
| | | // templet: function (d) { |
| | | // switch (d.Status) { |
| | | // case "0" : return '<button class="layui-btn layui-btn-radius layui-btn-xs">等待执行</button>'; |
| | | // case "1" : return '<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">正在执行</button>'; |
| | | // case "2" : return '<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">执行完毕</button>'; |
| | | // case "3" : return '<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">订单关闭</button>'; |
| | | // default : return ""; |
| | | // } |
| | | // } |
| | | // }, |
| | | // { |
| | | // field: 'Origin', |
| | | // title: '来源', |
| | | // align: 'center', |
| | | // width: 80 |
| | | // }, |
| | | // { |
| | | // field: 'CustomerName', |
| | | // title: '客户名称', |
| | | // align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'Type', |
| | | // title: '单据类型', |
| | | // align: 'center', |
| | | // templet: function (d) { |
| | | // switch (d.Type) { |
| | | // case "0" : return "标准产品入库"; |
| | | // case "1" : return "非标产品入库"; |
| | | // default : return ""; |
| | | // } |
| | | // // JC08 |
| | | // // switch (d.Status) { |
| | | // // case "0" : return "成品入库"; |
| | | // // case "1" : return "原料入库"; |
| | | // // case "2" : return "退货入库"; |
| | | // // default : return ""; |
| | | // // } |
| | | // } |
| | | // }, |
| | | // { |
| | | // field: 'CompleteTime', |
| | | // title: '完成时间', |
| | | // align: 'center', |
| | | // hide:true, |
| | | // templet: function (d) { |
| | | // return formatDate2(d.CompleteTime); |
| | | // } |
| | | // }, |
| | | // { |
| | | // field: 'CreateUserName', |
| | | // title: '创建人', |
| | | // align: 'center', |
| | | // width: 110 |
| | | // }, |
| | | // { |
| | | // field: 'CreateTime', |
| | | // title: '创建时间', |
| | | // align: 'center', |
| | | // templet: function (d) { |
| | | // return formatDate(d.CreateTime); |
| | | // } |
| | | // }, |
| | | // { |
| | | // field: 'UpdateUserName', |
| | | // title: '修改人', |
| | | // align: 'center', |
| | | // hide:false, |
| | | // width: 110 |
| | | // }, |
| | | // { |
| | | // field: 'UpdateTime', |
| | | // title: '修改时间', |
| | | // align: 'center', |
| | | // hide:false, |
| | | // templet: function (d) { |
| | | // return formatDate(d.UpdateTime); |
| | | // } |
| | | // }, { |
| | | // title: '操作', |
| | | // fixed: 'right', |
| | | // width: 240, |
| | | // align: 'center', |
| | | // toolbar: '#toolbarDemo1' |
| | | // }] |
| | | // ] |
| | | // }); |
| | | //#endregion |
| | | |
| | | |
| | | //#region 自定义表头 |
| | | var colsJson |
| | | var param1={ |
| | |
| | | {field: 'SkuNo',title: '物料编码',align: 'center',width: 100}, |
| | | {field: 'SkuName',title: '物料名称',align: 'center',width: 200}, |
| | | {field: 'Standard',title: '物料规格',align: 'center',width: 130}, |
| | | {field: 'LotNo',title: '批次号',align: 'center',width: 100}, |
| | | {field: 'SupplierLot',title: '供货批次',align: 'center',width: 100}, |
| | | {field: 'LotNo',title: '进厂编号',align: 'center',width: 100}, |
| | | {field: 'SupplierLot',title: '原厂批号',align: 'center',width: 100}, |
| | | {field: 'Qty',title: '数量',align: 'center',width: 70}, |
| | | {field: 'FactQty',title: '已组数量',align: 'center',width: 90}, |
| | | {field: 'CompleteQty',title: '完成数量',align: 'center',width: 90}, |
| | |
| | | var DetailColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | | function refreshTablemx(asnNo) { |
| | | //#region 原始非自定义列 |
| | | // var param = { |
| | | // ASNNo:asnNo |
| | | // }; |
| | | // table.render({ |
| | | // elem: '#LAY-app-content-list2', |
| | | // url: IP + "/BllAsn/GetArrivalNoticeDetailList", |
| | | // method: 'POST', |
| | | // height: h2, |
| | | // id: 'LAY-app-content-list2', |
| | | // where: param, |
| | | // contentType: 'application/json', |
| | | // toolbar:'#toolbarDemo', |
| | | // defaultToolbar: ['filter'], //'print', 'exports' |
| | | // headers:{ToKen:$.cookie('token')}, |
| | | // page: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // done: function() { |
| | | // setRight() |
| | | // }, |
| | | // cols: [ |
| | | // [{ |
| | | |
| | | // title: '序号', |
| | | // type: 'numbers', |
| | | // width: 50, |
| | | // align: 'center', |
| | | // fixed: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'ASNNo', |
| | | // title: '入库单号', |
| | | // align: 'center', |
| | | // fixed: 'left', |
| | | // sort: true, |
| | | // width: 180 |
| | | // }, |
| | | // { |
| | | // field: 'SkuNo', |
| | | // title: '物料编码', |
| | | // align: 'center', |
| | | // width: 100 |
| | | // }, { |
| | | // field: 'SkuName', |
| | | // title: '物料名称', |
| | | // align: 'center', |
| | | // width: 200 |
| | | // }, { |
| | | // field: 'Standard', |
| | | // title: '物料规格', |
| | | // align: 'center', |
| | | // width: 130 |
| | | // }, { |
| | | // field: 'LotNo', |
| | | // title: '批次号', |
| | | // align: 'center', |
| | | // width: 100 |
| | | // },{ |
| | | // field: 'SupplierLot', |
| | | // title: '供货批次', |
| | | // align: 'center', |
| | | // fixed: 'right', |
| | | // width: 100, |
| | | // hide:true |
| | | // }, { |
| | | // field: 'Qty', |
| | | // title: '数量', |
| | | // align: 'center', |
| | | // width: 70 |
| | | // }, { |
| | | // field: 'FactQty', |
| | | // title: '已组数量', |
| | | // align: 'center', |
| | | // width: 90 |
| | | // }, { |
| | | // field: 'CompleteQty', |
| | | // title: '完成数量', |
| | | // align: 'center', |
| | | // width: 90 |
| | | // }, |
| | | // { |
| | | // field: 'CompleteTime', |
| | | // title: '完成时间', |
| | | // align: 'center', |
| | | // width: 160, |
| | | // templet: function (d) { |
| | | // return formatDate(d.CompleteTime); |
| | | // } |
| | | // }, |
| | | // { |
| | | // field: 'UnitName', |
| | | // title: '计量单位', |
| | | // align: 'center', |
| | | // width: 90 |
| | | // }, |
| | | // { |
| | | // field: 'Price', |
| | | // title: '单价', |
| | | // align: 'center', |
| | | // width: 65, |
| | | // hide:true |
| | | // }, { |
| | | // field: 'Money', |
| | | // title: '金额', |
| | | // align: 'center', |
| | | // width: 65, |
| | | // hide:true |
| | | // }, |
| | | // { |
| | | // field: 'LotText', |
| | | // title: '批次描述', |
| | | // align: 'center', |
| | | // width: 120 |
| | | // },{ |
| | | // field: 'PackagName', |
| | | // title: '包装名称', |
| | | // align: 'center', |
| | | // width: 110, |
| | | // }, { |
| | | // field: 'IsBale', |
| | | // title: '是否裹包', |
| | | // align: 'center', |
| | | // width: 150, |
| | | // hide:true |
| | | // }, { |
| | | // field: 'IsBelt', |
| | | // title: '是否打带', |
| | | // align: 'center', |
| | | // width: 150, |
| | | // hide:true |
| | | // },{ |
| | | // field: 'CreateUserName', |
| | | // title: '创建人', |
| | | // align: 'center', |
| | | // width: 100 |
| | | // }, |
| | | // { |
| | | // field: 'CreateTime', |
| | | // title: '创建时间', |
| | | // align: 'center', |
| | | // width: 160, |
| | | // templet: function (d) { |
| | | // return formatDate(d.CreateTime); |
| | | // } |
| | | // }, |
| | | // // { |
| | | // // field: 'Id', |
| | | // // title: '入库明细Id', |
| | | // // align: 'center', |
| | | // // hide: true, |
| | | // // width: 150, |
| | | // // }, |
| | | // { |
| | | // field: 'UpdateUserName', |
| | | // title: '修改人', |
| | | // align: 'center', |
| | | // hide:true, |
| | | // width: 150, |
| | | // }, |
| | | // { |
| | | // field: 'UpdateTime', |
| | | // title: '修改时间', |
| | | // align: 'center', |
| | | // hide:true, |
| | | // width: 150, |
| | | // templet: function (d) { |
| | | // return formatDate(d.UpdateTime); |
| | | // } |
| | | // }, { |
| | | // title: '操作', |
| | | // fixed: 'right', |
| | | // width: 100, |
| | | // align: 'left', |
| | | // toolbar: '#toolbarDemoList' |
| | | // }] |
| | | // ] |
| | | // }); |
| | | //#endregion |
| | | |
| | | |
| | | //#region 自定义表头 |
| | | var colsJson2 |
| | |
| | | { field: 'Id', title: '入库单明细ID', width: 120, align: 'center', fixed: 'left', hide: true, "disabled": true }, |
| | | { field: 'SkuNo', title: '物料编码', minWidth: 100, align: 'center', fixed: 'left', "disabled": true }, |
| | | { field: 'SkuName', title: '物料名称', minWidth: 180, align: 'center', fixed: 'left', "disabled": true }, |
| | | { field: 'LotNo', title: '批次号', align: 'center', edit: 'text', minWidth: 130, fixed: 'left', "disabled": true }, |
| | | { field: 'SupplierLot', title: '供货批次', width: 130, edit: 'text', event: 'setSign', fixed: 'left', "disabled": true }, |
| | | { field: 'LotNo', title: '进厂编号', align: 'center', edit: 'text', minWidth: 130, fixed: 'left', "disabled": true }, |
| | | { field: 'SupplierLot', title: '原厂批号', width: 130, edit: 'text', event: 'setSign', fixed: 'left', "disabled": true }, |
| | | { field: 'Qty', title: '数量', align: 'center', width: 80, edit: 'number', event: 'dataNumber', fixed: 'left', "disabled": true }, |
| | | { field: 'UnitName', title: '计量单位', align: 'center', width: 70 }, |
| | | { field: 'Standard', title: '规格', width: 160, align: 'center' }, |
| | |
| | | { field: 'UDF3', title: '自定义列3', align: 'center', edit: 'text', width: 140 }, |
| | | { field: 'UDF4', title: '自定义列4', align: 'center', edit: 'text', width: 140 }, |
| | | { field: 'UDF5', title: '自定义列5', align: 'center', width: 140, templet: '#templetUDF5' }, |
| | | { field: 'caozuo', title: '操作', fixed: 'right', width: 100, align: 'center', templet: '#table-content-list', "disabled": true } |
| | | { field: 'caozuo', title: '操作', fixed: 'right', width: 170, align: 'center', templet: '#table-content-list', "disabled": true } |
| | | ]]; |
| | | var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | |
| | | } |
| | | else if (TypeNum == 1) { |
| | | if (res.data[i].Type == 1) { |
| | | $("#CustomerNamep").html("供应商"); |
| | | $("#CustomerNamep").html("生产商"); |
| | | $("#CustomerName").append('<option value =' + res.data[i].CustomerNo + '>' + |
| | | res.data[i].CustomerName + '</option>'); |
| | | } |
| | |
| | | <label class="layui-form-label">重置批号</label> |
| | | <div class="layui-input-block"> |
| | | <select name="reset" id="reset" lay-filter="reset" lay-verify="required"> |
| | | <option value="1">是</option> |
| | | <!-- <option value="1">是</option> --> |
| | | <option value="0">否</option> |
| | | </select> |
| | | </div> |
| | |
| | | var html = ''; |
| | | if(d.IsWave == '0'){ |
| | | if(d.Status == '0' || d.Status == '1' ){ |
| | | if(d.Type != "8") { |
| | | if(d.Type != "8" && d.Type != "2" && d.Type != "3") { |
| | | html += `<a class="layui-btn layui-btn-normal layui-btn-xs zifenClass" lay-event="auto"> |
| | | <i class="layui-icon layui-icon-ok"></i>自动分配 |
| | | </a>`; |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline mingxi"> |
| | | <label class="layui-form-label" style="width: 60px;">批次号</label> |
| | | <label class="layui-form-label" style="width: 60px;">进厂编号</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="进厂编号" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | {field: 'SkuName', title: '物料名称', align: 'center'}, |
| | | {field: 'OwnerNo',title: '货主编码',align: 'center'}, |
| | | {field: 'OwnerName',title: '货主名称',align: 'center'}, |
| | | {field: 'SupplierNo',title: '供应商编码',align: 'center'}, |
| | | {field: 'SupplierName',title: '供应商名称',align: 'center'}, |
| | | {field: 'LotNo', title: '批次号', align: 'center'}, |
| | | {field: 'SupplierNo',title: '生产商编码',align: 'center'}, |
| | | {field: 'SupplierName',title: '生产商名称',align: 'center'}, |
| | | {field: 'LotNo', title: '进厂编号', align: 'center'}, |
| | | {field: 'LotText', title: '批次描述', align: 'center'}, |
| | | {field: 'SupplierLot', title: '供货批次', align: 'center'}, |
| | | {field: 'SupplierLot', title: '原厂批号', align: 'center'}, |
| | | {field: 'Qty', title: '数量', align: 'center'}, |
| | | {field: 'LockQty', title: '锁定数量', align: 'center',}, |
| | | {field: 'FrozenQty', title: '冻结数量', align: 'center'}, |
| | |
| | | {field: 'PalletNo', title: '托盘号', align: 'center', width: 110}, |
| | | {field: 'BoxNo', title: '箱码', align: 'center', width: 100}, |
| | | {field: 'Status', title: '箱支状态', align: 'center', templet: '#BoxStatus'}, |
| | | {field: 'LotNo', title: '批次号', align: 'center'}, |
| | | {field: 'LotNo', title: '进厂编号', align: 'center'}, |
| | | {field: 'LotText', title: '批次描述', align: 'center'}, |
| | | {field: 'Qty', title: '数量', width: 90, align: 'center'}, |
| | | {field: 'FullQty', title: '整箱数量', width: 100, align: 'center'}, |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline mingxi"> |
| | | <label class="layui-form-label" style="width: 60px;">批次号</label> |
| | | <label class="layui-form-label" style="width: 60px;">进厂编号</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off" |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="进厂编号" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | |
| | | {field: 'SkuNo',title: '物料编码',align: 'center',totalRowText: "合计:", "disabled": true}, |
| | | {field: 'SkuName',title: '物料名称',align: 'center', "disabled": true}, |
| | | {field: 'Standard',title: '物料规格',align: 'center', "disabled": true}, |
| | | {field: 'LotNo',title: '批次号',align: 'center', "disabled": true}, |
| | | {field: 'LotNo',title: '进厂编号',align: 'center', "disabled": true}, |
| | | {field: 'LotText',title: '批次描述',align: 'center'}, |
| | | {field: 'OwnerNo',title: '货主编码',align: 'center'}, |
| | | {field: 'OwnerName',title: '货主名称',align: 'center'}, |
| | |
| | | {field: 'SkuNo',title: '物料编码',width: 100,align: 'center'}, |
| | | {field: 'SkuName',title: '物料名称',align: 'center'}, |
| | | {field: 'Standard',title: '物料规格',width: 130,align: 'center'}, |
| | | {field: 'LotNo',title: '批次号',align: 'center'}, |
| | | {field: 'LotNo',title: '进厂编号',align: 'center'}, |
| | | {field: 'OwnerNo',title: '货主编码',align: 'center'}, |
| | | {field: 'OwnerName',title: '货主名称',align: 'center'}, |
| | | {field: 'SupplierNo',title: '供应商编码',align: 'center'}, |
| | | {field: 'SupplierName',title: '供应商名称',align: 'center'}, |
| | | {field: 'SupplierNo',title: '生产商编码',align: 'center'}, |
| | | {field: 'SupplierName',title: '生产商名称',align: 'center'}, |
| | | {field: 'Qty',title: '库存数量',width: 110,align: 'center'}, |
| | | {field: 'LockQty',title: '锁定数量',width: 110,align: 'center'}, |
| | | {field: 'Status',templet: '#buttonTpl',title: '库存状态',width: 90,align: 'center'}, |
| | |
| | | using WMS.BLL.SysServer; |
| | | using System.Threading.Tasks; |
| | | using System.Security.Policy; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.BllQualityEntity; |
| | | |
| | | namespace WMS.BLL.BllAsnServer |
| | | { |
| | |
| | | string sqlString = string.Empty; |
| | | string sqlDetailStr = string.Empty; |
| | | //0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料入库 5:其它入库 6:代储入库 7:寄存入库 |
| | | var TypeLot = "1, 2, 5, 6, 7"; //批次可为空单据类型 |
| | | var TypeLot = "2, 5, 6, 7"; //批次可为空单据类型 |
| | | |
| | | var addOder = new List<ResponseOrderTaskModel>(); |
| | | try |
| | |
| | | } |
| | | //判断是否为采购入库单据或车间余料退回入库 |
| | | // 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库 |
| | | if (model.Type == "1" || model.Type == "4") |
| | | { |
| | | if (!string.IsNullOrWhiteSpace(model.LotNo)) |
| | | { |
| | | throw new Exception("采购入库或余料退回不可输入批次,不可编辑!"); |
| | | } |
| | | } |
| | | //if (model.Type == "1" || model.Type == "4") |
| | | //{ |
| | | // if (!string.IsNullOrWhiteSpace(model.LotNo)) |
| | | // { |
| | | // throw new Exception("采购入库或余料退回不可输入批次,不可编辑!"); |
| | | // } |
| | | //} |
| | | |
| | | sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,"; |
| | | sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( "; |
| | |
| | | //判断是否为不限制批次单据 |
| | | if (!TypeLot.Contains(model.Type)) |
| | | { |
| | | strMessage = "-1:批次号不可为空;"; |
| | | strMessage = "-1:进厂编号不可为空;"; |
| | | continue; |
| | | } |
| | | } |
| | | if (detailModel.LotNo.Length!= 10) |
| | | { |
| | | strMessage = "-1:进厂编号位数长度有误;"; |
| | | continue; |
| | | } |
| | | if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //采购到货单原厂批号(供货批次)不能为空 |
| | | { |
| | | strMessage = "-1:原厂批号不可为空;"; |
| | | continue; |
| | | } |
| | | // 判断是否已存在当前明细 |
| | | string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' "; |
| | |
| | | var com = new Common().GetRowCount(sqlCount); |
| | | if (com > 0) |
| | | { |
| | | strMessage = "-1:物料和批次号重复;"; |
| | | strMessage = "-1:物料和进厂编号重复;"; |
| | | continue; |
| | | } |
| | | if (detailModel.Price == null) |
| | |
| | | sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', "; |
| | | sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; |
| | | |
| | | if (model.Type == "1") |
| | | if (model.Type == "0")//成品入库单下发WCS信息 |
| | | { |
| | | addOder.Add(new ResponseOrderTaskModel() |
| | | { |
| | |
| | | { |
| | | new OperationASNServer().AddLogOperationAsn("入库作业", "入库单据", model.ASNNo, "添加", $"添加了单据号为{model.ASNNo}的单据信息", Convert.ToInt32(model.CreateUser)); |
| | | |
| | | if (addOder.Count > 0) |
| | | { |
| | | // 正式运行程序放开 |
| | | var jsonData = JsonConvert.SerializeObject(addOder); |
| | | string response = ""; |
| | | //if (addOder.Count > 0) |
| | | //{ |
| | | // // 正式运行程序放开 |
| | | // var jsonData = JsonConvert.SerializeObject(addOder); |
| | | // string response = ""; |
| | | |
| | | try |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //给WCS下发入库单信息 |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | // try |
| | | // { |
| | | // var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | // //给WCS下发入库单信息 |
| | | // response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | |
| | | //////解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | { |
| | | // //////解析返回数据 |
| | | // var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | // if (wcsModel.StatusCode == 0) |
| | | // { |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | { |
| | | // } |
| | | // if (wcsModel.StatusCode == -1) |
| | | // { |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // throw new Exception(ex.Message); |
| | | // } |
| | | //} |
| | | return strMessage; |
| | | } |
| | | else |
| | |
| | | { |
| | | throw new Exception("复核失败,复核人员和关闭订单人员不能相同!"); |
| | | } |
| | | //单据类型是 成品入库或采购入库 判断入库物料是否合格 |
| | | if (notice.Type == "0" || notice.Type == "1") |
| | | { |
| | | foreach (var item in detail) |
| | | { |
| | | var instStatus = Db.Queryable<BllQualityInspect>().Count(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.IsQualified == "1"); |
| | | if (instStatus == 0) |
| | | { |
| | | throw new Exception($"{item.SkuNo}、{item.LotNo}质量状态不是合格的,不能回传!"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | var list = new List<AsnDetail>(); |
| | | foreach (var d in detail) |
| | | { |
| | |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.IBllAsnServer; |
| | | using ZXing; |
| | | |
| | | namespace WMS.BLL.BllAsnServer |
| | | { |
| | |
| | | public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime,string supplierLot, int userId) |
| | | { |
| | | try |
| | | { |
| | | { |
| | | |
| | | #region 单据、物料、包装、标签信息获取 |
| | | |
| | | if (string.IsNullOrWhiteSpace(productionTime)) |
| | | { |
| | | throw new Exception("生产日期不能为空"); |
| | | } |
| | | if (!string.IsNullOrWhiteSpace(expirationTime) && !string.IsNullOrWhiteSpace(storeTime)) |
| | | { |
| | | throw new Exception("有效期和储存期不能同时填写"); |
| | | } |
| | | if (isReset != "0") |
| | | { |
| | | throw new Exception("不可重置批次"); |
| | | } |
| | | DateTime proTime; |
| | | DateTime expTime; |
| | | DateTime stoTime; |
| | | var bl1= DateTime.TryParse(productionTime, out proTime); |
| | | var bl2= DateTime.TryParse(expirationTime, out expTime); |
| | | var bl3= DateTime.TryParse(storeTime, out stoTime); |
| | | if (!bl1) |
| | | { |
| | | throw new Exception("生产日期转换失败"); |
| | | } |
| | | if (!bl2 && !string.IsNullOrWhiteSpace(expirationTime)) |
| | | { |
| | | throw new Exception("有效期转换失败"); |
| | | } |
| | | if (!bl3 && !string.IsNullOrWhiteSpace(storeTime)) |
| | | { |
| | | throw new Exception("储存期转换失败"); |
| | | } |
| | | var asnList = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == imId && m.IsDel == "0"); |
| | | if (asnList == null) |
| | | { |
| | | throw new Exception("未查询到单据明细信息"); |
| | | } |
| | | if (asnList.LotNo.Length != 10) |
| | | { |
| | | throw new Exception("单据进厂编号位数长度错误"); |
| | | } |
| | | var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0"); |
| | | if (asn == null) |
| | |
| | | { |
| | | throw new Exception("当前单据明细还未生成标签,请选择重置批次选项为‘是’;"); |
| | | } |
| | | maxLotNoStr = labelCount.Max(a => a.LotNo); |
| | | |
| | | if (string.IsNullOrWhiteSpace(maxLotNoStr)) |
| | | { |
| | | maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; |
| | | } |
| | | maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo); |
| | | //maxLotNoStr = labelCount.Max(a => a.LotNo); |
| | | maxLotNoStr = asnList.LotNo; |
| | | //if (string.IsNullOrWhiteSpace(maxLotNoStr)) |
| | | //{ |
| | | // maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; |
| | | //} |
| | | //maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | var maxCode = Db.Queryable<BllBoxInfo>().Where(m=>m.Origin == "WMS生成").Max(a => a.LotNo); // 获取今天最大批次号 |
| | | var maxCode = Db.Queryable<BllBoxInfo>().Where(m=>m.Origin == "WMS生成").Max(a => a.LotNo); // 获取今天最大批次号 20241013 |
| | | if (string.IsNullOrWhiteSpace(maxCode)) |
| | | { |
| | | maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; |
| | |
| | | BitBoxMark = bNum > boxQty ? "1":"0", |
| | | InspectStatus = "0", |
| | | |
| | | ProductionTime = DateTime.Parse(productionTime), |
| | | StoreTime = DateTime.Parse(storeTime), |
| | | ExpirationTime = DateTime.Parse(expirationTime), |
| | | |
| | | ProductionTime = proTime, |
| | | |
| | | Origin = "WMS生成", |
| | | CreateUser = userId, |
| | | CreateTime = DateTime.Now, |
| | | }; |
| | | |
| | | if (bl2) |
| | | { |
| | | labelModel.ExpirationTime = expTime; |
| | | } |
| | | if (bl3) |
| | | { |
| | | labelModel.StoreTime = stoTime; |
| | | } |
| | | Db.Insertable(labelModel).ExecuteCommand(); |
| | | modelList.Add(labelModel); |
| | | } |
| | |
| | | { |
| | | throw new Exception("当前单据明细还未生成标签,请选择重置批次选项为‘是’;"); |
| | | } |
| | | maxCodestr2 = labelCount.Max(a => a.LotNo); ; |
| | | //maxCodestr2 = labelCount.Max(a => a.LotNo); ; |
| | | maxCodestr2 = asnList.LotNo; |
| | | |
| | | if (string.IsNullOrWhiteSpace(maxCodestr2)) |
| | | { |
| | | maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; |
| | | } |
| | | maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);//箱号; |
| | | maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//支号; |
| | | //if (string.IsNullOrWhiteSpace(maxCodestr2)) |
| | | //{ |
| | | // maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; |
| | | //} |
| | | //maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);//箱号; |
| | | //maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//支号; |
| | | } |
| | | |
| | | } |
| | |
| | | BitBoxMark = bNum > boxQty ? "1" : "0", |
| | | InspectStatus = "0", |
| | | |
| | | ProductionTime = DateTime.Parse(productionTime), |
| | | StoreTime = DateTime.Parse(storeTime), |
| | | ExpirationTime = DateTime.Parse(expirationTime), |
| | | |
| | | ProductionTime = proTime, |
| | | |
| | | Origin = "WMS生成", |
| | | CreateUser = userId, |
| | | CreateTime = DateTime.Now, |
| | | }; |
| | | |
| | | if (bl2) |
| | | { |
| | | labelModel.ExpirationTime = expTime; |
| | | } |
| | | if (bl3) |
| | | { |
| | | labelModel.StoreTime = stoTime; |
| | | } |
| | | Db.Insertable(labelModel).ExecuteCommand(); |
| | | modelList.Add(labelModel); |
| | | } |
| | |
| | | { |
| | | str += "3.要出库的托盘正在入库、"; |
| | | } |
| | | if (string.IsNullOrWhiteSpace(str)) |
| | | { |
| | | str += "托盘可执行,无需下发出库任务"; |
| | | } |
| | | if (outDto1.Count > 0) |
| | | { |
| | | // 正式运行程序放开 |