diff --git a/DOAN.Service/MES/process/ProcessmodelWorkStepService.cs b/DOAN.Service/MES/process/ProcessmodelWorkStepService.cs
index bf222d9..8a757bf 100644
--- a/DOAN.Service/MES/process/ProcessmodelWorkStepService.cs
+++ b/DOAN.Service/MES/process/ProcessmodelWorkStepService.cs
@@ -87,56 +87,47 @@ namespace DOAN.Service.Business
///
public PagedInfo GetUniqueValueList(UniqueDto parm)
{
- // 1. 初始化分页结果
- var pagedResult = new PagedInfo
- {
- PageIndex = parm.PageNum < 1 ? 1 : parm.PageNum, // 页码最小为1
- PageSize = parm.PageSize < 1 || parm.PageSize > 100 ? 10 : parm.PageSize // 每页条数限制1-100
- };
+ // 1. 构建查询条件
+ var predicate = Expressionable.Create()
+ .AndIF(!string.IsNullOrEmpty(parm.StepCode), p => p.StepCode == parm.StepCode)
+ .AndIF(!string.IsNullOrEmpty(parm.DeviceCode), p => p.UniqueValue.Contains(parm.DeviceCode))
+ .ToExpression();
- // 2. 校验 StepCode 是否存在(不存在返回空分页)
- bool stepCodeExists = Context.Queryable()
- .Where(p => p.StepCode == parm.StepCode)
- .Any();
+ // 2. 查询总记录数
+ int totalCount = Queryable()
+ .Where(predicate)
+ .Count();
- if (!stepCodeExists)
- {
- pagedResult.TotalNum = 0;
- pagedResult.Result = new List();
- return pagedResult;
- }
-
- // 3. 构建查询
- var baseQuery = Context.Queryable()
- .Where(p => p.StepCode == parm.StepCode)
- .Distinct()
- .LeftJoin((ws, da) => ws.UniqueValue == da.DeviceCode)
- .Where((ws, da) => da != null)
- .WhereIF(!string.IsNullOrEmpty(parm.DeviceCode), (ws, da) => da.DeviceCode.Contains(parm.DeviceCode))
- .WhereIF(!string.IsNullOrEmpty(parm.DeviceName), (ws, da) => da.DeviceName.Contains(parm.DeviceName))
- .Select((ws, da) => new UniqueValueQueryDto
+ // 3. 查询当前页数据列表
+ int skipCount = (parm.PageNum - 1) * parm.PageSize;
+ var dataList = Queryable()
+ .Where(predicate)
+ .Distinct()
+ .LeftJoin((w, a) => w.UniqueValue == a.DeviceCode)
+ .Select((w, a) => new UniqueValueQueryDto
{
- Id = ws.Id,
- DeviceCode = ws.UniqueValue,
- DeviceName = da.DeviceName,
- Workshop = da.Workshop,
- Workline = da.Workline,
- Status = da.Status,
- DeviceSpecification = da.DeviceSpecification,
- ResponsiblePerson = da.ResponsiblePerson
- });
-
- // 4. 查询总记录数
- pagedResult.TotalNum = baseQuery.Count();
-
- // 5. 分页查询数据
- int skipCount = (pagedResult.PageIndex - 1) * pagedResult.PageSize;
- pagedResult.Result = baseQuery
- .Skip(skipCount)
- .Take(pagedResult.PageSize)
+ Id = w.Id,
+ DeviceCode = w.UniqueValue,
+ DeviceName = a.DeviceName,
+ Workshop = a.Workshop,
+ Workline = a.Workline,
+ Status = a.Status,
+ DeviceSpecification = a.DeviceSpecification,
+ ResponsiblePerson = a.ResponsiblePerson
+ })
+ .Skip(skipCount)
+ .Take(parm.PageSize)
.ToList();
- return pagedResult;
+ // 4. 封装分页结果
+ return new PagedInfo
+ {
+ PageIndex = parm.PageNum,
+ PageSize = parm.PageSize,
+ TotalNum = totalCount,
+ Result = dataList,
+ TotalPage = totalCount > 0 ? (totalCount + parm.PageSize - 1) / parm.PageSize : 0
+ };
}
public List GetAccountList()