| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- namespace Admin.NET.Plugin.AiDOP.Order;
- /// <summary>
- /// 计划联动看板服务
- /// 路由前缀:/api/Order/linkageplan/...
- /// </summary>
- [ApiDescriptionSettings(Order = 250, Description = "计划联动看板")]
- [Route("api/Order")]
- [AllowAnonymous]
- [NonUnify]
- public class LinkagePlanService : IDynamicApiController, ITransient
- {
- private readonly ISqlSugarClient _db;
- private readonly SqlSugarRepository<LinkagePlan> _linkagePlanRep;
- public LinkagePlanService(
- ISqlSugarClient db,
- SqlSugarRepository<LinkagePlan> linkagePlanRep)
- {
- _db = db;
- _linkagePlanRep = linkagePlanRep;
- }
- [DisplayName("获取计划联动看板列表")]
- [HttpGet("linkageplan/list")]
- public async Task<object> GetLinkagePlanList([FromQuery] LinkagePlanListInput input)
- {
- var q = _db.Queryable<LinkagePlan>()
- .WhereIF(!string.IsNullOrWhiteSpace(input.BillNo), u => u.BillNo != null && u.BillNo.Contains(input.BillNo!.Trim()))
- .WhereIF(!string.IsNullOrWhiteSpace(input.CustomNo), u => u.CustomNo != null && u.CustomNo.Contains(input.CustomNo!.Trim()))
- .WhereIF(!string.IsNullOrWhiteSpace(input.OrderType), u => u.OrderType == input.OrderType!.Trim())
- .WhereIF(!string.IsNullOrWhiteSpace(input.ItemNumber), u => u.ItemNumber == input.ItemNumber!.Trim());
- var paged = await q.OrderBy(u => u.Id).OrderBy(u => u.LevelNum).ToPagedListAsync(input.Page, input.PageSize);
- var list = paged.Items.Select(u => new
- {
- id = u.Id,
- billNo = u.BillNo,
- customNo = u.CustomNo,
- orderType = u.OrderType,
- itemNumber = u.ItemNumber,
- descr = u.Descr,
- descr1 = u.Descr1,
- itemType = u.ItemType,
- qty = u.Qty,
- updateTime = u.UpdateTime?.ToString("yyyy-MM-dd"),
- sysCapacityDate = u.SysCapacityDate?.ToString("yyyy-MM-dd"),
- type = u.Type,
- bomStart = u.BomStart,
- bomEnd = u.BomEnd,
- lineStart = u.LineStart,
- lineEnd = u.LineEnd,
- productStart = u.ProductStart,
- productEnd = u.ProductEnd,
- needTime = u.NeedTime,
- sysMaterialDate = u.SysMaterialDate,
- cgNeedTime = u.CgNeedTime,
- cgEnd = u.CgEnd,
- blStart = u.BlStart,
- blEnd = u.BlEnd,
- startTime = u.StartTime,
- endTime = u.EndTime,
- ipqcJyStart = u.IpqcJyStart,
- ipqcJyEnd = u.IpqcJyEnd,
- fqcJyStart = u.FqcJyStart,
- fqcJyEnd = u.FqcJyEnd,
- rkStart = u.RkStart,
- rkEnd = u.RkEnd,
- fyStartTime = u.FyStartTime,
- fyEndTime = u.FyEndTime,
- levelNum = u.LevelNum,
- background = u.Background,
- }).ToList();
- return new { total = paged.Total, page = input.Page, pageSize = input.PageSize, list };
- }
- [DisplayName("获取计划联动看板详情")]
- [HttpGet("linkageplan/{id:long}")]
- public async Task<object> GetLinkagePlanDetail(long id)
- {
- var m = await _linkagePlanRep.GetFirstAsync(u => u.Id == id)
- ?? throw Oops.Oh("计划联动记录不存在");
- return new
- {
- id = m.Id,
- billNo = m.BillNo,
- customNo = m.CustomNo,
- orderType = m.OrderType,
- itemNumber = m.ItemNumber,
- descr = m.Descr,
- descr1 = m.Descr1,
- itemType = m.ItemType,
- qty = m.Qty,
- updateTime = m.UpdateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
- sysCapacityDate = m.SysCapacityDate?.ToString("yyyy-MM-dd HH:mm:ss"),
- type = m.Type,
- bomStart = m.BomStart,
- bomEnd = m.BomEnd,
- lineStart = m.LineStart,
- lineEnd = m.LineEnd,
- productStart = m.ProductStart,
- productEnd = m.ProductEnd,
- needTime = m.NeedTime,
- sysMaterialDate = m.SysMaterialDate,
- cgNeedTime = m.CgNeedTime,
- cgEnd = m.CgEnd,
- blStart = m.BlStart,
- blEnd = m.BlEnd,
- startTime = m.StartTime,
- endTime = m.EndTime,
- ipqcJyStart = m.IpqcJyStart,
- ipqcJyEnd = m.IpqcJyEnd,
- fqcJyStart = m.FqcJyStart,
- fqcJyEnd = m.FqcJyEnd,
- rkStart = m.RkStart,
- rkEnd = m.RkEnd,
- fyStartTime = m.FyStartTime,
- fyEndTime = m.FyEndTime,
- levelNum = m.LevelNum,
- background = m.Background,
- };
- }
- [DisplayName("刷新计划联动数据")]
- [HttpPost("linkageplan/refresh")]
- public async Task<object> RefreshLinkagePlanData()
- {
- try
- {
- // 调用存储过程,不传递参数或传递空字符串
- await _db.Ado.ExecuteCommandAsync("CALL pr_Mes_LinkagePlan('')");
-
- return new { message = "数据刷新成功" };
- }
- catch (Exception ex)
- {
- throw Oops.Oh($"刷新数据失败: {ex.Message}");
- }
- }
- }
|