| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using Admin.NET.Plugin.AiDOP.Dto.S0.Manufacturing;
- using Admin.NET.Plugin.AiDOP.Entity;
- using Admin.NET.Plugin.AiDOP.Entity.S0.Manufacturing;
- using Admin.NET.Plugin.AiDOP.Infrastructure;
- namespace Admin.NET.Plugin.AiDOP.Controllers.S0.Manufacturing;
- /// <summary>
- /// 流转卡打印记录(legacy MissedPrint 只读投影)。
- /// 路由保留 /api/s0/manufacturing/process-flow-cards 以降低前端 / 菜单 / 权限迁移成本。
- /// 数据源由 S0ProcessFlowCard(当前 0 行)切换为 MissedPrint(200+ 行)。
- /// 写入路径仍由 S3 SupplierShipment / SupplierDelivery 服务负责,本 Controller 仅提供只读分页查询。
- /// </summary>
- [ApiController]
- [Route("api/s0/manufacturing/process-flow-cards")]
- [AllowAnonymous]
- [NonUnify]
- public class AdoS0MfgProcessFlowCardsController : ControllerBase
- {
- private readonly SqlSugarRepository<AdoS0MissedPrintRecord> _rep;
- public AdoS0MfgProcessFlowCardsController(SqlSugarRepository<AdoS0MissedPrintRecord> rep) => _rep = rep;
- [HttpGet]
- public async Task<IActionResult> GetPagedAsync([FromQuery] AdoS0FlowCardPrintRecordQueryDto q)
- {
- var page = q.EffectivePage;
- var pageSize = q.PageSize;
- (page, pageSize) = PagingGuard.Normalize(page, pageSize);
- var query = _rep.Context.Queryable<AdoS0MissedPrintRecord, AdoGeneralizedCodeRecord>(
- (m, g) => new JoinQueryInfos(
- JoinType.Left, g.FldName == "BarcodeStatus" && g.Val == m.Status))
- .WhereIF(!string.IsNullOrWhiteSpace(q.Keyword),
- (m, g) => (m.WorkOrd != null && m.WorkOrd.Contains(q.Keyword!))
- || (m.ItemNum != null && m.ItemNum.Contains(q.Keyword!))
- || (m.Descr != null && m.Descr.Contains(q.Keyword!)))
- .WhereIF(!string.IsNullOrWhiteSpace(q.WorkOrd),
- (m, g) => m.WorkOrd != null && m.WorkOrd.Contains(q.WorkOrd!))
- .WhereIF(!string.IsNullOrWhiteSpace(q.ItemNum),
- (m, g) => m.ItemNum != null && m.ItemNum.Contains(q.ItemNum!))
- .WhereIF(!string.IsNullOrWhiteSpace(q.LabelColor),
- (m, g) => m.LabelColor == q.LabelColor)
- .WhereIF(!string.IsNullOrWhiteSpace(q.Status),
- (m, g) => m.Status == q.Status)
- .WhereIF(q.CreateTimeFrom.HasValue,
- (m, g) => m.CreateTime >= q.CreateTimeFrom!.Value)
- .WhereIF(q.CreateTimeTo.HasValue,
- (m, g) => m.CreateTime <= q.CreateTimeTo!.Value);
- var total = await query.CountAsync();
- var list = await query
- .Select((m, g) => new S0MfgFlowCardPrintRecordRow
- {
- Id = m.Id,
- WorkOrd = m.WorkOrd,
- Op = m.Op,
- ItemNum = m.ItemNum,
- Descr = m.Descr,
- LabelFormat = m.LabelFormat,
- LabelColor = m.LabelColor,
- Status = m.Status,
- StatusDesc = g.Comments ?? m.Status,
- CreateTime = m.CreateTime
- })
- .MergeTable()
- .OrderByDescending(r => r.CreateTime)
- .OrderByDescending(r => r.Id)
- .Skip((page - 1) * pageSize).Take(pageSize)
- .ToListAsync();
- return Ok(new { total, page, pageSize, list });
- }
- }
|