/* *所有关于Dt_materiel_zc_info类的业务代码应在此处编写 *可使用repository.调用常用方法,获取EF/Dapper等信息 *如果需要事务请使用repository.DbContextBeginTransaction *也可使用DBServerProvider.手动获取数据库相关信息 *用户信息、权限、角色等使用UserContext.Current操作 *Dt_materiel_zc_infoService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter */ using WIDESEA.Core.BaseProvider; using WIDESEA.Core.Extensions.AutofacManager; using WIDESEA.Entity.DomainModels; using System.Linq; using WIDESEA.Core.Utilities; using System.Linq.Expressions; using WIDESEA.Core.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Http; using WIDESEA.Services.IRepositories; using WIDESEA.Core.ManageUser; using System; using System.Collections.Generic; using WIDESEA.Services.Repositories; using WIDESEA_Common.LogEnum; using System.Threading.Tasks; namespace WIDESEA.Services.Services { public partial class Dt_materiel_zc_infoService { private readonly IHttpContextAccessor _httpContextAccessor; private readonly IDt_materiel_zc_infoRepository _repository;//访问数据库 [ActivatorUtilitiesConstructor] public Dt_materiel_zc_infoService( IDt_materiel_zc_infoRepository dbRepository, IHttpContextAccessor httpContextAccessor ) : base(dbRepository) { _httpContextAccessor = httpContextAccessor; _repository = dbRepository; //多租户会用到这init代码,其他情况可以不用 //base.Init(dbRepository); } public override WebResponseContent Add(SaveModel saveDataModel) { WebResponseContent content = new WebResponseContent(); try { saveDataModel.MainData["materiel_zc_create_time"] = DateTime.Now; saveDataModel.MainData["materiel_zc_creator"] = UserContext.Current.UserTrueName; //车型 string materiel_zc_car_id = saveDataModel.MainData["materiel_zc_car_id"].ToString(); //轴承型号 string materelId = saveDataModel.MainData["materiel_zc_id"].ToString(); //厂家 string materelName = saveDataModel.MainData["materiel_zc_name"].ToString(); if (repository.Exists(x => x.materiel_zc_car_id == materiel_zc_car_id && x.materiel_zc_id == materelId && x.materiel_zc_name == materelName)) return content.Error("当前轴承型号已存在,请勿重复添加."); content = base.Add(saveDataModel); } catch (Exception ex) { content.Error("添加轴承型号失败:" + ex.Message); } finally { if (content.Status) content.OK("添加轴承型号成功."); else content.Error("添加轴承型号失败:" + content.Message); } return content; } public override WebResponseContent Del(object[] keys, bool delList = true) { List listKeys = new List(); foreach (var item in keys) { listKeys.Add(Guid.Parse(item.ToString())); } List listMateriel = repository.Find(r => listKeys.Contains(r.materiel_zc_pkid)); string[] listMaterielId = listMateriel.Select(r => r.materiel_zc_id).ToArray(); Dt_container_detail container = Dt_container_detailRepository.Instance.FindFirst(x => listMaterielId.Contains(x.containerdtl_type)); if (null != container) return WebResponseContent.Instance.Error($"当前库存存在轴承型号{container.containerdtl_type},不能删除。"); LogRecord.WriteLog((int)LogEnum.System, $"{DateTime.Now + UserContext.Current.UserTrueName}->轴承型号删除:" + listMateriel.Serialize()); return base.Del(keys, delList); } /// /// 根据车型获取轴承型号 /// /// /// public async Task GetZCInfoByMateriel(SaveModel saveModel) { return await Task.Run(() => { string value = saveModel.MainData["materielId"]?.ToString(); List list = repository.Find(r => r.materiel_zc_car_id == value); List pairs = new List(); if (null != list) { foreach (var item in list) { pairs.Add(new { key = item.materiel_zc_id, value = item.materiel_zc_id }); } } return new WebResponseContent { Status = true, Data = pairs }; }); } /// /// 根据车型和轴承型号获取厂家 /// /// /// public async Task GetManufacturerByMateriel(SaveModel saveModel) { return await Task.Run(() => { string value = saveModel.MainData["materielId"]?.ToString(); string model = saveModel.MainData["materielModel"]?.ToString(); List list = repository.Find(r => r.materiel_zc_car_id == value && r.materiel_zc_id == model); List pairs = new List(); if (null != list) { foreach (var item in list) { pairs.Add(new { key = item.materiel_zc_name, value = item.materiel_zc_name }); } } return new WebResponseContent { Status = true, Data = pairs }; }); } } }