LocationApp.cs 4.4 KB
using Hh.Mes.Common.Infrastructure;
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Response;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
using System.Linq;
using System.Linq.Expressions;
using WebRepository;

namespace WebApp
{
    /// <summary>
    /// 库位表
    /// </summary>

    public partial class LocationApp
    {
        private IUnitWork _unitWork;
        public IRepository<Location> _app;
        private static IHostingEnvironment _hostingEnvironment;
        

        public LocationApp(IUnitWork unitWork, IRepository<Location> repository, IHostingEnvironment hostingEnvironment)
        {
            _unitWork = unitWork;
            _app = repository;
            _hostingEnvironment = hostingEnvironment;
        }

        public LocationApp SetLoginInfo(LoginInfo loginInfo)
        {
            _app._loginInfo = loginInfo;
            return this;
        }

        public Response Load(PageReq pageRequest, Location entity)
        {
            return _app.Load(pageRequest, entity);
        }  

        public Response FindStockPlace(PageReq pageRequest, Location entity)
        {
            var result = new Response();
            var data = _app.Find(EntityToExpression<Location>.GetExpressions(entity));
            data = data.Where(u => u.Type.Length == 2 && u.Type.Substring(1, 1) == entity.Type);

            GetData(data, result, pageRequest);
            result.Count = data.Count();

            return result;
        }
        public void Ins(Location entity)
        {
            if (!string.IsNullOrEmpty(entity.LineCode))
            {
                entity.LineId = _unitWork.FindSingle<Line>(u => u.LineCode.Equals(entity.LineCode)).Id;
            }
            _app.Add(entity);
        }

        public void Upd(Location entity)
        {
            if (!string.IsNullOrEmpty(entity.LineCode))
            {
                entity.LineId = _unitWork.FindSingle<Line>(u => u.LineCode.Equals(entity.LineCode)).Id;
            }
            _app.Update(entity);
        }

        public void DelByIds(int[] ids)
        {
            _app.Delete(u => ids.Contains(u.Id.Value));
        }

        public Location FindSingle(Expression<Func<Location, bool>> exp)
        {
            return _app.FindSingle(exp);
        }

        public IQueryable<Location> Find(Expression<Func<Location, bool>> exp)
        {
            return _app.Find(exp);
        }

        public Response ImportIn(IFormFile excelfile)
        {
            return null;
        }

        public Response ExportData(Location entity)
        {
            return _app.ExportData(entity);
        }

        public Response Query(Location entity)
        {
            var result = new Response();
            var data = _app.Find(EntityToExpression<Location>.GetExpressions(entity));

            GetData(data, result);
            result.Count = data.Count();

            return result;
        }

        public void GetData(IQueryable<Location> data, Response result, PageReq pageRequest = null)
        {
            _app.GetData(data, result, pageRequest);
        }
        public Response IsStopApp(int[] ids, bool stop)
        {
            Response tab = new Response();
            Location location = new Location();
            try
            {
                foreach (int id in ids)
                {
                    location = _unitWork.Find<Location>(n => n.Id == id).FirstOrDefault();
                    location.IsStop = stop;
                    _unitWork.Update(location);
                }
                tab.Code = 200;
            }
            catch (Exception ex)
            {
                tab.Code = 300;
                tab.Message = ex.Message;
            }
            return tab;
        }

        //批量创建
        public Response BtchAdd(string BLine, string Type, int Row, int Line, int Layer, int Grid, int Roadway, decimal Height, decimal Weight)
        {
            Response res = new Response();
            try
            {
                _unitWork.ExecuteSql(string.Format("EXECUTE dbo.P_Create_Location '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}'", BLine, Type, Row, Line, Layer, Grid, Roadway, "", Height, Weight));
                return res;
            }
            catch (Exception ex)
            {
                res.Status = false;
                res.Message = ex.Message;
                return res;
            }
        }
    }
}