diff --git a/BasicData/Tnb.BasicData.Entities/Dto/BasCalendar/CalendarInput.cs b/BasicData/Tnb.BasicData.Entities/Dto/BasCalendar/CalendarInput.cs index 61edcf32..c2faa9be 100644 --- a/BasicData/Tnb.BasicData.Entities/Dto/BasCalendar/CalendarInput.cs +++ b/BasicData/Tnb.BasicData.Entities/Dto/BasCalendar/CalendarInput.cs @@ -13,8 +13,8 @@ namespace Tnb.BasicData.Entities.Dto public string? workhour { get; set; } public string? worktype { get; set; } public int? calendartype { get; set;} - public string? workgroupid { get; set;} - public string? userid { get; set; } + + public string? content { get; set;} } public class CalendarBatchInput { diff --git a/BasicData/Tnb.BasicData/BasCalendarService.cs b/BasicData/Tnb.BasicData/BasCalendarService.cs index 414a940a..61d2e75c 100644 --- a/BasicData/Tnb.BasicData/BasCalendarService.cs +++ b/BasicData/Tnb.BasicData/BasCalendarService.cs @@ -68,7 +68,7 @@ namespace Tnb.BasicData if (CalendarInput.calendartype == (int)EnumCalendarType.分类) { var db = _repository.AsSugarClient(); - var lists = await db.Queryable().Where(p => p.worktype == CalendarInput.worktype).ToListAsync(); + var lists = await db.Queryable().Where(p => p.worktype == CalendarInput.content).ToListAsync(); foreach (var list in lists) { @@ -83,7 +83,7 @@ namespace Tnb.BasicData else if (CalendarInput.calendartype == (int)EnumCalendarType.班组) { var db = _repository.AsSugarClient(); - var Shifts = await db.Queryable().Where(p => p.workgroup_id == CalendarInput.workgroupid).Select(p=>p.shift_id).ToListAsync(); + var Shifts = await db.Queryable().Where(p => p.workgroup_id == CalendarInput.content).Select(p=>p.shift_id).ToListAsync(); if (Shifts != null && Shifts.Count > 0) { var BasTimePeriods = await db.Queryable((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id }) @@ -120,7 +120,7 @@ namespace Tnb.BasicData CalendarOut CalendarOut = new CalendarOut(); CalendarOut.datetext = date.ToString("yyyy-MM-dd"); CalendarOut.datetype = "workDay"; - CalendarOut.workhour = new List { BasTimePeriod.workhour }; + CalendarOut.workhour = new List { BasTimePeriod.workhour! }; CalendarOuts.Add(CalendarOut); } } @@ -148,7 +148,7 @@ namespace Tnb.BasicData else if (CalendarInput.calendartype == (int)EnumCalendarType.个人) { var db = _repository.AsSugarClient(); - var groups = await db.Queryable().Where(p => p.employee_id == CalendarInput.userid).Select(p => p.group_id).ToListAsync(); + var groups = await db.Queryable().Where(p => p.employee_id == CalendarInput.content).Select(p => p.group_id).ToListAsync(); var Shifts = await db.Queryable().Where(p => groups.Contains(p.workgroup_id)).Select(p => p.shift_id).ToListAsync(); if (Shifts != null && Shifts.Count > 0) { diff --git a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs index 03bdcbaa..98eb180c 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs @@ -6,6 +6,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; +using COSXML.Model.Tag; using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Security; @@ -33,18 +34,40 @@ namespace Tnb.QcMgr /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 800)] [Route("api/[area]/[controller]/[action]")] - public class QcCheckPlanService : IQcCheckPlanService, IDynamicApiController, ITransient + [OverideVisualDev(ModuleId)] + public class QcCheckPlanService : IOverideVisualDevService, IQcCheckPlanService, IDynamicApiController, ITransient { + private const string ModuleId = "26589675013909"; private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; private readonly TimeTaskService _timeTaskService; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public QcCheckPlanService(ISqlSugarRepository repository, IUserManager userManager, TimeTaskService timeTaskService) { _repository = repository; _userManager = userManager; _timeTaskService = timeTaskService; + OverideFuncs.DeleteAsync = Delete; + } + private async Task Delete(string id) + { + var db = _repository.AsSugarClient(); + var QcCheckPlanH = await db.Queryable().Where(p => p.id == id).FirstAsync(); + var QcCheckPlanDs = await db.Queryable().Where(p => p.mainid == id).ToListAsync(); + var QcCheckPlanAdds = await db.Queryable().Where(p => p.mainid == id).ToListAsync(); + var QcCheckPlanMaterials = await db.Queryable().Where(p => p.planid == id).ToListAsync(); + var QcCheckPlanProcesss = await db.Queryable().Where(p => p.planid == id).ToListAsync(); + var QcCheckPlanWorks = await db.Queryable().Where(p => p.planid == id).ToListAsync(); + await _timeTaskService.DeleteByName("生成质检任务" + QcCheckPlanH.id); + await db.Ado.BeginTranAsync(); + await db.Deleteable(QcCheckPlanH).ExecuteCommandAsync(); + await db.Deleteable(QcCheckPlanDs).ExecuteCommandAsync(); + await db.Deleteable(QcCheckPlanAdds).ExecuteCommandAsync(); + await db.Deleteable(QcCheckPlanMaterials).ExecuteCommandAsync(); + await db.Deleteable(QcCheckPlanProcesss).ExecuteCommandAsync(); + await db.Deleteable(QcCheckPlanWorks).ExecuteCommandAsync(); + await db.Ado.CommitTranAsync(); } - /// /// 获取方案质检项附加信息 /// @@ -59,7 +82,7 @@ namespace Tnb.QcMgr var QcCheckPlanAdd = await db.Queryable().Where(p => p.mainid == id).FirstAsync(); var QcCheckPlanDs = await db.Queryable().Where(p => p.mainid == id).ToListAsync(); var CheckPlansOut = new CheckPlansOut(); - CheckPlansOut.id= id; + CheckPlansOut.id = id; CheckPlansOut.hasadd = false; CheckPlansOut.hasitem = false; if (QcCheckPlanAdd != null) @@ -69,7 +92,7 @@ namespace Tnb.QcMgr CheckPlansOut.triggertype = QcCheckPlanAdd.triggertype!; CheckPlansOut.content = QcCheckPlanAdd.content!; } - if (QcCheckPlanDs != null&& QcCheckPlanDs.Count>0) + if (QcCheckPlanDs != null && QcCheckPlanDs.Count > 0) { CheckPlansOut.hasitem = true; CheckPlansOut.checktypes = new List(); @@ -90,7 +113,7 @@ namespace Tnb.QcMgr Item.name = QcCheckItems.Where(p => p.id == QcCheckPlanD.itemid).First().name!; Item.setData = new PlanItemData(); Item.setData.extype = QcCheckPlanD.extype!; - Item.setData.excontent = JSON.Deserialize(QcCheckPlanD.excontent!); + Item.setData.excontent = JSON.Deserialize(QcCheckPlanD.excontent!); Item.setData.check = QcCheckPlanD.check!; if (!string.IsNullOrEmpty(QcCheckPlanD.errorcause)) Item.setData.errorcause = QcCheckPlanD.errorcause!.Replace("[", "").Replace("]", "").Split(',', StringSplitOptions.RemoveEmptyEntries); @@ -197,7 +220,7 @@ namespace Tnb.QcMgr await db.Insertable(QcCheckPlanDs).ExecuteCommandAsync(); await db.Insertable(QcCheckPlanAdd).ExecuteCommandAsync(); await db.Ado.CommitTranAsync(); - if (QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.周期触发).ToString()|| QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.一次性).ToString()) + if (QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.周期触发).ToString() || QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.一次性).ToString()) { var comtentModel = new ContentModel(); comtentModel.cron = QcCheckPlanAdd.content!.Replace("\"", ""); @@ -205,7 +228,7 @@ namespace Tnb.QcMgr comtentModel.interfaceName = ""; comtentModel.parameter = new List(); comtentModel.parameter!.Add(new InterfaceParameter() { field = "id", value = QcCheckPlanAdd.mainid, defaultValue = "" }); - if(QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.一次性).ToString()) + if (QcCheckPlanAdd.triggertype == ((int)EnumTriggerType.一次性).ToString()) comtentModel.parameter!.Add(new InterfaceParameter() { field = "doonce", value = true.ToString(), defaultValue = "" }); comtentModel.localHostTaskId = "QcTaskTimeWorker/CreateTask"; comtentModel.startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds(); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 7a451c34..bb3d2c6f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -12,6 +12,7 @@ using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.DependencyInjection; using JNPF.DynamicApiController; +using JNPF.Systems.Interfaces.System; using JNPF.VisualDev; using Microsoft.AspNetCore.Mvc; using SqlSugar; @@ -46,7 +47,8 @@ namespace Tnb.WarehouseMgr } } } - + + [NonAction] protected async Task DoUpdate(WareHouseUpInput input) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 4c1460cf..0af932f0 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -92,7 +92,7 @@ namespace Tnb.WarehouseMgr warehouse_name = c.whname, }) .ToListAsync(); - return items; + return items ?? Enumerable.Empty(); } /// /// 库房业务,入库、出库申请新增修改功能 @@ -139,27 +139,10 @@ namespace Tnb.WarehouseMgr [HttpGet] public async Task GetInOutStockCodesById([FromQuery] InOutStockDetailQuery input) { - async Task _fetchInOutStockCodesById(string billDId) - where TStockD : BaseEntity, new() - where TOutput : IInOutStockDetail, new() - where TStockCode : BaseEntity, IInOutStockCode, new() - { - var dic = await _dictionaryDataService.GetDictionaryByTypeId(WmsWareHouseConst.WMS_INSTOCK_D_BILL_STATUS_TYPEID); - var data = await _db.Queryable() - .Where(a => a.id == billDId) - .Select(a => new TOutput - { - CodeDetails = SqlFunc.Subqueryable().Where(it => it.bill_d_id == a.id).ToList(), - }, true) - .Mapper(it => it.line_status = it.line_status != null && dic.ContainsKey(key: it.line_status) ? dic[it.line_status]?.ToString() : "") - .ToListAsync(); - return data; - } - dynamic? result = input.inoutStockType switch { - EnumInOutStockType.In => await _fetchInOutStockCodesById(input.bill_d_id), - EnumInOutStockType.Out => await _fetchInOutStockCodesById(input.bill_d_id), + EnumInOutStockType.In => await FetchInOutStockCodesById(input.bill_d_id), + EnumInOutStockType.Out => await FetchInOutStockCodesById(input.bill_d_id), _ => throw new ArgumentOutOfRangeException(nameof(input.inoutStockType), $"Not expected EnumInOutStockType value: {input.inoutStockType}"), }; return result ?? Enumerable.Empty(); @@ -737,7 +720,30 @@ namespace Tnb.WarehouseMgr return isOk; } - + /// + /// 根据明细Id获取出入库明细信息 + /// + /// 出入库明细 + /// 明细输出类 + /// 出入库条码 + /// 明细Id + /// + private async Task FetchInOutStockCodesById(string billDId) + where TStockD : BaseEntity, new() + where TOutput : IInOutStockDetail, new() + where TStockCode : BaseEntity, IInOutStockCode, new() + { + var dic = await _dictionaryDataService.GetDictionaryByTypeId(WmsWareHouseConst.WMS_INSTOCK_D_BILL_STATUS_TYPEID); + var data = await _db.Queryable() + .Where(a => a.id == billDId) + .Select(a => new TOutput + { + CodeDetails = SqlFunc.Subqueryable().Where(it => it.bill_d_id == a.id).ToList(), + }, true) + .Mapper(it => it.line_status = it.line_status != null && dic.ContainsKey(key: it.line_status) ? dic[it.line_status]?.ToString() : "") + .ToListAsync(); + return data; + } #endregion } }