EquipmentController.cs 5.54 KB
using HHECS.Application.Service;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using HHECS.Model.Entities;
using HHECS.Model.ViewEntity;
using Microsoft.AspNetCore.Http;
using HHECS.Infrastructure.Json;
using HHECS.Dal.Repository;
using System.Web;
using HHECS.Dal;
using Microsoft.AspNetCore.Mvc.Rendering;

namespace HHECS.Web.Areas.EquipmentInfo.Controllers
{
    /// <summary>
    /// 设备
    /// </summary>
    [Area("EquipmentInfo")]
    public class EquipmentController : BaseController
    {
        private readonly EquipmentService _equipmentService;

        public EquipmentController(EquipmentService equipmentService)
        {
            _equipmentService = equipmentService;
        }

        [ServiceFilter(typeof(OperLogFilter))]
        public IActionResult Index()
        {
            var warehouses = DALHelper.GetFreeSql().Queryable<Warehouse>().ToList(x => new SelectListItem
            {
                Text = x.Name,
                Value = x.Code,
            });
            ViewBag.Warehouses = warehouses;
            return View();
        }

        /// <summary>
        /// 导入图片数据
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public string Import(int Id, IFormFile File)
        {
            return _equipmentService.UpdateEquipmentImage(Id, File, User);
        }

        [HttpPost]
        public string Load(PageReq pageRequest, Equipment entity)
        {
            return _equipmentService.Load(entity, pageRequest);
        }

        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string LoadDesc(PageReq pageRequest, EquipmentPart entity)
        {
            return _equipmentService.LoadDesc(entity, pageRequest.page, pageRequest.limit);
        }

        #region 提交数据

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(Equipment entity)
        {
            return _equipmentService.Ins(entity, User);
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(Equipment entity)
        {
            return _equipmentService.Upd(entity, User);
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            return _equipmentService.EquipmentDelByIds(ids);
        }
        #endregion

        #region 提交数据 Desc

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string InsDesc(EquipmentPart entity)
        {
            return _equipmentService.InsDesc(entity, User);
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string UpdDesc(EquipmentPart entity)
        {
            return _equipmentService.UpdDesc(entity, User);
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIdsDesc(int[] ids)
        {
            return _equipmentService.EquipmentPartDelByIds(ids);
        }
        #endregion
        #region 自定义方法


        /// <summary>
        /// 同步
        /// </summary>
        /// <param name="equipmentId"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string SyncPart(int equipmentId)
        {
            return _equipmentService.SyncPart(equipmentId);
        }

        #endregion

        [HttpPost]
        public string SelectEquipmentsByWarehouseCode(string code)
        {
            EquipmentRepository equipmentRepository = new EquipmentRepository();
            Response res = new Response();
            if (!string.IsNullOrEmpty(code))
            {
                var tempCode = code.Split("_");
                var eqName = "";
                if (tempCode.Length > 1)
                {
                    eqName = HttpUtility.UrlDecode(tempCode[tempCode.Length - 1]);
                    code = tempCode[0];
                }
                var equipments = _equipmentService.GetEquipments(x => x.WarehouseCode.Equals(code)).Data;
                if (!string.IsNullOrEmpty(eqName))
                {
                    equipments = equipments.DistinctBy(x => x.Name).Where(x => x.Name.Contains(eqName)).ToList();//AGV设备
                }
                else
                {
                    equipments = equipments.DistinctBy(x => x.Name).Where(x => !x.Name.Contains("AGV")).ToList();//非AGV设备

                }
                res.Result = equipments;
            }
            else
            {
                res.Result = "";//res.Result = equipmentRepository.Where(x=>x.Disable).ToList(); ;
            }
            return JsonHelper.Instance.Serialize(res);
        }
    }
}