服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-09-23 7c78ff40dfc87ab553be48867951ada61f6a00af
获取工单模板变量更新
已修改1个文件
25 ■■■■ 文件已修改
Tiger.Business.MES/BIZ/BIZ_MES_WO.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
@@ -14,6 +14,8 @@
using Tiger.Model.Entitys.MES.BizMesWoBatch;
using Tiger.Model.Entitys.MES.BizMesWo;
using Tiger.Model.Entitys.MES.Position;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Drawing.Printing;
namespace Tiger.Business.MES
{
@@ -312,13 +314,30 @@
                    result.LocaleMsg = new($"工单号不能为空!");
                    return result;
                }
                query.page = await Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q=>q.WORK_ORDER.Equals(input.WorkOrder) && q.LABEL_ID.Equals(input.LabelId)).ToPageAsync(input.pageIndex, input.pageSize);
                query.Items = query.page.data;
                var lableVars = await Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q => SqlFunc.IsNullOrEmpty(q.WORK_ORDER) && q.LABEL_ID.Equals(input.LabelId)).ToListAsync();
                var queryable = Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q => q.WORK_ORDER.Equals(input.WorkOrder) && q.LABEL_ID.Equals(input.LabelId));
                query.page = await queryable.ToPageAsync(input.pageIndex, input.pageSize);
                //如果不存在,则返回初始数据
                if (query.page.totals == 0) {
                if (query.page.totals == 0)
                {
                    query.page = await Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q => SqlFunc.IsNullOrEmpty(q.WORK_ORDER) && q.LABEL_ID.Equals(input.LabelId)).ToPageAsync(input.pageIndex, input.pageSize);
                    query.Items = query.page.data;
                }
                //如果初始变量数大于工单设置的变量数
                if (lableVars.Count > query.page.totals)
                {
                    foreach (var item in lableVars)
                    {
                        if (queryable.ToList().Any(q => q.VAR_NAME == item.VAR_NAME))
                        {
                            item.WORK_ORDER = input.WorkOrder;
                            item.VAR_VALUE = queryable.ToList().Where(q => q.VAR_NAME == item.VAR_NAME).First()?.VAR_VALUE;
                        }
                    }
                    query.Items = lableVars.Skip((input.pageIndex - 1) * input.pageSize).Take(input.pageSize).ToList();
                    query.page.totals = lableVars.Count;
                    query.page.data = query.Items;
                }
                result.Data = query;
            }
            catch (Exception ex)