using HH.AutoBom.Core; using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Utils.NPOI.HSSF.UserModel; using HH.WMS.WebUI.Controllers; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using System.Xml; namespace HH.WMS.WebUI.Areas.OutStock.Controllers { public class SortingController : BaseController { public ActionResult SortingList() { return View(); } public ActionResult FilePathDownload(string opNo, string province,string fromNo) { var ss = HttpWMS_Get("api/Sorting/GetOrderSortingRelByOrderNo?opNo=" + opNo); var obj = JObject.Parse(ss); List list = JsonConvert.DeserializeObject>(obj["Data"].ToString()); XmlDocument xml = new XmlDocument(); //创建第一行描述信息 //版本 编码格式 XmlDeclaration theFirstRowOfXml = xml.CreateXmlDeclaration("1.0", "UTF-8", null); xml.AppendChild(theFirstRowOfXml); //保存之前要创建根节点,根节点的名字是Datalist XmlElement Datalist = xml.CreateElement("Datalist"); Datalist.SetAttribute("corpName", "宁波三生生物科技有限公司");//添加属性 Datalist.SetAttribute("dataType", "wareHouseOut"); Datalist.SetAttribute("version", "1.1"); Datalist.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); Datalist.SetAttribute("xsi:noNamespaceSchemaLocation", "兽药产品出库数据1.1.xsd"); //再把创建的根节点加入到xml中 xml.AppendChild(Datalist); // XmlElement Product = xml.CreateElement("Product"); Datalist.AppendChild(Product); //var loginer = FormsAuth.GetUserData(); XmlElement Batch = xml.CreateElement("Batch"); Batch.SetAttribute("operator", list[0].CN_S_CREATOR_BY); Batch.SetAttribute("oprDate", DateTime.Now.ToString("yyyy/MM/dd")); string toProvince = string.Empty, toUnit = string.Empty; if (!string.IsNullOrEmpty(province) && province != "null") { if (province.EndsWith("省")) { toProvince = province; toUnit = province.TrimEnd('省'); }else if (province.EndsWith("市")) { toProvince = province; toUnit = province.TrimEnd('市'); } } Batch.SetAttribute("toProvince", toProvince); Batch.SetAttribute("toUnit", toUnit); Product.AppendChild(Batch); foreach (TN_WM_ORDER_SORTING_RELEntity entity in list) { if (!string.IsNullOrEmpty(entity.CN_S_UNIQUE_CODE)) { XmlElement Data = xml.CreateElement("Data"); Data.SetAttribute("code", entity.CN_S_UNIQUE_CODE); Batch.AppendChild(Data); } } //string dir = Server.MapPath("~/XmlTemplate"); //dir = dir + "\\"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xml"; //xml.Save(dir);//保存 //var path = dir; byte[] data; //byte[] fileContents = Encoding.Default.GetBytes(sbHtml.ToString()); using (MemoryStream ms = new MemoryStream()) { xml.Save(ms); data = ms.ToArray(); } var no = ""; if (!string.IsNullOrEmpty(fromNo)&&fromNo!="null") { no = fromNo; } else { no = opNo; } return File(data, "text/xml", "" + no + ".xml"); } #region 分拣单列表 /// /// 分拣单列表 /// /// /// public string GetSortingList(int pageIndex, int pageSize, string sortingNo) { var searchModel = new { PageIndex = pageIndex, PageSize = pageSize, SearchCondition = new { SortingNo = sortingNo } }; return HttpWMS_Post("api/Sorting/GetSortingList", JsonConvert.SerializeObject(searchModel)); } #endregion #region 分拣数据 /// /// 分拣数据 /// /// /// public string GetSortingDtl(string sortingNo) { return HttpWMS_Get("api/Sorting/GetSortingDtl?sortingNo=" + sortingNo); } #endregion #region 分拣明细 /// /// 分拣明细 /// /// /// public string GetSortingLocation(string sortingNo) { return HttpWMS_Get("api/Sorting/GetCurrentSortingLocation?sortingNo=" + sortingNo); } #endregion #region 分拣结果 /// /// 分拣结果 /// /// /// public string GetSortingResult(string sortingNo) { return HttpWMS_Get("api/Sorting/GetSortingResult?sortingNo=" + sortingNo); } #endregion #region 分拣单实体 /// /// 分拣单实体 /// /// /// public string GetSortingModel(string sortingNo) { return HttpWMS_Get("api/Sorting/GetSortingModel?sortingNo=" + sortingNo); } #endregion #region 导出xml文件 public string CreateXmlFile(string opNo, string province) { var result = ""; var ss = HttpWMS_Get("api/Sorting/GetOrderSortingRel?opNo=" + opNo); var obj = JObject.Parse(ss); List list = JsonConvert.DeserializeObject>(obj["Data"].ToString()); XmlDocument xml = new XmlDocument(); //创建第一行描述信息 //版本 编码格式 XmlDeclaration theFirstRowOfXml = xml.CreateXmlDeclaration("1.0", "UTF-8", null); xml.AppendChild(theFirstRowOfXml); //保存之前要创建根节点,根节点的名字是Datalist XmlElement Datalist = xml.CreateElement("Datalist"); Datalist.SetAttribute("corpName", "宁波三生生物科技有限公司");//添加属性 Datalist.SetAttribute("dataType", "wareHouseOut"); Datalist.SetAttribute("version", "1.1"); Datalist.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); Datalist.SetAttribute("xsi:noNamespaceSchemaLocation", "兽药产品出库数据1.1.xsd"); //再把创建的根节点加入到xml中 xml.AppendChild(Datalist); // XmlElement Product = xml.CreateElement("Product"); Datalist.AppendChild(Product); var loginer = FormsAuth.GetUserData(); XmlElement Batch = xml.CreateElement("Batch"); Batch.SetAttribute("toUnit", province); Batch.SetAttribute("toProvince", province); Batch.SetAttribute("oprDate", DateTime.Now.ToString("yyyy-MM-dd")); Batch.SetAttribute("operator", loginer.UserName); Product.AppendChild(Batch); foreach (TN_WM_ORDER_SORTING_RELEntity entity in list) { XmlElement Data = xml.CreateElement("Data"); Data.SetAttribute("code", entity.CN_S_UNIQUE_CODE); Batch.AppendChild(Data); } try { this.Response.Clear(); this.Response.Buffer = true; this.Response.ContentType = "text/xml"; this.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "sorting.xml"); this.Response.AppendHeader("base", "target=\"_blank\""); this.Response.Write(xml); //this.Response.End(); string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); dir = dir + "\\sorting.xml"; xml.Save(dir); result = JsonConvert.SerializeObject(OperateResult.Succeed()); return result; } catch (Exception e) { return JsonConvert.SerializeObject(OperateResult.Error(e.Message)); //显示错误信息 //Console.WriteLine(e.Message); } //Console.ReadLine(); } #endregion #region 导出注释 //public void CreateXmlFile(string opNo) //{ // XmlDocument xmlDoc = new XmlDocument(); // //创建类型声明节点 // XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", ""); // xmlDoc.AppendChild(node); // List clist = new List(); // int ii = clist.Count; // //创建根节点 // XmlNode Datalist = xmlDoc.CreateElement("DataList"); // xmlDoc.AppendChild(Datalist); // //var root = xmlDoc.DocumentElement;//取到根结点 // XmlElement Datalistnodes = (XmlElement)xmlDoc.SelectSingleNode("DataList");//获取节点添加属性 // //newNode.InnerText = "WPF"WPF // Datalistnodes.SetAttribute("corpName", "宁波三生生物科技有限公司");// // Datalistnodes.SetAttribute("dataType", "wareHouseOut"); // Datalistnodes.SetAttribute("version", "1.1"); // Datalistnodes.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); // Datalistnodes.SetAttribute("xsi:noNamespaceSchemaLocation", "兽药产品出库数据1.1.xsd"); // //添加下级节点 // XmlNode Product = xmlDoc.CreateNode(XmlNodeType.Element, "Product", null); // Datalist.AppendChild(Product); // //节点 // XmlNode Batch = xmlDoc.CreateNode(XmlNodeType.Element, "Batch", null); // Product.AppendChild(Batch); // XmlElement Batchnodes = (XmlElement)xmlDoc.SelectSingleNode("Batch");//获取节点添加属性 // Datalistnodes.SetAttribute("operator", "PDA管理员"); // Datalistnodes.SetAttribute("dataType", "2018/10/31"); // Datalistnodes.SetAttribute("toProvince", "江苏省"); // Datalistnodes.SetAttribute("toUnit", "江苏"); // for (int i = 0; i < ii; i++) // { // CreateNode(xmlDoc, Datalist, "Ids", "1"); // CreateNode(xmlDoc, Datalist, "Id", "2"); // CreateNode(xmlDoc, Datalist, "PC", "3"); // } // try // { // xmlDoc.Save("c://sorting.xml"); // } // catch (Exception e) // { // //显示错误信息 // Console.WriteLine(e.Message); // } // //Console.ReadLine(); //} ///// ///// 创建节点 ///// ///// xml文档 ///// 父节点 ///// 节点名 ///// 节点值 ///// //public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value) //{ // XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null); // node.InnerText = value; // parentNode.AppendChild(node); //} #endregion } }