using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; using WIDESEA_IBasicService; using WIDESEA_Model.Models; using WIDESEA_Core.Helper; using WIDESEA_Common.CommonEnum; using WIDESEA_Core.Caches; using WIDESEA_Core.BaseRepository; using WIDESEA_Model.Models.Basic; using WIDESEA_DTO.Basic; namespace WIDESEA_BasicService { public partial class WarehouseService : ServiceBase>, IWarehouseService { private readonly ICacheService _cacheService; private readonly IRepository _warehouseArearepository; public WarehouseService(IRepository BaseDal, ICacheService cacheService, IRepository warehouseArearepository) : base(BaseDal) { _cacheService = cacheService; _warehouseArearepository = warehouseArearepository; } public IRepository Repository => BaseDal; /// /// 批量启用仓库 /// /// 仓库主键数组 /// public WebResponseContent WarehouseEnableStatus(int[] keys) { List warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId)); warehouses.ForEach(x => { x.WarehouseStatus = EnableEnum.Enable.ObjToInt(); }); Repository.UpdateData(warehouses); return WebResponseContent.Instance.OK(); } /// /// 批量禁用仓库 /// /// 仓库主键数组 /// public WebResponseContent WarehouseDisableStatus(int[] keys) { List warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId)); warehouses.ForEach(x => { x.WarehouseStatus = EnableEnum.Disable.ObjToInt(); }); Repository.UpdateData(warehouses); return WebResponseContent.Instance.OK(); } /// /// 单个启用仓库 /// /// 仓库主键 /// public WebResponseContent WarehouseEnableStatus(int key) { return WarehouseEnableStatus(new int[] { key }); } /// /// 单个禁用仓库 /// /// 仓库主键 /// public WebResponseContent WarehouseDisableStatus(int key) { return WarehouseDisableStatus(new int[] { key }); } public async Task ReceiveWarehouseArea(List models) { var lists = _warehouseArearepository.Db.Queryable().ToList(); foreach (var item in models) { if (item.IsDelete == 1) { var first= _warehouseArearepository.Db.Queryable().First(x => x.Code == item.Code); if(first != null) { _warehouseArearepository.DeleteData(first); } } else { var dbfirst = lists.FirstOrDefault(x => x.Code == item.Code); if (dbfirst != null) { dbfirst.Code = item.Code; dbfirst.Name = item.Name; dbfirst.FactoryArea = item.FactoryArea; _warehouseArearepository.UpdateData(dbfirst); } else { _warehouseArearepository.AddData(new Dt_WarehouseArea { Code = item.Code, Name = item.Name, FactoryArea = item.FactoryArea }); } } } return WebResponseContent.Instance.OK(); } public List GetWarehouseTypes() { return _warehouseArearepository.Db.Queryable().Select(x => new WarehouseDTO { WarehouseType = x.Code, WarehouseTypeDesc = $"{x.Code}-{x.Name}" }).ToList(); } } }