InventoryController.cs 10.5 KB
using Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Dynamic;
using WebApp;
using WebRepository;

namespace WebMvc
{
    /// <summary>
	/// 库存表
	/// </summary>
    [Area("inventory")]
    public class InventoryController : BaseController
    {
        private readonly InventoryApp _app;
        
        public InventoryController(IAuth authUtil, InventoryApp app) : base(authUtil)
        {
            _app = app.SetLoginInfo(_loginInfo);
        }

        #region 视图功能
        /// <summary>
        /// 默认视图Action
        /// </summary>
        /// <returns></returns>
        [Authenticate]
        [ServiceFilter(typeof(OperLogFilter))]
        public ActionResult Index()
        {
            return View();
        }
        #endregion

        #region 获取数据
        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Load(PageReq pageRequest, Inventory entity)
        {
            return JsonHelper.Instance.Serialize(_app.Load(pageRequest, entity));
        }
        #endregion

        #region 提交数据
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="Table_entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(Inventory Table_entity)
        {
            try
            {
                _app.Ins(Table_entity);
            }
            catch (Exception ex)
            {
                Result.Status = false;
                Result.Message = ex.Message;
            }
            return JsonHelper.Instance.Serialize(Result);
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="Table_entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(Inventory Table_entity)
        {
            try
            {
                _app.Upd(Table_entity);
            }
            catch (Exception ex)
            {
                Result.Status = false;
                Result.Message = ex.Message;
            }
            return JsonHelper.Instance.Serialize(Result);
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            try
            {
                _app.DelByIds(ids);
            }
            catch (Exception ex)
            {
                Result.Status = false;
                Result.Message = ex.Message;
            }
            return JsonHelper.Instance.Serialize(Result);
        }
        #endregion

        #region 导出数据
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Export(Inventory entity)
        {
            TableData tableData = _app.ExportData(entity);
            List<ExpandoObject> list = new List<ExpandoObject>();
            foreach (Inventory inv in tableData.data)
            {
                dynamic temp = new ExpandoObject();
                var Warehouse = "";
                var taskstatus = "";
                var isflod = "";
                if (inv.WarehouseType == "PJ_WareCell")
                {
                    Warehouse = "PP卷仓";
                }
                else if (inv.WarehouseType == "PP_WareCell")
                {
                    Warehouse = "PP片仓";
                }
                else if (inv.WarehouseType == "TB_WareCell")
                {
                    Warehouse = "铜箔仓";
                }

                if (inv.IsFold == "unflod")
                {
                    isflod = "未排版";
                }
                else if (inv.IsFold == "Isflod")
                {
                    isflod = "已排版";
                }
                temp.仓库 = Warehouse;
                temp.库位 = inv.LocationCode;
                temp.容器编号 = inv.ContainerCode;
                temp.单据号 = inv.SourceCode;
                temp.二维码 = inv.QrCode;
                temp.物料编码 = inv.MaterialCode;
                temp.批次 = inv.OldBatch;
                temp.批号 = inv.Lot;
                temp.数量 = inv.Qty;
                temp.创建时间 = inv.CreateTime;
                temp.退库 = inv.Retreat;
                temp.规格 = inv.Specification;
                temp.品名 = inv.NameDescription;
                temp.单位 = inv.Unit;
                temp.尺寸 = inv.Size;
                temp.张数 = inv.NumberofSheets;
                temp.组数 = inv.Groupnum;
                temp.错叠张数 = inv.StackingNumber;
                temp.客户 = inv.Customer;
                //temp.供应商 = inv.Supplier;
                temp.排版 = isflod;
                list.Add(temp);
            }

            tableData.data = list;
            return JsonHelper.Instance.Serialize(tableData);
            //return JsonHelper.Instance.Serialize(_app.ExportData(entity));
        }
        #endregion

        #region 导出模板
        /// <summary>
        /// 导出模板
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public string GetTemplate()
        {
            var result = new TableData();
            List<Inventory> listInventory = new List<Inventory>();
            Inventory entity = _app.FindSingle(u => u.Id > 0);
            if (entity != null)
            {
                listInventory.Add(entity);
            }
            else
            {
                listInventory.Add(new Inventory());
            }
 
            result.data = listInventory;
            result.count = listInventory.Count;

            return JsonHelper.Instance.Serialize(result);
        }
        #endregion

        #region 导入数据
        /// <summary>
        /// 导入数据
        /// </summary>
        /// <param name="excelfile">表单提交的文件信息</param>
        /// <returns></returns>
        [HttpPost]
        public string Import(IFormFile excelfile)
        {
            try
            {
                Response result = _app.ImportIn(excelfile);
                if (!result.Status)
                {
                    Result.Status = false;
                    Result.Message = result.Message;
                }
            }
            catch (Exception ex)
            {
                Result.Status = false;
                Result.Message = ex.Message;
            }
            return JsonHelper.Instance.Serialize(Result);
        }
        #endregion

        #region 自定义方法
        /// <summary>
        /// 库存直接出库
        /// </summary>
        /// <param name="Table_entitys">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string GoodsOut(List<Inventory> Table_entitys,string station,string status)
        {
            return JsonHelper.Instance.Serialize(_app.TaskOutNoBack(Table_entitys, station));
        }

        /// <summary>
        /// 盘点加载无任务状态的物料
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string CheckLoad(PageReq pageRequest, Inventory entity)
        {
            return JsonHelper.Instance.Serialize(_app.CheckLoad(pageRequest, entity));
        }

        /// <summary>
        /// 查找未放满的容器
        /// </summary>
        /// <param name="materialCode">物料编号</param>
        /// <returns></returns>
        [HttpPost]
        public string FindInventory(string materialCode)
        {
            return JsonHelper.Instance.Serialize(_app.FindInventoryApp(materialCode));
        }
        /// <summary>
        /// 关闭盘点
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string CloseCYC(string region)
        {
            return JsonHelper.Instance.Serialize(_app.CloseCYC(region));
        }
        /// <summary>
        /// 盘点出库
        /// </summary>
        /// <param name="entitys"></param>
        /// <param name="station"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string CYCOutNoBack(List<Inventory> entitys, string station)
        {
            return JsonHelper.Instance.Serialize(_app.CYCOutNoBack(entitys, station));
        }

        /// <summary>
        /// 删除库存数据
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelInv(List<Inventory> Invs, string Name)
        {
            return JsonHelper.Instance.Serialize(_app.DelInv(Invs, Name));
        }
        /// <summary>
        /// 修改库存备注
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string UpRemark(List<Inventory> Invs, string Name)
        {
            return JsonHelper.Instance.Serialize(_app.UpRemark(Invs, Name));
        }
        /// <summary>
        /// 修改仓库
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string UpSpecialWarehouse(List<Inventory> Invs, string Warehouse)
        {
            return JsonHelper.Instance.Serialize(_app.UpSpecialWarehouse(Invs, Warehouse));
        }
        /// <summary>
        /// 修改库存数量
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string UpQty(List<Inventory> Invs, decimal? Qty)
        {
            return JsonHelper.Instance.Serialize(_app.UpQty(Invs, Qty));
        }
        /// <summary>
        /// 批量修改库存状态
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string UpGoods(List<Inventory> Invs)
        {
            return JsonHelper.Instance.Serialize(_app.UpGoods(Invs));
        }
        #endregion
    }
}