| HTML/views/SOSetting/ExportNotice.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Pda/View/SoSetting/ExNoticeOut.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Pda/View/SoSetting/productOut.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/Utility/Tools/HttpHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/Utility/XML/ExInfoXml.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HTML/views/SOSetting/ExportNotice.html
@@ -1127,6 +1127,7 @@ } }); var isNeedUnpack = '0'//是否需要拆箱,0:否 1:是 var xmlFileName=""; //监听数据操作 table.on('tool(LAY-app-content-list)', function (obj) { var data = obj.data; @@ -1301,6 +1302,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("操作成功!", { @@ -1598,7 +1607,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); } //下载文件函数 Pda/View/SoSetting/ExNoticeOut.html
@@ -103,17 +103,21 @@ </div> </div> <div id="" class="layui-form-item layout-dropdownlist"> <label class="layui-form-label" lang>出库地址:</label> <label class="layui-form-label" lang>出库楼层:</label> <div class="layui-input-block"> <select id="endFloor" lay-filter="endFloor" lay-search> <option value=""></option> <option value="1">一楼</option> <option value="2">二楼</option> </select> <img src="/assets/down_arraw.png"> </div> </div> <div id="" class="layui-form-item layout-dropdownlist"> <label class="layui-form-label" lang>出库地址:</label> <div class="layui-input-block" id="endSelectDiv"> <select id="endSelect" lay-filter="endSelect" lay-search> <option value=""></option> <option value="B020101">一楼-1</option> <option value="B020102">一楼-2</option> <option value="B020103">一楼-3</option> <option value="B020104">一楼-4</option> <option value="B050101">二楼-1</option> <option value="B050102">二楼-2</option> <option value="B050103">二楼-3</option> </select> <img src="/assets/down_arraw.png"> </div> @@ -283,6 +287,44 @@ } //选中单据明细事件 form.on('select(endFloor)', function (data) { $("#endSelect").empty() $("#endSelect").append('<option value =>' + '</option>'); if($("#endFloor").val() == "1"){ $("#endSelect").append('<option value ="B020101">一楼-B020101</option> <option value ="B020102">一楼-B020102</option> <option value ="B020103">一楼-B020103</option> ' +'<option value ="B020104">一楼-B020104</option> <option value ="B020201">一楼-B020201</option> <option value ="B020202">一楼-B020202</option>' +' <option value ="B020301">一楼-B020301</option> <option value ="B020302">一楼-B020302</option> <option value ="B020303">一楼-B020303</option>' +' <option value ="B020304">一楼-B020304</option>'); }else if($("#endFloor").val() == "2"){ $("#endSelect").append('<option value ="B050101">二楼-B050101</option> <option value ="B050102">二楼-B050102</option> <option value ="B050103">二楼-B050103</option> ' +' <option value ="B050104">二楼-B050104</option> <option value ="B050105">二楼-B050105</option> <option value ="B050106">二楼-B050106</option>' +' <option value ="B050107">二楼-B050107</option> <option value ="B050108">二楼-B050108</option> <option value ="B050109">二楼-B050109</option>' +' <option value ="B050110">二楼-B050110</option> <option value ="B050111">二楼-B050111</option> <option value ="B050112">二楼-B050112</option>' +' <option value ="B050113">二楼-B050113</option>'); }else{ layer.msg("选择出库楼层错误", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { }); return; } form.render('select'); }); //点击出库地址下拉框事件 $("#endSelectDiv").click(function () { if ($("#endFloor").val() == null || $("#endFloor").val() == "" || $("#endFloor").val() == undefined) { layer.msg("请先选择出库楼层", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { }); return; } }) function updatePalletNoList(callback) { var input = $('select[id="PalletNo"]').next().find('.layui-select-title input') var val = input.val() Pda/View/SoSetting/productOut.html
@@ -1320,6 +1320,28 @@ }); } //下拉物料批次选中后事件 form.on('select(getSkuLotNo2)', function (data) { if ($('#palletNo2').val() == "") { layer.msg("请输入托盘条码", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { clear21(); clear23(); }); return } if ($('#skuLotNo2').val() == "") { clear21(); clear23(); return } updateQtyList2(); getBar2(); //GetBoxInfo(); }); //初始化渲单据的计划数量和完成数量 function updateQtyList2() { clear23(); @@ -1355,7 +1377,7 @@ $('#outModel2').val(res.data.OutModel); $('#standard2').val(res.data.Standard); $('#pickQty2').val(res.data.PickQty - res.data.PickedQty); $('#pickQty2').val(res.data.PickQty); $('#pickedQty2').val(res.data.PickedQty); } else { //不成功 if ($("#planQty").val() == $("#finishQty").val() || $('#pickQty').val() == $('#pickedQty').val()) { Wms/Utility/Tools/HttpHelper.cs
@@ -195,12 +195,12 @@ /// <param name="method"></param> /// <param name="xmlName"></param> /// <returns></returns> public static XmlDocument EncodeParsToFuMa(List<string> Pars, string method, string xmlName) public static XmlDocument EncodeParsToFuMa(List<string> Pars, string method, string xmlName,string fileName) { try { XmlDocument xml = null; var str = $"Utility.XML.{xmlName}.xml"; var str = $"Utility.XML.{fileName}.xml"; //从资源文件得到文件流 Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(str); if (stream == null) @@ -214,10 +214,18 @@ XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace("xsi", @"http://www.w3.org/2001/XMLSchema-instance"); // 修改Event节点的Name属性值 string eventNodePath = "Document/Events/Event"; XmlNode eventNode = xml.SelectSingleNode(eventNodePath, nsmgr); if (eventNode != null && eventNode.Attributes["Name"] != null) { eventNode.Attributes["Name"].Value = xmlName; // 修改为传入的xmlName参数 } //修改参数的值 foreach (var de in Pars) { string subNode = "DataList/Events/Event/Relation/Batch";// + de.Key.ToString(); string subNode = "Document/Events/Event/DataField";// + de.Key.ToString(); XmlNode node = xml.SelectSingleNode(subNode, nsmgr); if (de != null) @@ -235,17 +243,11 @@ attr = xml.CreateAttribute("ActDate"); //操作时间 attr.Value = de.Split(",")[3]; createNode.Attributes.Append(attr); attr = xml.CreateAttribute("DisCorpID"); //运输企业 attr.Value = ""; createNode.Attributes.Append(attr); attr = xml.CreateAttribute("AssCorpID"); //委托企业 attr.Value = ""; attr = xml.CreateAttribute("WrongCode"); //是否错误码 attr.Value = "False"; createNode.Attributes.Append(attr); attr = xml.CreateAttribute("ToCorpID"); // 下游收货企业编号 attr.Value = ""; createNode.Attributes.Append(attr); attr = xml.CreateAttribute("FromPerson");//发货人 attr.Value = ""; //de.Split(",")[2] createNode.Attributes.Append(attr); node.AppendChild(createNode); } Wms/Utility/XML/ExInfoXml.xml
@@ -1,100 +1,34 @@ <DataList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="关联关系XML Schema-3.0.xsd" License=""> <Events version="3.0"> <Event name="RelationCreate"> <Relation productCode="9227834" subTypeNo="9227834001" cascade="1:8:80" packageSpec="盒1支" comment=""> <Batch batchNo="4202506237" madeDate="2025-06-05" validateDate="2028-06-04" workshop="1002车间" lineName="自动线" lineManager="赵"> <!--<Code curCode="87069080001788999534" packLayer="3" parentCode="" flag="0"/> <Code curCode="87069090015932071630" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148372924155" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148372684374" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148372441040" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148370761719" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148371009170" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148371243667" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148371481519" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148371726602" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148371962746" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="83057920148372200959" packLayer="1" parentCode="87069090015932071630" flag="0"/> <Code curCode="87069090015932115065" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148368842018" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148369084666" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148369326241" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148369562000" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148369801304" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148370045482" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148370284324" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148370528448" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148368600956" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="83057920148368363066" packLayer="1" parentCode="87069090015932115065" flag="0"/> <Code curCode="87069090015932154162" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148368124892" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148367880401" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148365962203" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148366207259" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148366440713" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148366684405" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148366920612" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148367161006" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148367402706" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="83057920148367647629" packLayer="1" parentCode="87069090015932154162" flag="0"/> <Code curCode="87069090015932238090" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148363561861" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148363808974" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148364044168" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148364281458" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148364520482" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148364767590" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148365004077" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148365245110" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148365489268" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="83057920148365726586" packLayer="1" parentCode="87069090015932238090" flag="0"/> <Code curCode="87069090015932033782" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148373401736" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148373648671" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148373882492" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148374121088" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148374369286" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148374604933" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148373169131" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148374848657" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148375329523" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="83057920148375081870" packLayer="1" parentCode="87069090015932033782" flag="0"/> <Code curCode="87069090015931913483" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148382283339" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148382525896" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148382049580" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148381808684" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148381323782" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148380365101" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148380600446" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148380845965" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148381089410" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="83057920148381561273" packLayer="1" parentCode="87069090015931913483" flag="0"/> <Code curCode="87069090015931956131" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148377962860" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148378204570" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148378443550" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148378686893" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148378920964" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148379164311" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148379406311" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148379643309" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148379883846" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="83057920148380125281" packLayer="1" parentCode="87069090015931956131" flag="0"/> <Code curCode="87069090015931993545" packLayer="2" parentCode="87069080001788999534" flag="0"/> <Code curCode="83057920148375560130" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148375806129" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148376048063" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148376281992" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148376529495" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148376765510" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148377000472" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148377245836" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148377489066" packLayer="1" parentCode="87069090015931993545" flag="0"/> <Code curCode="83057920148377721035" packLayer="1" parentCode="87069090015931993545" flag="0"/>--> </Batch> </Relation> <?xml version="1.0" encoding="utf-8"?> <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="终端接口XML Schema-3.0.xsd" Version="3.0"> <Events> <Event Name="SalesWareHouseOut" MainAction="WareHouseOut"> <ActionMaping> <Action Name="WareHouseOut"> <ActionData>CorpOrderID</ActionData> <ActionData>Actor</ActionData> <ActionData>ActDate</ActionData> <ActionData>ToCorpID</ActionData> <ActionData>Code</ActionData> </Action> </ActionMaping> <DataMaping> <MetaData Name="CorpOrderID" Type="String"/> <MetaData Name="Actor" Type="String"/> <MetaData Name="ActDate" Type="Date"/> <MetaData Name="ToCorpID" Type="String"/> <MetaData Name="Code" Type="String"/> </DataMaping> <DataDesc> <MetaDataDesc MetaName="Actor" IsParent="true"> <MetaDataDesc MetaName="Code" IsParent="false"/> </MetaDataDesc> <MetaDataDesc MetaName="CorpOrderID" IsParent="true"> <MetaDataDesc MetaName="Code" IsParent="false"/> </MetaDataDesc> </DataDesc> <DataField> </DataField> </Event> </Events> </DataList> </Document> Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -273,6 +273,7 @@ */ var TypeLot = "1, 5, 6, 7"; //批次可为空单据类型 int codeStrNum = 0; try { if (model.Origin == "录入" || model.Origin == "导入") @@ -378,13 +379,16 @@ && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr); if(string.IsNullOrWhiteSpace(maxBoxCodeStr)) { maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; string codeEndStr = (1 + codeStrNum).ToString().PadLeft(4, '0'); maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + codeEndStr; } else { maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString(); maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1 + codeStrNum).ToString(); } detailModel.BoxCodeStr = maxBoxCodeStr; codeStrNum++; } // 判断是否已存在当前明细 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -1161,6 +1161,10 @@ { throw Oops.Bah("目标储位信息不存在,请检查!"); } if ((storageLocatEnd.AreaNo == "B01" || storageLocatEnd.AreaNo == "B02" || storageLocatEnd.AreaNo == "B05") && storageLocatEnd.Status != "0") { throw Oops.Bah("目标储位不是空闲状态,请检查!"); } //添加出库任务 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2013,6 +2013,13 @@ } } /// <summary> /// 导出xml文件 /// </summary> /// <param name="id"></param> /// <param name="userId"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public XmlNode AddExXmlStr(int id, int userId) { try @@ -2022,27 +2029,80 @@ { throw new Exception("未查询到出库单据信息"); } var noticeDetial = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.SONo == notice.SONo).First(); if (noticeDetial == null) { throw new Exception("未查询到出库单据明细信息"); } var statusLis = new List<string>() { "4", "5", "6" }; if (!statusLis.Contains(notice.Status)) { throw new Exception("参数异常,请检查状态是否为执行完成或订单关闭/已上传"); } string xmlName = string.Empty; switch (notice.Type) { case "0"://成品出库/销售出库 xmlName = "SalesWareHouseOut"; break; case "2"://抽检出库 xmlName = "CheckWareHouseOut"; break; default: throw new Exception("单据类型异常"); } var materiDetial = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == noticeDetial.SkuNo); var packType = Db.Queryable<SysPackag>().First(w => w.IsDel == "0" && w.PackagNo == materiDetial.PackagNo); int level = 0; if (!string.IsNullOrEmpty(packType.L2Name)) { level = 1; } if (!string.IsNullOrEmpty(packType.L3Name)) { level = 2; } if (!string.IsNullOrEmpty(packType.L4Name)) { level = 3; } //出库单明细 var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList(); var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList(); var userinfo = Db.Queryable<SysUserInfor>().Where(m => m.Id == comDetail.First().CreateUser).First().RealName; Db.BeginTran();//开启事务 try { //Hashtable pars = new Hashtable(); //用来存放参数 var pars = new List<string>(); //for (int i = 0; i < 10; i++) //{ // pars.Add("202203240009000479940290"); //} string[] strr = new string[comDetail.Count]; var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml"); for (int i = 0; i < comDetail.Count(); i++) { switch (level) { case 1: strr[i] = comDetail[i].BoxNo + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; case 2: strr[i] = comDetail[i].BoxNo3 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; case 3: strr[i] = comDetail[i].BoxNo2 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; default: break; } pars.Add(strr[i]); } //string fileName = $"{xmlName}_{notice.OrderCode}_linklink"; var dom = HttpHelper.EncodeParsToFuMa(pars, "", xmlName, "ExInfoXml"); ////添加操作日志记录 //var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "关单", $"关闭了单据号为{notice.SONo}的单据信息", userId); var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "上传", $"上传了单据号为{notice.SONo}的单据信息", userId); Db.CommitTran(); return dom;