MaterialDistributeLoadDataController.cs 4.89 KB
using Hh.Mes.Common;
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Hh.Mes.Service.Distribution;
using Hh.Mes.Service.SystemAuth;
using Hh.Mes.Pojo.System;
using Hh.Mes.Common.Json;
using Hh.Mes.POJO.Request;
using Hh.Mes.POJO.EnumEntitys;
using WebMvc.Aop;
using Hh.Mes.POJO.Response;

namespace WebMvc.Areas.wo.Controllers
{
    #region 装料数据

    /// <summary>
    /// 装料数据
    /// </summary>
    [Area("distribution")]
    public class MaterialDistributeLoadDataController : BaseController
    {
        private readonly MaterialDistributeLoadDataService  service;

        public MaterialDistributeLoadDataController(IAuth authUtil, MaterialDistributeLoadDataService service) : base(authUtil)
        {
            this.service = service;
            var user = authUtil.GetCurrentUser();
            if (user != null)
            {
                this.service.sysWebUser = user.User;
            }
          
        }

        #region 视图功能

        public IActionResult Index()
        {
            return View();
        }
        #endregion

        #region 获取数据
        /// <summary>
        /// 加载及分页查询
        /// </summary>
        [HttpPost]
        public string Load(PageReq pageRequest, bus_material_distribute_load_head entity)
        {
            return Serialize(service.Load(pageRequest, entity));
        }


        /// <summary>
        /// 加载及分页查询
        /// </summary>
        [HttpPost]
        public string LoadDesc(PageReq pageRequest, bus_material_distribute_load_detail entity)
        {
            return Serialize(service.LoadDesc(pageRequest, entity));
        }


        
        #endregion

        #region 提交数据
        /// <summary>
        /// 新增数据
        /// </summary>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(bus_material_distribute_load_head entity)
        {
            return Serialize(service.Ins(entity));
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(bus_material_distribute_load_head entity)
        {
            return Serialize(service.Upd(entity));
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(Guid[] ids)
        {
            return Serialize(service.DelByIds(ids));
        }

        #endregion

        #region 导出数据
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public async Task<string> Export(bus_material_distribute_load_head entity)
        {
            return  Serialize(await service.Export(entity));
        }
        #endregion

        #region 自定义方法
        /// <summary>
        /// 获取装料模板
        /// flag:edit 读取装料数据,add 读取装料模板数据
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string GetLoadDataTemplateByProductCode(bus_material_distribute_load_head entity)
        {
            var result = service.GetLoadDataTemplateByProductCode(entity);
            return Serialize(result);
        }

        /// <summary>
        /// 收取ECS发送过来的无货料点
        /// </summary>
        [HttpPost]
        public string SetNoneGoodsPoints([FromBody] RequestData<List<string>> requestData)
        {
            //var reqData = DynamicJson.Parse(requestData.ToString());
            //List<string> locationCodeList = requestData.Data;
            SystemVariable.noneGoodsLocationCodes = new Tuple<DateTime, List<string>>(DateTime.Now, requestData.Data);
            var response = new Response();
            return Serialize(response);
        }

        /// <summary>
        /// 装料页面JS获取能去的组队上料点
        /// </summary>
        /// <param name="productCode">产品编码</param>
        /// <param name="containerCode">托盘编码</param>
        /// <returns></returns>
        public string GetLoadMaterialLocation(string productCode, string containerCode)
        {
            var result = service.GetLoadMaterialLocation(productCode, containerCode);
            return Serialize(result);
        }

        /// <summary>
        /// 强制完成装料数据
        /// </summary>
        /// <returns></returns>
        public string HandlerMaterialDistributeLoadEnd(Guid keys)
        {
            var result = service.HandlerMaterialDistributeLoadEnd(keys);
            return Serialize(result);
        }

        #endregion

    }

    #endregion
}