BaseLocationController.cs 4.75 KB
using Hh.Mes.Common.Request;
using Hh.Mes.Pojo.System;
using Hh.Mes.POJO.Entity;
using Hh.Mes.Service.Distribution;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using WebMvc.Aop;
using Hh.Mes.Service.SystemAuth;
using Hh.Mes.POJO.Response;

namespace WebMvc.Areas.Distribution.Controllers
{
    [Area("Distribution")]
    public class BaseLocationController : BaseController
    {
        private readonly BaseLocationService _service;
        private readonly MaterialDistributeLoadDataService _materialService;
        public BaseLocationController(IAuth authUtil, BaseLocationService service) : base(authUtil)
        {
            _service = service;
            _materialService = new MaterialDistributeLoadDataService();
        }
 
        #region 视图功能
        /// <summary>
        /// 默认视图Action
        /// </summary>
        /// <returns></returns>
        [Authenticate]
        [ServiceFilter(typeof(OperLogFilter))]
        public ActionResult Index()
        {
            return View();
        }

        /// <summary>
        /// 料点选择页面
        /// </summary>
        /// <returns></returns>
        [Authenticate]
        [ServiceFilter(typeof(OperLogFilter))]
        public ActionResult LocationChoice() 
        {
            return View();
        }

        #endregion

        #region 数据操作

        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Load(PageReq pageRequest, base_location entity)
        {
            return Serialize(_service.Load(pageRequest, entity));
        }
 
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(base_location entity)
        {
            return Serialize(_service.Ins(entity));
        }
 
        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(base_location entity)
        {
            return Serialize(_service.Upd(entity));
        }
 
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            return Serialize(_service.DelByIds(ids));
        }
        #endregion
 
        #region 导出数据
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Export(base_location entity)
        {
            return Serialize(_service.ExportData(entity));
        }
        #endregion

        #region 自定义方法

        /// <summary>
        /// 料点配置查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string LoadData(PageReq pageRequest, base_location entity)
        {
            return Serialize(_service.LoadData(pageRequest, entity));
        }

        /// <summary>
        /// 获取选中的料点
        /// </summary>
        /// <param name="locationCode"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string GetLocationChoiceByLocationCode(string locationCode)
        {
            return Serialize(_service.GetLocationChoiceByLocationCode(locationCode));
        }

        /// <summary>
        /// 料点配置
        /// </summary>
        /// <param name="stationCode"></param>
        /// <param name="endPositionCode"></param>
        /// <param name="checkeds"></param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        public string OperateLocationStation(string stationCode, string endPositionCode, bool checkeds)
        {
            return Serialize(_service.OperateLocationStation(stationCode, endPositionCode, checkeds));
        }

        /// <summary>
        /// 叫料字典初始化
        /// </summary>
        [HttpPost]
        public string IniLocationVm()
        {
            _materialService.IniLocationVm(true);
            var response = new Response();
            return Serialize(response);
        }

        #endregion
    }
}