Merge branch 'dev' of https://git.tuotong-tech.com/tnb/tnb.server into dev
This commit is contained in:
@@ -13,8 +13,8 @@ namespace Tnb.BasicData.Entities.Dto
|
|||||||
public string? workhour { get; set; }
|
public string? workhour { get; set; }
|
||||||
public string? worktype { get; set; }
|
public string? worktype { get; set; }
|
||||||
public int? calendartype { 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
|
public class CalendarBatchInput
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ namespace Tnb.BasicData
|
|||||||
if (CalendarInput.calendartype == (int)EnumCalendarType.分类)
|
if (CalendarInput.calendartype == (int)EnumCalendarType.分类)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
var db = _repository.AsSugarClient();
|
||||||
var lists = await db.Queryable<BasCalendar>().Where(p => p.worktype == CalendarInput.worktype).ToListAsync();
|
var lists = await db.Queryable<BasCalendar>().Where(p => p.worktype == CalendarInput.content).ToListAsync();
|
||||||
|
|
||||||
foreach (var list in lists)
|
foreach (var list in lists)
|
||||||
{
|
{
|
||||||
@@ -83,7 +83,7 @@ namespace Tnb.BasicData
|
|||||||
else if (CalendarInput.calendartype == (int)EnumCalendarType.班组)
|
else if (CalendarInput.calendartype == (int)EnumCalendarType.班组)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
var db = _repository.AsSugarClient();
|
||||||
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => p.workgroup_id == CalendarInput.workgroupid).Select(p=>p.shift_id).ToListAsync();
|
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => p.workgroup_id == CalendarInput.content).Select(p=>p.shift_id).ToListAsync();
|
||||||
if (Shifts != null && Shifts.Count > 0)
|
if (Shifts != null && Shifts.Count > 0)
|
||||||
{
|
{
|
||||||
var BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
|
var BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
|
||||||
@@ -120,7 +120,7 @@ namespace Tnb.BasicData
|
|||||||
CalendarOut CalendarOut = new CalendarOut();
|
CalendarOut CalendarOut = new CalendarOut();
|
||||||
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
|
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
|
||||||
CalendarOut.datetype = "workDay";
|
CalendarOut.datetype = "workDay";
|
||||||
CalendarOut.workhour = new List<WorkHour> { BasTimePeriod.workhour };
|
CalendarOut.workhour = new List<WorkHour> { BasTimePeriod.workhour! };
|
||||||
CalendarOuts.Add(CalendarOut);
|
CalendarOuts.Add(CalendarOut);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,7 +148,7 @@ namespace Tnb.BasicData
|
|||||||
else if (CalendarInput.calendartype == (int)EnumCalendarType.个人)
|
else if (CalendarInput.calendartype == (int)EnumCalendarType.个人)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
var db = _repository.AsSugarClient();
|
||||||
var groups = await db.Queryable<BasWorkgroupEmployee>().Where(p => p.employee_id == CalendarInput.userid).Select(p => p.group_id).ToListAsync();
|
var groups = await db.Queryable<BasWorkgroupEmployee>().Where(p => p.employee_id == CalendarInput.content).Select(p => p.group_id).ToListAsync();
|
||||||
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => groups.Contains(p.workgroup_id)).Select(p => p.shift_id).ToListAsync();
|
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => groups.Contains(p.workgroup_id)).Select(p => p.shift_id).ToListAsync();
|
||||||
if (Shifts != null && Shifts.Count > 0)
|
if (Shifts != null && Shifts.Count > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Reflection;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Aspose.Cells.Drawing;
|
using Aspose.Cells.Drawing;
|
||||||
|
using COSXML.Model.Tag;
|
||||||
using JNPF.Common.Core.Manager;
|
using JNPF.Common.Core.Manager;
|
||||||
using JNPF.Common.Enums;
|
using JNPF.Common.Enums;
|
||||||
using JNPF.Common.Security;
|
using JNPF.Common.Security;
|
||||||
@@ -33,18 +34,40 @@ namespace Tnb.QcMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 800)]
|
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 800)]
|
||||||
[Route("api/[area]/[controller]/[action]")]
|
[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<QcCheckPlanH> _repository;
|
private readonly ISqlSugarRepository<QcCheckPlanH> _repository;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
private readonly TimeTaskService _timeTaskService;
|
private readonly TimeTaskService _timeTaskService;
|
||||||
|
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
||||||
public QcCheckPlanService(ISqlSugarRepository<QcCheckPlanH> repository, IUserManager userManager, TimeTaskService timeTaskService)
|
public QcCheckPlanService(ISqlSugarRepository<QcCheckPlanH> repository, IUserManager userManager, TimeTaskService timeTaskService)
|
||||||
{
|
{
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_timeTaskService = timeTaskService;
|
_timeTaskService = timeTaskService;
|
||||||
|
OverideFuncs.DeleteAsync = Delete;
|
||||||
|
}
|
||||||
|
private async Task Delete(string id)
|
||||||
|
{
|
||||||
|
var db = _repository.AsSugarClient();
|
||||||
|
var QcCheckPlanH = await db.Queryable<QcCheckPlanH>().Where(p => p.id == id).FirstAsync();
|
||||||
|
var QcCheckPlanDs = await db.Queryable<QcCheckPlanD>().Where(p => p.mainid == id).ToListAsync();
|
||||||
|
var QcCheckPlanAdds = await db.Queryable<QcCheckPlanAdd>().Where(p => p.mainid == id).ToListAsync();
|
||||||
|
var QcCheckPlanMaterials = await db.Queryable<QcCheckPlanMaterial>().Where(p => p.planid == id).ToListAsync();
|
||||||
|
var QcCheckPlanProcesss = await db.Queryable<QcCheckPlanProcess>().Where(p => p.planid == id).ToListAsync();
|
||||||
|
var QcCheckPlanWorks = await db.Queryable<QcCheckPlanWork>().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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取方案质检项附加信息
|
/// 获取方案质检项附加信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -59,7 +82,7 @@ namespace Tnb.QcMgr
|
|||||||
var QcCheckPlanAdd = await db.Queryable<QcCheckPlanAdd>().Where(p => p.mainid == id).FirstAsync();
|
var QcCheckPlanAdd = await db.Queryable<QcCheckPlanAdd>().Where(p => p.mainid == id).FirstAsync();
|
||||||
var QcCheckPlanDs = await db.Queryable<QcCheckPlanD>().Where(p => p.mainid == id).ToListAsync();
|
var QcCheckPlanDs = await db.Queryable<QcCheckPlanD>().Where(p => p.mainid == id).ToListAsync();
|
||||||
var CheckPlansOut = new CheckPlansOut();
|
var CheckPlansOut = new CheckPlansOut();
|
||||||
CheckPlansOut.id= id;
|
CheckPlansOut.id = id;
|
||||||
CheckPlansOut.hasadd = false;
|
CheckPlansOut.hasadd = false;
|
||||||
CheckPlansOut.hasitem = false;
|
CheckPlansOut.hasitem = false;
|
||||||
if (QcCheckPlanAdd != null)
|
if (QcCheckPlanAdd != null)
|
||||||
@@ -69,7 +92,7 @@ namespace Tnb.QcMgr
|
|||||||
CheckPlansOut.triggertype = QcCheckPlanAdd.triggertype!;
|
CheckPlansOut.triggertype = QcCheckPlanAdd.triggertype!;
|
||||||
CheckPlansOut.content = QcCheckPlanAdd.content!;
|
CheckPlansOut.content = QcCheckPlanAdd.content!;
|
||||||
}
|
}
|
||||||
if (QcCheckPlanDs != null&& QcCheckPlanDs.Count>0)
|
if (QcCheckPlanDs != null && QcCheckPlanDs.Count > 0)
|
||||||
{
|
{
|
||||||
CheckPlansOut.hasitem = true;
|
CheckPlansOut.hasitem = true;
|
||||||
CheckPlansOut.checktypes = new List<CheckPlanTypeOut>();
|
CheckPlansOut.checktypes = new List<CheckPlanTypeOut>();
|
||||||
@@ -197,7 +220,7 @@ namespace Tnb.QcMgr
|
|||||||
await db.Insertable(QcCheckPlanDs).ExecuteCommandAsync();
|
await db.Insertable(QcCheckPlanDs).ExecuteCommandAsync();
|
||||||
await db.Insertable(QcCheckPlanAdd).ExecuteCommandAsync();
|
await db.Insertable(QcCheckPlanAdd).ExecuteCommandAsync();
|
||||||
await db.Ado.CommitTranAsync();
|
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();
|
var comtentModel = new ContentModel();
|
||||||
comtentModel.cron = QcCheckPlanAdd.content!.Replace("\"", "");
|
comtentModel.cron = QcCheckPlanAdd.content!.Replace("\"", "");
|
||||||
@@ -205,7 +228,7 @@ namespace Tnb.QcMgr
|
|||||||
comtentModel.interfaceName = "";
|
comtentModel.interfaceName = "";
|
||||||
comtentModel.parameter = new List<InterfaceParameter>();
|
comtentModel.parameter = new List<InterfaceParameter>();
|
||||||
comtentModel.parameter!.Add(new InterfaceParameter() { field = "id", value = QcCheckPlanAdd.mainid, defaultValue = "" });
|
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.parameter!.Add(new InterfaceParameter() { field = "doonce", value = true.ToString(), defaultValue = "" });
|
||||||
comtentModel.localHostTaskId = "QcTaskTimeWorker/CreateTask";
|
comtentModel.localHostTaskId = "QcTaskTimeWorker/CreateTask";
|
||||||
comtentModel.startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
comtentModel.startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using JNPF.Common.Enums;
|
|||||||
using JNPF.Common.Extension;
|
using JNPF.Common.Extension;
|
||||||
using JNPF.DependencyInjection;
|
using JNPF.DependencyInjection;
|
||||||
using JNPF.DynamicApiController;
|
using JNPF.DynamicApiController;
|
||||||
|
using JNPF.Systems.Interfaces.System;
|
||||||
using JNPF.VisualDev;
|
using JNPF.VisualDev;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
@@ -47,6 +48,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
protected async Task DoUpdate(WareHouseUpInput input)
|
protected async Task DoUpdate(WareHouseUpInput input)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
warehouse_name = c.whname,
|
warehouse_name = c.whname,
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
return items;
|
return items ?? Enumerable.Empty<dynamic>();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 库房业务,入库、出库申请新增修改功能
|
/// 库房业务,入库、出库申请新增修改功能
|
||||||
@@ -139,27 +139,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<dynamic?> GetInOutStockCodesById([FromQuery] InOutStockDetailQuery input)
|
public async Task<dynamic?> GetInOutStockCodesById([FromQuery] InOutStockDetailQuery input)
|
||||||
{
|
{
|
||||||
async Task<dynamic?> _fetchInOutStockCodesById<TStockD, TOutput, TStockCode>(string billDId)
|
|
||||||
where TStockD : BaseEntity<string>, new()
|
|
||||||
where TOutput : IInOutStockDetail<TStockCode>, new()
|
|
||||||
where TStockCode : BaseEntity<string>, IInOutStockCode, new()
|
|
||||||
{
|
|
||||||
var dic = await _dictionaryDataService.GetDictionaryByTypeId(WmsWareHouseConst.WMS_INSTOCK_D_BILL_STATUS_TYPEID);
|
|
||||||
var data = await _db.Queryable<TStockD>()
|
|
||||||
.Where(a => a.id == billDId)
|
|
||||||
.Select(a => new TOutput
|
|
||||||
{
|
|
||||||
CodeDetails = SqlFunc.Subqueryable<TStockCode>().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
|
dynamic? result = input.inoutStockType switch
|
||||||
{
|
{
|
||||||
EnumInOutStockType.In => await _fetchInOutStockCodesById<WmsInstockD, InStockDetailOutput, WmsInstockCode>(input.bill_d_id),
|
EnumInOutStockType.In => await FetchInOutStockCodesById<WmsInstockD, InStockDetailOutput, WmsInstockCode>(input.bill_d_id),
|
||||||
EnumInOutStockType.Out => await _fetchInOutStockCodesById<WmsOutstockD, OutStockDetailOutput, WmsOutstockCode>(input.bill_d_id),
|
EnumInOutStockType.Out => await FetchInOutStockCodesById<WmsOutstockD, OutStockDetailOutput, WmsOutstockCode>(input.bill_d_id),
|
||||||
_ => throw new ArgumentOutOfRangeException(nameof(input.inoutStockType), $"Not expected EnumInOutStockType value: {input.inoutStockType}"),
|
_ => throw new ArgumentOutOfRangeException(nameof(input.inoutStockType), $"Not expected EnumInOutStockType value: {input.inoutStockType}"),
|
||||||
};
|
};
|
||||||
return result ?? Enumerable.Empty<dynamic>();
|
return result ?? Enumerable.Empty<dynamic>();
|
||||||
@@ -737,7 +720,30 @@ namespace Tnb.WarehouseMgr
|
|||||||
return isOk;
|
return isOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据明细Id获取出入库明细信息
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TStockD">出入库明细</typeparam>
|
||||||
|
/// <typeparam name="TOutput">明细输出类</typeparam>
|
||||||
|
/// <typeparam name="TStockCode">出入库条码</typeparam>
|
||||||
|
/// <param name="billDId">明细Id</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<dynamic?> FetchInOutStockCodesById<TStockD, TOutput, TStockCode>(string billDId)
|
||||||
|
where TStockD : BaseEntity<string>, new()
|
||||||
|
where TOutput : IInOutStockDetail<TStockCode>, new()
|
||||||
|
where TStockCode : BaseEntity<string>, IInOutStockCode, new()
|
||||||
|
{
|
||||||
|
var dic = await _dictionaryDataService.GetDictionaryByTypeId(WmsWareHouseConst.WMS_INSTOCK_D_BILL_STATUS_TYPEID);
|
||||||
|
var data = await _db.Queryable<TStockD>()
|
||||||
|
.Where(a => a.id == billDId)
|
||||||
|
.Select(a => new TOutput
|
||||||
|
{
|
||||||
|
CodeDetails = SqlFunc.Subqueryable<TStockCode>().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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user