/* *所有关于Dt_quality_head类的业务代码应在此处编写 *可使用repository.调用常用方法,获取EF/Dapper等信息 *如果需要事务请使用repository.DbContextBeginTransaction *也可使用DBServerProvider.手动获取数据库相关信息 *用户信息、权限、角色等使用UserContext.Current操作 *Dt_quality_headService对增、删、改查、导入、导出、审核业务代码扩展参照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 System; using System.Collections.Generic; using WIDESEA.Services.Repositories; using WIDESEA.Common; namespace WIDESEA.Services.Services { public partial class Dt_quality_headService { private readonly IHttpContextAccessor _httpContextAccessor; private readonly IDt_quality_headRepository _repository;//访问数据库 [ActivatorUtilitiesConstructor] public Dt_quality_headService( IDt_quality_headRepository dbRepository, IHttpContextAccessor httpContextAccessor ) : base(dbRepository) { _httpContextAccessor = httpContextAccessor; _repository = dbRepository; //多租户会用到这init代码,其他情况可以不用 //base.Init(dbRepository); } /// /// 删除质检信息 /// /// /// /// public override WebResponseContent Del(object[] keys, bool delList = true) { WebResponseContent content = new WebResponseContent(); content = repository.DbContextBeginTransaction(() => { try { if (keys == null) { throw new Exception("请选择删除的质检信息"); //return content.Error("请选择删除的质检信息"); } List headIDs = new List(); if (!repository.Exists(x => x.qualityhead_id == Guid.Parse(keys[0].ToString()))) { return content.Error("该质检信息不存在!"); } for (int i = 0; i < keys.Length; i++) { Dt_quality_detail quality_Detail = Dt_quality_detailRepository.Instance.FindFirst(x => x.qualitydtl_headid == keys[i].ToString()); string qualityHeadID = quality_Detail.qualitydtl_headid; if (!headIDs.Contains(qualityHeadID)) { headIDs.Add(qualityHeadID); } } foreach (var item in headIDs) { List details = Dt_quality_detailRepository.Instance.Find(x => x.qualitydtl_headid == item.ToString()); for (int i = 0; i < details.Count; i++) { Dt_quality_detailRepository.Instance.Delete(details[i], true); } var dt = Dt_quality_headRepository.Instance.Find(x => x.qualityhead_id == Guid.Parse(item.ToString())); foreach (var items in dt) { Dt_taskinfo taskinfo = Dt_taskinfoRepository.Instance.Find(x => x.task_barcode == items.qualityhead_barcode && x.task_type.Contains(TaskType.TaskType_Quality.ToString()) && x.task_state == TaskState.TaskState_Create.ToString()).FirstOrDefault(); taskinfo.task_state = TaskState.TaskState_Closed.ToString(); //Dt_taskinfo_htyService.Instance.AddTaskToHistory(taskinfo); Dt_taskinfoRepository.Instance.Delete(taskinfo); Dt_locationinfo locationinfo = Dt_locationinfoRepository.Instance.FindFirst(x => x.location_id == taskinfo.task_fromlocationid.ToString()); locationinfo.location_state = LocationState.LocationState_Stored.ToString(); Dt_locationinfoRepository.Instance.Update(locationinfo, true); } } Dt_quality_headRepository.Instance.DeleteWithKeys(headIDs.ToArray()); return WebResponseContent.Instance.OK(message: "删除成功"); } catch (Exception ex) { return content.Error(ex.Message); } }); //Dt_trackloginfoService.Instance.AddTrackLog(keys, content, "删除质检信息", "", "删除质检信息"); return base.Del(keys, delList); } } }