| | |
| | | if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser)) |
| | | lineNo = _baseService.getUserLineNo(queryObj.StatusUser); |
| | | |
| | | var query = db.Queryable<SJPageResult>() |
| | | .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | a => lineNo.Contains(a.line)) |
| | | .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id) |
| | | .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo), |
| | | a => a.BillNo == queryObj.BillNo) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | "未完成".Equals(queryObj.Result), |
| | | a => a.Fsubmit == 0) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | !"未完成".Equals(queryObj.Result), |
| | | a => a.Fsubmit == 1); |
| | | |
| | | // 新增的动态搜索逻辑 |
| | | if (!string.IsNullOrEmpty(queryObj.SearchValue) && !string.IsNullOrEmpty(queryObj.searchField)) |
| | | // 如果有车间或线体筛选,需要联接 MES_LINE 表 |
| | | if (!string.IsNullOrEmpty(queryObj.departmentId) || !string.IsNullOrEmpty(queryObj.lineId)) |
| | | { |
| | | switch (queryObj.searchField) |
| | | var query = db.Queryable<SJPageResult, MesLine>((a, m) => |
| | | new JoinQueryInfos(JoinType.Left, a.line == m.LineNo)) |
| | | .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | (a, m) => lineNo.Contains(a.line)) |
| | | .WhereIF(queryObj.Id != null, (a, m) => a.Id == queryObj.Id) |
| | | .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo), |
| | | (a, m) => a.BillNo == queryObj.BillNo) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | "未完成".Equals(queryObj.Result), |
| | | (a, m) => a.Fsubmit == 0) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | !"未完成".Equals(queryObj.Result), |
| | | (a, m) => a.Fsubmit == 1) |
| | | // 添加车间筛选 |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.departmentId), |
| | | (a, m) => m.DepotId.ToString() == queryObj.departmentId) |
| | | // 添加线体筛选 |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.lineId), |
| | | (a, m) => m.LineNo == queryObj.lineId); |
| | | |
| | | // 添加搜索条件 |
| | | if (!string.IsNullOrEmpty(queryObj.SearchValue) && !string.IsNullOrEmpty(queryObj.searchField)) |
| | | { |
| | | case "daa001": // 工单 |
| | | query = query.Where(x => x.daa001.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "billNo": // 检验单号 |
| | | query = query.Where(x => x.BillNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "line": // 产线 |
| | | query = query.Where(x => x.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "itemNo": // 物料编码 |
| | | query = query.Where(x => x.ItemNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "daa003": // 物料名称 |
| | | query = query.Where(x => x.Daa003.Contains(queryObj.SearchValue)); |
| | | break; |
| | | default: |
| | | // 如果没有指定字段或字段不匹配,使用原有的模糊查询逻辑作为兜底方案 |
| | | query = query.Where(x => |
| | | x.ItemNo.Contains(queryObj.SearchValue) || |
| | | x.Daa003.Contains(queryObj.SearchValue) || |
| | | x.daa001.Contains(queryObj.SearchValue) || |
| | | x.BillNo.Contains(queryObj.SearchValue) || |
| | | x.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | switch (queryObj.searchField) |
| | | { |
| | | case "daa001": // 工单 |
| | | query = query.Where((a, m) => a.daa001.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "billNo": // 检验单号 |
| | | query = query.Where((a, m) => a.BillNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "line": // 产线 |
| | | query = query.Where((a, m) => a.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "itemNo": // 物料编码 |
| | | query = query.Where((a, m) => a.ItemNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "daa003": // 物料名称 |
| | | query = query.Where((a, m) => a.Daa003.Contains(queryObj.SearchValue)); |
| | | break; |
| | | default: |
| | | query = query.Where((a, m) => |
| | | a.ItemNo.Contains(queryObj.SearchValue) || |
| | | a.Daa003.Contains(queryObj.SearchValue) || |
| | | a.daa001.Contains(queryObj.SearchValue) || |
| | | a.BillNo.Contains(queryObj.SearchValue) || |
| | | a.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | } |
| | | } |
| | | else if (string.IsNullOrEmpty(queryObj.searchField) && !string.IsNullOrEmpty(queryObj.SearchValue)) |
| | | { |
| | | query = query.Where((a, m) => |
| | | a.ItemNo.Contains(queryObj.SearchValue) || |
| | | a.Daa003.Contains(queryObj.SearchValue) || |
| | | a.daa001.Contains(queryObj.SearchValue) || |
| | | a.BillNo.Contains(queryObj.SearchValue) || |
| | | a.line.Contains(queryObj.SearchValue)); |
| | | } |
| | | |
| | | var totalCount = 0; |
| | | var data = query.OrderBy((a, m) => a.BillNo, OrderByType.Desc) |
| | | .Select((a, m) => a) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | return (data, totalCount); |
| | | } |
| | | // 为了兼容旧版本,如果没有传递 searchField,使用原来的查询逻辑 |
| | | else if (string.IsNullOrEmpty(queryObj.searchField) && !string.IsNullOrEmpty(queryObj.SearchValue)) |
| | | else |
| | | { |
| | | // 保持原有的多字段模糊查询逻辑 |
| | | query = query.Where(x => |
| | | x.ItemNo.Contains(queryObj.SearchValue) || |
| | | x.Daa003.Contains(queryObj.SearchValue) || |
| | | x.daa001.Contains(queryObj.SearchValue) || |
| | | x.BillNo.Contains(queryObj.SearchValue) || |
| | | x.line.Contains(queryObj.SearchValue)); |
| | | // 没有车间和线体筛选时,使用原来的查询逻辑 |
| | | var query = db.Queryable<SJPageResult>() |
| | | .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | a => lineNo.Contains(a.line)) |
| | | .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id) |
| | | .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo), |
| | | a => a.BillNo == queryObj.BillNo) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | "未完成".Equals(queryObj.Result), |
| | | a => a.Fsubmit == 0) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.Result) && |
| | | !"未完成".Equals(queryObj.Result), |
| | | a => a.Fsubmit == 1); |
| | | |
| | | // 新增的动态搜索逻辑 |
| | | if (!string.IsNullOrEmpty(queryObj.SearchValue) && !string.IsNullOrEmpty(queryObj.searchField)) |
| | | { |
| | | switch (queryObj.searchField) |
| | | { |
| | | case "daa001": // 工单 |
| | | query = query.Where(x => x.daa001.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "billNo": // 检验单号 |
| | | query = query.Where(x => x.BillNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "line": // 产线 |
| | | query = query.Where(x => x.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "itemNo": // 物料编码 |
| | | query = query.Where(x => x.ItemNo.Contains(queryObj.SearchValue)); |
| | | break; |
| | | case "daa003": // 物料名称 |
| | | query = query.Where(x => x.Daa003.Contains(queryObj.SearchValue)); |
| | | break; |
| | | default: |
| | | // 如果没有指定字段或字段不匹配,使用原有的模糊查询逻辑作为兜底方案 |
| | | query = query.Where(x => |
| | | x.ItemNo.Contains(queryObj.SearchValue) || |
| | | x.Daa003.Contains(queryObj.SearchValue) || |
| | | x.daa001.Contains(queryObj.SearchValue) || |
| | | x.BillNo.Contains(queryObj.SearchValue) || |
| | | x.line.Contains(queryObj.SearchValue)); |
| | | break; |
| | | } |
| | | } |
| | | // 为了兼容旧版本,如果没有传递 searchField,使用原来的查询逻辑 |
| | | else if (string.IsNullOrEmpty(queryObj.searchField) && !string.IsNullOrEmpty(queryObj.SearchValue)) |
| | | { |
| | | // 保持原有的多字段模糊查询逻辑 |
| | | query = query.Where(x => |
| | | x.ItemNo.Contains(queryObj.SearchValue) || |
| | | x.Daa003.Contains(queryObj.SearchValue) || |
| | | x.daa001.Contains(queryObj.SearchValue) || |
| | | x.BillNo.Contains(queryObj.SearchValue) || |
| | | x.line.Contains(queryObj.SearchValue)); |
| | | } |
| | | |
| | | var totalCount = 0; |
| | | var data = query.OrderBy(a => a.BillNo, OrderByType.Desc) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | return (data, totalCount); |
| | | } |
| | | |
| | | var totalCount = 0; |
| | | var data = query.OrderBy(a => a.BillNo, OrderByType.Desc) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | return (data, totalCount); |
| | | } |
| | | |
| | | |
| | |
| | | Mnum = b.Mnum, // 从主表获取MNUM |
| | | Dnum = b.Dnum, // 从子表获取DNUM |
| | | Snum = a.Snum, // 送检批数 |
| | | Remarks = a.Remarks |
| | | Remarks = a.Remarks, |
| | | Forder = a.Forder // 顺序字段 |
| | | }).ToList(); |
| | | |
| | | var array = qsItemIpiItems.Select(s => s.Id).ToArray(); |
| | |
| | | qsItemIpiItem.imageData = Convert.ToBase64String(s.Picture); |
| | | }); |
| | | |
| | | //排序,未完成的排在前面 |
| | | qsItemIpiItems = qsItemIpiItems.OrderBy(s => s.isCheck).ToList(); |
| | | //排序:只按FORDER顺序排序 |
| | | qsItemIpiItems = qsItemIpiItems |
| | | .OrderBy(s => s.Forder ?? 0) |
| | | .ToList(); |
| | | |
| | | // 为每个检验项目生成穴号信息 |
| | | qsItemIpiItems.ForEach(item => |
| | |
| | | new("P_ID", id, System.Data.DbType.Decimal, ParameterDirection.Input), |
| | | new("P_NO", no, System.Data.DbType.String, ParameterDirection.Input), |
| | | new("P_USER", user, System.Data.DbType.String, ParameterDirection.Input), |
| | | new("P_MNUM", mnum ?? 1, System.Data.DbType.Decimal, ParameterDirection.Input), |
| | | new("P_DNUM", dnum ?? "", System.Data.DbType.String, ParameterDirection.Input), |
| | | new("P_MNUM", mnum, System.Data.DbType.Decimal, ParameterDirection.Input), |
| | | new("P_DNUM", dnum, System.Data.DbType.String, ParameterDirection.Input), |
| | | outputResult, |
| | | outputMessage |
| | | }; |