zhao
2021-06-04 c7ec496f9e41c2227103b3ef776e4a3f91bce6b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using HH.AutoBom.Core;
using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Basic;
using HH.WMS.WebUI.Controllers;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Xml;
using System.Xml.Linq;
 
namespace HH.WMS.WebUI.Areas.Instock.Controllers
{
    public class XmlUpController : BaseController
    {
        //
        // GET: /Instock/XmlUp/
 
        public ActionResult Index()
        {
            return View();
        }
 
        #region 获取列表
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页显示数</param>
        /// <returns></returns>
        public string GetXmlList(int pageIndex, int pageSize, string CN_S_CODE, string CN_S_ITEM_NAME)
        {
            var loginer = FormsAuth.GetUserData<LoginerBase>();
 
            var TokenId = loginer.Extend1;//TokenId
 
            //查询条件
            var SearchCondition = new
            {
                CN_S_CODE = CN_S_CODE,
                CN_S_ITEM_NAME = CN_S_ITEM_NAME
            };
 
            var searchModel = new
            {
                pageIndex = pageIndex,
                pageSize = pageSize,
                tokenId = TokenId,
                SearchCondition = SearchCondition
            };
            var dataStr = HttpWMS_Post("api/XmlUp/GetXmlList", JsonConvert.SerializeObject(searchModel));
            IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
            timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            var resultEntity = JsonConvert.DeserializeObject<OperateResult>(dataStr, timeFormat);
            return JsonConvert.SerializeObject(resultEntity, timeFormat);
        }
        #endregion
 
 
        #region 解析XML
        /// <summary>
        /// 解析XML
        /// </summary>
        /// <param name="file">文件流</param>
        /// <returns></returns>
        public string UnscrambleXml(HttpPostedFileBase file)
        {
            List<TN_WM_B_UNIQUE_BARCODEEntity> uniqueEntityList = new List<TN_WM_B_UNIQUE_BARCODEEntity>();
 
            try
            {
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(file.InputStream);
 
                XmlNodeList listNode = xmldoc.SelectSingleNode("DataList").ChildNodes;  //获取Product节点下的所有节点列表
 
                //到Product一级
                foreach (XmlNode node in listNode)
                {
                    XmlElement xe = (XmlElement)node;
                    var productName = xe.GetAttribute("productName");    //产品名称
                    var pzwh = xe.GetAttribute("pzwh");                   //批准文号
 
                    XmlNodeList xnfChild = xe.ChildNodes;
                    //到Batch一级
                    foreach (XmlNode child in xnfChild)
                    {
                        XmlElement xmlchild = (XmlElement)child;
 
                        var batchNo = xmlchild.GetAttribute("batchNo");               //批次编码
                        var specification = xmlchild.GetAttribute("specification");   //包装规格
                        var minPackUnit = xmlchild.GetAttribute("minPackUnit");       //
                        var minTagUnit = xmlchild.GetAttribute("minTagUnit");         //
                        var tagPackRatio = xmlchild.GetAttribute("tagPackRatio");     //
                        var produceDate = xmlchild.GetAttribute("produceDate");       //
                        var operatorName = xmlchild.GetAttribute("operator");         //
                        var oprDate = xmlchild.GetAttribute("oprDate");               //
                        var count = xmlchild.GetAttribute("count");                   //
                        var countUnit = xmlchild.GetAttribute("countUnit");           //
                        var tagRatio = xmlchild.GetAttribute("tagRatio");             //
 
                        var returnShort = new
                           {
                               productName = productName,
                               pzwh = pzwh,
                               batchNo = batchNo,
                               specification = specification,
                               minPackUnit = minPackUnit,
                               minTagUnit = minTagUnit,
                               tagPackRatio = tagPackRatio,
                               produceDate = produceDate,
                               operatorName = operatorName,
                               oprDate = oprDate,
                               count = count,
                               countUnit = countUnit,
                               tagRatio = tagRatio,
                           };
                        return JsonConvert.SerializeObject(OperateResult.Succeed("", new
                                                {
                                                    ImportShort = returnShort,
                                                    ImportData = xmldoc.InnerXml
                                                }));
                    }
                }
                return "";
            }
            catch (Exception ex)
            {
                return "";
            }
        }
        #endregion
 
        #region 导入XML功能
        /// <summary>
        /// 导入XML功能
        /// </summary>
        /// <returns></returns>
        public string ImportXmlData()
        {
            //XML文件流
            var sr = new StreamReader(Request.InputStream);
            var stream = sr.ReadToEnd();
 
            var loginer = FormsAuth.GetUserData<LoginerBase>();
            var TokenId = loginer.Extend1;//TokenId
 
            var streamStr = new { streamStr = stream, tokenId = TokenId };
            return HttpWMS_Post("api/XmlUp/ImportXmlDataString", streamStr);
        }
 
        #endregion
    }
}