| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using Admin.NET.Plugin.AiDOP.Manufacturing.Dto;
- namespace Admin.NET.Plugin.AiDOP.Manufacturing;
- /// <summary>
- /// S6 模工具台账管理 只读 list 服务。
- ///
- /// 数据源:aidopdev.MoldToolList(模工具台账),忠实复刻证据 sql.txt(select * from MoldToolList),
- /// 列映射见字段配置图:类型=lx / 名称=MoldName / 供应商名=gysmc / 数量=MoldCount / 功能应用名称=gnyymc /
- /// 模具类型编码=MoldTypeCode / 对应产品物料编码=product_material_code / 图纸号=product_drawing_number /
- /// 产品名称=product_name / 工序=process。lx 含 模具 / 工装 / 检具(同表同页同源,类型下拉可筛选)。
- /// sql.txt 无 WHERE,本服务不按 tenant_id/Domain 过滤(与旧系统全表查询一致)。排序 id DESC。
- ///
- /// 本服务仅 SELECT:无新增/编辑/删除/写入;MoldToolList 有 tenant_id 但不据其过滤(透传参数)。
- /// </summary>
- [ApiDescriptionSettings(Order = 320, Description = "模工具台账管理")]
- [Route("api/S6ToolingLedger")]
- [AllowAnonymous]
- [NonUnify]
- public class ToolingLedgerService : IDynamicApiController, ITransient
- {
- private readonly ISqlSugarClient _db;
- public ToolingLedgerService(ISqlSugarClient db)
- {
- _db = db;
- }
- /// <summary>
- /// 模工具台账列表(只读分页查询)。
- /// </summary>
- [DisplayName("模工具台账列表")]
- [HttpGet("list")]
- public async Task<object> GetList([FromQuery] ToolingLedgerListInput input)
- {
- var page = input.Page <= 0 ? 1 : input.Page;
- var pageSize = input.PageSize <= 0 ? 10 : input.PageSize;
- var offset = (page - 1) * pageSize;
- var where = new List<string> { "1=1" };
- var pars = new List<SugarParameter>();
- if (!string.IsNullOrWhiteSpace(input.Name))
- {
- where.Add("m.MoldName LIKE @Name");
- pars.Add(new SugarParameter("@Name", $"%{input.Name.Trim()}%"));
- }
- if (!string.IsNullOrWhiteSpace(input.WorkGroup))
- {
- where.Add("m.gnyymc LIKE @WorkGroup");
- pars.Add(new SugarParameter("@WorkGroup", $"%{input.WorkGroup.Trim()}%"));
- }
- if (!string.IsNullOrWhiteSpace(input.UsageDept))
- {
- where.Add("m.MoldUsingDepartment LIKE @UsageDept");
- pars.Add(new SugarParameter("@UsageDept", $"%{input.UsageDept.Trim()}%"));
- }
- if (!string.IsNullOrWhiteSpace(input.Type))
- {
- where.Add("m.lx = @Type");
- pars.Add(new SugarParameter("@Type", input.Type.Trim()));
- }
- if (!string.IsNullOrWhiteSpace(input.MoldTypeCode))
- {
- where.Add("m.MoldTypeCode LIKE @MoldTypeCode");
- pars.Add(new SugarParameter("@MoldTypeCode", $"%{input.MoldTypeCode.Trim()}%"));
- }
- var whereSql = string.Join(" AND ", where);
- var total = await _db.Ado.GetIntAsync($"SELECT COUNT(1) FROM MoldToolList m WHERE {whereSql}", pars);
- var list = await _db.Ado.SqlQueryAsync<ToolingLedgerListRow>(
- $"""
- SELECT
- m.id AS Id,
- m.lx AS Type,
- m.MoldName AS Name,
- m.gysmc AS SupplierName,
- m.MoldCount AS Qty,
- m.gnyymc AS FunctionAppName,
- m.MoldTypeCode AS MoldTypeCode,
- m.product_material_code AS ProductMaterialCode,
- m.product_drawing_number AS ProductDrawingNo,
- m.product_name AS ProductName,
- m.process AS Process
- FROM MoldToolList m
- WHERE {whereSql}
- ORDER BY m.id DESC
- LIMIT {pageSize} OFFSET {offset}
- """,
- pars);
- return new { total, page, pageSize, list };
- }
- /// <summary>
- /// 类型下拉选项(MoldToolList.lx distinct:模具 / 工装 / 检具,只读)。
- /// </summary>
- [DisplayName("模工具台账类型选项")]
- [HttpGet("type-options")]
- public async Task<object> GetTypeOptions()
- {
- var list = await _db.Ado.SqlQueryAsync<ToolingLedgerTypeOption>(
- """
- SELECT DISTINCT lx AS Val
- FROM MoldToolList
- WHERE IFNULL(lx,'') <> ''
- ORDER BY lx
- """);
- return list;
- }
- }
|