| | |
| | | {field: 'CompleteTime',title: '完成时间',align: 'center', width: 160,templet: '#templetCompleteTime2'}, |
| | | {field: 'IsSampling',title: '是否取样',align: 'center',width: 90,templet: '#templetIsSampling'}, |
| | | {field: 'InspectStatus',title: '质检状态',align: 'center',width: 90,templet: '#templetInspectStatus'}, |
| | | {field: 'UnitName',title: '计量单位',align: 'center',width: 90}, |
| | | //{field: 'UnitName',title: '计量单位',align: 'center',width: 90}, |
| | | // {field: 'Price',title: '单价',align: 'center',width: 65}, |
| | | // {field: 'Money',title: '金额',align: 'center',width: 65}, |
| | | {field: 'LotText',title: '批次描述',align: 'center',width: 120}, |
| | | {field: 'PackagName',title: '包装名称',align: 'center',width: 110,}, |
| | | {field: 'IsBale',title: '是否裹包',align: 'center',width: 150}, |
| | | {field: 'IsBelt',title: '是否打带',align: 'center',width: 150}, |
| | | {field: 'UDF1',title: '自定义列1',align: 'center',width: 140}, |
| | | {field: 'UDF2',title: '自定义列2',align: 'center',width: 140}, |
| | | {field: 'UDF3',title: '自定义列3',align: 'center',width: 140}, |
| | | {field: 'UDF4',title: '自定义列4',align: 'center',width: 140}, |
| | | {field: 'UDF5',title: '自定义列5',align: 'center',width: 140,templet:'#templetUDF5'}, |
| | | // {field: 'PackagName',title: '包装名称',align: 'center',width: 110,}, |
| | | // {field: 'IsBale',title: '是否裹包',align: 'center',width: 150}, |
| | | // {field: 'IsBelt',title: '是否打带',align: 'center',width: 150}, |
| | | // {field: 'UDF1',title: '自定义列1',align: 'center',width: 140}, |
| | | // {field: 'UDF2',title: '自定义列2',align: 'center',width: 140}, |
| | | // {field: 'UDF3',title: '自定义列3',align: 'center',width: 140}, |
| | | // {field: 'UDF4',title: '自定义列4',align: 'center',width: 140}, |
| | | // {field: 'UDF5',title: '自定义列5',align: 'center',width: 140,templet:'#templetUDF5'}, |
| | | {field: 'CreateUserName',title: '创建人',align: 'center',width: 100}, |
| | | {field: 'CreateTime',title: '创建时间',align: 'center',width: 160,templet: '#templetCreateTime2'}, |
| | | {field: 'UpdateUserName',title: '修改人',align: 'center',width: 150,}, |
| | |
| | | {{# } else if(d.BitPalletMark == '1') { }} |
| | | <p>是</p> |
| | | {{# } }} |
| | | <script type="text/html" id="InspectPalletStatus"> |
| | | {{# if(d.PalletStatus=='0'){ }} |
| | | <p>净桶</p> |
| | | {{# } else if(d.PalletStatus == '1') { }} |
| | | <p>预混</p> |
| | | {{# } else if(d.PalletStatus == '2') { }} |
| | | <p>半成品</p> |
| | | {{# } else if(d.PalletStatus == '3') { }} |
| | | <p>脏桶</p> |
| | | {{# } }} |
| | | </script> |
| | | </script> |
| | | <script type="text/html" id="InspectPalletStatus"> |
| | | {{# function GetBtn11(d){ |
| | | var html = ``; |
| | | if(d.PalletStatus=='0'){ |
| | | html = `净桶`; |
| | | } else if(d.PalletStatus=='1') { |
| | | html = `预混`; |
| | | } else if(d.PalletStatus=='2') { |
| | | html = `半成品`; |
| | | }else if(d.PalletStatus=='3') { |
| | | html = `脏桶`; |
| | | } |
| | | return html; |
| | | } |
| | | }} |
| | | {{ GetBtn11(d) }} |
| | | </script> |
| | | <script type="text/html" id="toolbarDemo"> |
| | | |
| | | <button class="layui-btn layuiadmin-btn-list layui-btn-sm addClass" lay-event="add"> |
| | | <i class="layui-icon"></i>添加 |
| | | </button> |
| | | </script> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | var TotalColsArr = [[ |
| | | {field: '',title: '序号',type:'numbers',align: 'center',fixed: 'left', "disabled": true}, |
| | | {field: 'WareHouseName', title: '所属仓库', align: 'center'}, |
| | | {field: 'RoadwayName', title: '所属巷道', align: 'center'}, |
| | | //{field: 'RoadwayName', title: '所属巷道', align: 'center'}, |
| | | {field: 'AreaName', title: '所属区域', align: 'center'}, |
| | | {field: 'LocatNo', title: '储位地址', align: 'center'}, |
| | | {field: 'PalletNo', title: '托盘号', align: 'center'}, |
| | | {field: 'PalletStatus', title: '托盘状态', align: 'center', templet: '#InspectPalletStatus'}, |
| | | {field: 'PalletStatus', title: '托盘类别', align: 'center', templet: '#InspectPalletStatus'}, |
| | | {field: 'SkuNo', title: '物料编码', align: 'center'}, |
| | | {field: 'SkuName', title: '物料名称', align: 'center'}, |
| | | //{field: 'OwnerNo',title: '货主编码',align: 'center'}, |
| | |
| | | limit: pageCnt, |
| | | limits: pageLimits, |
| | | even: true, |
| | | toolbar: '#toolbarDemo', |
| | | defaultToolbar: [''], //'print', 'exports' |
| | | cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | done: function(){ |
| | | //自定义列宽 |
| | |
| | | }); |
| | | }); |
| | | //#endregion |
| | | } |
| | | } |
| | | |
| | | //头工具栏事件 |
| | | table.on('toolbar(LAY-app-content-list)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id); |
| | | if (obj.event == "add") { |
| | | layer.open({ |
| | | type: 2, |
| | | title: '添加托盘库存明细', |
| | | content: 'PalletAddFrom.html', |
| | | maxmin: true, |
| | | area: ['530px', '530px'], |
| | | btn: ['确定', '取消'], |
| | | yes: function(index, layero) { |
| | | var iframeWindow = window['layui-layer-iframe' + index], |
| | | submitID = 'layuiadmin-app-form-submit', |
| | | submit = layero.find('iframe').contents().find('#' + submitID); |
| | | //监听提交 |
| | | iframeWindow.layui.form.on('submit(' + submitID + ')', function(data) { |
| | | var field = data.field; //获取提交的字段 |
| | | //提交 Ajax 成功后,静态更新表格中的数据 |
| | | var param = { |
| | | PalletNo:field.PalletNo,//托盘码 |
| | | WareHouseNo: field.WareHouseNo, //所属仓库 |
| | | AreaNo: field.AreaNo, //所属区域 |
| | | LocatNo:field.LocatNo,//所属储位 |
| | | PalletStatus: field.PalletStatus, //托盘类别 |
| | | }; |
| | | if(doing){ |
| | | doing = false; |
| | | sendData(IP + "/Statistical/InsertStockDetail", param, 'post',function(res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | layer.close(index); //关闭弹层 |
| | | refreshTable("","","","","","","","","","","","","",""); |
| | | doing = true; |
| | | }); |
| | | } |
| | | else |
| | | { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {doing = true;}); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | submit.trigger('click'); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | //监听搜索 |
| | | form.on('submit(LAY-app-contlist-search)', function(data) { |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <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"> |
| | | </head> |
| | | <body> |
| | | <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">托盘号</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="PalletNo" lay-verify="required" placeholder="请输入托盘号" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">所属仓库</label> |
| | | <div class="layui-input-block"> |
| | | <select name="WareHouseNo" id="WareHouseNo" lay-verify="required" lay-search lay-filter="SelectWareHouseNo"> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">所属区域</label> |
| | | <div class="layui-input-block"> |
| | | <select name="AreaNo" id="AreaNo" lay-verify="required" lay-search lay-filter="SelectAreaNo"> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">所属储位</label> |
| | | <div class="layui-input-block"> |
| | | <select name="LocatNo" id="LocatNo" lay-verify="" lay-search > |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">托盘状态</label> |
| | | <div class="layui-input-block"> |
| | | <select name="PalletStatus" id="PalletStatus" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="1">净桶</option> |
| | | <option value="2">混料</option> |
| | | <option value="3">半成品</option> |
| | | <option value="4">脏桶</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item layui-hide"> |
| | | <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="确认添加"> |
| | | <input type="button" lay-submit lay-filter="layuiadmin-app-form-edit" id="layuiadmin-app-form-edit" value="确认编辑"> |
| | | </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> |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //静态资源所在路径 |
| | | }).extend({ |
| | | index: 'lib/index' //主入口模块 |
| | | }).use(['index', 'form', 'layer'], function() { |
| | | var $ = layui.$, |
| | | form = layui.form, |
| | | layer = layui.layer; |
| | | |
| | | |
| | | //获取仓库 |
| | | sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function(res) { |
| | | if (res.code == 0) { //成功 |
| | | // $("#RoadwayNo").empty(); |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#WareHouseNo").append('<option value =' + res.data[i].WareHouseNo + '>' + res.data[i].WareHouseNo + '-' + |
| | | res.data[i].WareHouseName + '</option>'); |
| | | } |
| | | // $("select[name='WareHouseNo']").val(val); |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {}); |
| | | } |
| | | }); |
| | | //获取所属区域 |
| | | form.on('select(SelectWareHouseNo)', function (data) { |
| | | var WareHouseNo=$("#WareHouseNo").val(); |
| | | if(WareHouseNo==''){ |
| | | return; |
| | | } |
| | | sendData(IP + "/Sys/GetStorageAreaByHouseNo?wareHouseNo="+WareHouseNo, {}, 'get', function(res) { |
| | | if (res.code == 0) { //成功 |
| | | $("#AreaNo").empty();//清空上一个查询下拉值 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#AreaNo").append('<option value =' + res.data[i].AreaNo + '>' + |
| | | res.data[i].AreaName + '</option>'); |
| | | } |
| | | form.render('select'); |
| | | |
| | | getLocatList(); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {}); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | //获取储位 |
| | | form.on('select(SelectAreaNo)', function (data) { |
| | | getLocatList(); |
| | | }); |
| | | function getLocatList(){ |
| | | var AreaNo=$("#AreaNo").val(); |
| | | if(AreaNo==''){ |
| | | return; |
| | | } |
| | | sendData(IP + "/Sys/GetStorageLocatList", {AreaNo:AreaNo}, 'post', function(res) { |
| | | if (res.code == 0) { //成功 |
| | | $("#LocatNo").empty();//清空上一个查询下拉值 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#LocatNo").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 getQueryString(name) { |
| | | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); |
| | | var r = window.location.search.substr(1).match(reg); |
| | | if (r != null) return unescape(r[2]); |
| | | return null; |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | public string Origin { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建人 |
| | | /// </summary> |
| | | public string CreateUser { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 单据明细 |
| | | /// </summary> |
| | | public List<AsnDetail> AsnDetails { get; set; } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace Model.InterFaceModel |
| | | { |
| | | public class TaskModel |
| | | { |
| | | /// <summary> |
| | | /// 任务号 |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 状态 |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | } |
| | | } |
| | |
| | | public DateTime? ExpirationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 状态 |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 托盘状态 |
| | | /// Default:0:净桶 1:预混 2:半成品 3:脏桶 |
| | | /// </summary> |
| | | public string PalletStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 状态 |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 检验标记 |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public ErpModel CreateAsn(AsnInfo model) |
| | | public ErpModel CreateAsnWork(AsnInfo model) |
| | | { |
| | | try |
| | | { |
| | |
| | | Origin = string.IsNullOrEmpty(model.Origin) ? "MES" : model.Origin, |
| | | CustomerNo = model.Customer, |
| | | CustomerName = "", |
| | | OrderCode = model.OrderCode, |
| | | OrderCode = model.OrderCode |
| | | }; |
| | | |
| | | // 入库明细表信息 |
| | |
| | | /// <param name="TaskNo"></param> |
| | | /// <param name="Status"></param> |
| | | /// <returns></returns> |
| | | public ErpModel FinishTask(string TaskNo,string Status) |
| | | public ErpModel RCSFinishTask(string TaskNo,string Status) |
| | | { |
| | | try |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public SoResInfo ErpAddExportNotice(SoInfo model) |
| | | public SoResInfo CreateSoWork(SoInfo model) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 二楼业务 |
| | | /// <summary> |
| | | /// 添加托盘库存明细 |
| | | /// </summary> |
| | | public void InsertStockDetail(string PalletNo,string WareHouseNo,string AreaNo,string LocatNo, string PalletStatus,int userId) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(PalletNo)) |
| | | { |
| | | throw new Exception("托盘号不能为空!"); |
| | | } |
| | | if (string.IsNullOrEmpty(WareHouseNo)) |
| | | { |
| | | throw new Exception("所属仓库不能为空!"); |
| | | } |
| | | if (string.IsNullOrEmpty(AreaNo)) |
| | | { |
| | | throw new Exception("所属区域不能为空!"); |
| | | } |
| | | if (string.IsNullOrEmpty(LocatNo)) |
| | | { |
| | | throw new Exception("储位地址不能为空!"); |
| | | } |
| | | if (string.IsNullOrEmpty(PalletStatus)) |
| | | { |
| | | throw new Exception("托盘状态不能为空!"); |
| | | } |
| | | var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == PalletNo); |
| | | if (palletInfo != null) |
| | | { |
| | | throw new Exception($"库存中已有编号为:{PalletNo}的明细,请勿重复添加!"); |
| | | } |
| | | Db.BeginTran(); |
| | | |
| | | var comTime = DateTime.Now; |
| | | var model = new DataStockDetail() |
| | | { |
| | | Qty = 0, |
| | | LockQty = 0, |
| | | FrozenQty = 0, |
| | | InspectQty = 0, |
| | | WareHouseNo = WareHouseNo,//所属仓库 |
| | | RoadwayNo = "",//所属巷道 |
| | | AreaNo = AreaNo,//所属区域 |
| | | LocatNo = LocatNo,//储位地址 |
| | | PalletNo = PalletNo, |
| | | PalletNo2 = "", |
| | | PalletNo3 = "", |
| | | PalletTags = "0", |
| | | CompleteTime = comTime, |
| | | ProductionTime = null, |
| | | ExpirationTime = null, |
| | | Status = "0", |
| | | InspectMark = "0", |
| | | InspectStatus = "0",//待检验 |
| | | BitPalletMark = "0", |
| | | PackagNo = "", |
| | | IsBale = "0", |
| | | IsBelt = "0", |
| | | |
| | | PalletStatus = PalletStatus, |
| | | |
| | | IsDel = "0", |
| | | CreateUser = userId, |
| | | CreateTime = comTime |
| | | }; |
| | | //插入库存明细 |
| | | Db.Insertable(model).ExecuteCommand(); |
| | | |
| | | Db.CommitTran(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | //回滚事务 |
| | | Db.RollbackTran(); |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public ErpModel CreateAsn(AsnInfo model); |
| | | public ErpModel CreateAsnWork(AsnInfo model); |
| | | |
| | | /// <summary> |
| | | /// 任务完成 |
| | | /// 任务完成反馈 |
| | | /// </summary> |
| | | /// <param name="TaskNo"></param> |
| | | /// <param name="Status"></param> |
| | | /// <returns></returns> |
| | | public ErpModel FinishTask(string TaskNo, string Status); |
| | | public ErpModel RCSFinishTask(string TaskNo, string Status); |
| | | |
| | | /// <summary> |
| | | /// 下发出库单 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public SoResInfo ErpAddExportNotice(SoInfo model); |
| | | public SoResInfo CreateSoWork(SoInfo model); |
| | | } |
| | | } |
| | |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | List<DataStockDetail> GetBindListDaoChu(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus); |
| | | |
| | | /// <summary> |
| | | /// 添加托盘库存明细 |
| | | /// </summary> |
| | | public void InsertStockDetail(string PalletNo, string WareHouseNo, string AreaNo, string LocatNo, string PalletStatus, int userId); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 二楼业务 |
| | | /// <summary> |
| | | /// 添加托盘库存明细 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult InsertStockDetail(StockDetailDto model) |
| | | { |
| | | try |
| | | { |
| | | var claimsIdentity = this.User.Identity as ClaimsIdentity; |
| | | if (claimsIdentity == null) |
| | | { |
| | | throw new Exception("未获取到用户信息"); |
| | | } |
| | | string userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; |
| | | if (string.IsNullOrWhiteSpace(userId)) |
| | | { |
| | | throw new Exception("未获取到用户信息"); |
| | | } |
| | | |
| | | _stockDetail.InsertStockDetail(model.PalletNo,model.WareHouseNo,model.AreaNo,model.LocatNo,model.PalletStatus,int.Parse(userId)); |
| | | |
| | | return Ok(new { code = 0, count = 0, msg = "添加成功", data = "" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | private readonly IStockCheckServer _stockCheckSvc;//盘点单Svc |
| | | private readonly IProcurePlanServer _procurePlanSvc;//采购单Svs |
| | | private readonly IRcsServer _rcsserver;//RCS相关任务 |
| | | private readonly INoticeServer _noticeSvc;//二楼单据相关 |
| | | |
| | | public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc,IRcsServer rcsserver) |
| | | public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc,IRcsServer rcsserver, INoticeServer noticeSvc) |
| | | { |
| | | _config = setting.Value; |
| | | _exNoticeSvc = exNoticeSvc; |
| | |
| | | _stockCheckSvc = stockCheckSvc; |
| | | _procurePlanSvc = procurePlanSvc; |
| | | _rcsserver = rcsserver; |
| | | |
| | | _noticeSvc = noticeSvc; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | result.Message = e.Message; |
| | | return Ok(result); |
| | | } |
| | | } |
| | | //箱码信息 手持组托用 (赋码或追溯下发到wms) |
| | | |
| | | //质检结果下发接口 |