zhao
2021-07-09 0821715ebc11d3934d0594a1cc2c39686d808906
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
using HH.AutoBom.Core;
using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.WebUI.Controllers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
namespace HH.WMS.WebUI.Areas.AllQuery.Controllers
{
    public class ProjectYuShouController : BaseController
    {
        //
        // GET: /AllQuery/AllQueryYuShou/
 
        /// <summary>
        /// 库存数量汇总
        /// </summary>
        /// <returns></returns>
        public ActionResult InventoryIndex()
        {
            return View();
        }
 
        /// <summary>
        /// 出入库明细(上下架记录)
        /// </summary>
        /// <returns></returns>
        public ActionResult InventoryLocationHistory()
        {
            return View();
        }
 
        /// <summary>
        /// 库存业务明细
        /// </summary>
        /// <returns></returns>
        public ActionResult InventoryOrderBussQuery(){
            return View();
        }
 
        /// <summary>
        /// 货位物料明细
        /// </summary>
        /// <returns></returns>
        public ActionResult InventoryLocation()
        {
            return View();
        }
 
        #region 宇寿需求变更20190926 新增业务汇总查询
 
        public ActionResult InventorySummary()
        {
            return View();
        }
 
        public string GetInventorySummary(int pageIndex, int pageSize, string stockCode, string stockArea, string cn_s_ext2, string itemCode, string opType, string opNo, string location, string itemName, string model,
           string productionBatch, string owner, string valueDate, string trayCode = "")
        {
            string[] date = new string[2];
            if (!string.IsNullOrEmpty(valueDate))
                date = JsonConvert.DeserializeObject<string[]>(valueDate);
 
            var loginer = FormsAuth.GetUserData<LoginerBase>();
            var searchModel = new
            {
                TokenId = loginer.Extend1,
                PageIndex = pageIndex,
                PageSize = pageSize,
                SearchCondition = new
                {
                    CN_S_STOCK_CODE = stockCode,
                    CN_S_STOCK_AREA = stockArea,
                    CN_S_LOCATION_CODE = location,
                    CN_S_ITEM_CODE = itemCode,
                    CN_S_ITEM_NAME = itemName,
                    CN_S_MODEL = model,
                    CN_S_PRODUCTION_BATCH = productionBatch,
                    CN_S_OP_NO = opNo,
                    CN_S_OWNER = owner,
                    CN_T_START = !string.IsNullOrEmpty(valueDate) ? date[0] : "",
                    CN_T_END = !string.IsNullOrEmpty(valueDate) ? date[1] : "",
                    CN_S_TRAY_CODE = trayCode,
                    CN_S_EXT2 = cn_s_ext2
                }
            };
            return HttpWMS_Post("api/Inventory/GetInventorySummary", JsonConvert.SerializeObject(searchModel));
        }
 
        public string ExportInventorySummary()
        {
            //XML文件流
            var sr = new System.IO.StreamReader(Request.InputStream);
            var stream = sr.ReadToEnd();
            var loginer = FormsAuth.GetUserData<LoginerBase>();
            var TokenId = loginer.Extend1;//TokenId
            var DynamicObject = JsonConvert.DeserializeObject<dynamic>(stream);
            dynamic formData = DynamicObject["formData"];
            var searchModel = new
            {
                TokenId = loginer.Extend1,
                SearchCondition = new
                {
                    CN_S_STOCK_CODE = Util.ToStringInput(formData.stockCode),
                    CN_S_STOCK_AREA = Util.ToStringInput(formData.stockArea),
                    CN_S_ITEM_CODE = Util.ToStringInput(formData.itemCode),
                    CN_S_ITEM_NAME = Util.ToStringInput(formData.itemName),
                    CN_S_MODEL = Util.ToStringInput(formData.model),
                    CN_S_PRODUCTION_BATCH = Util.ToStringInput(formData.productionBatch),
                    CN_S_OP_NO = Util.ToStringInput(formData.opNo),
                    CN_S_STATE = Util.ToStringInput(formData.state),
                    CN_S_OWNER = Util.ToStringInput(formData.owner),
                    CN_S_EXT2 = Util.ToStringInput(formData.cn_s_ext2),
                    showArea = Util.ToStringInput(formData.showArea)
                }
            };
            string result = HttpWMS_Post("api/Inventory/ExportInventorySummary", JsonConvert.SerializeObject(searchModel));
            OperateResult or = JsonConvert.DeserializeObject<OperateResult>(result);
 
            string s = ((dynamic)or.Data).rows.ToString();
 
            DataTable dt = HH.WMS.Utils.ZConvert.ToDataTableTwo(s);
            //dt.Columns.Add("STOCKQTY");
            //dt.Columns.Add("CN_F_STOCK_QTY");
            //foreach (DataRow dr in dt.Rows)
            //{
            //    dr["STOCKQTY"] = Convert.ToDecimal(dr["CN_F_QUANTITY"]) + Convert.ToDecimal(dr["CN_F_PLANNED_QTY"]) - Convert.ToDecimal(dr["CN_F_ALLOC_QTY"]);
            //    dr["CN_F_STOCK_QTY"] = Convert.ToDecimal(dr["CN_F_PLANNED_QTY"]) == 0 ? 0 : Convert.ToDecimal(dr["CN_F_QUANTITY"]) / Convert.ToDecimal(dr["CN_F_PLANNED_QTY"]);
            //}
            dynamic columns = DynamicObject["columns"];
            string title = "库存业务汇总统计";
 
            string fileName = title + "_" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xls";
            or = ExcelHelper.SaveTemp(columns, title, dt, fileName);
            if (or.Status == ResultStatus.Success)
                return JsonConvert.SerializeObject(OperateResult.Succeed("", new { fileName = fileName }));
            else
                return JsonConvert.SerializeObject(or);
        }
 
        #endregion
    }
}