| | |
| | | return qsItemOqcItems; |
| | | } |
| | | |
| | | private void ProcessQualityItem(ISqlSugarClient db, QsItemOqcItem item, decimal quantity) |
| | | private void ProcessQualityItem(ISqlSugarClient db, QsItemOqcItem item, |
| | | decimal quantity) |
| | | { |
| | | // 验证必要字段 |
| | | if (string.IsNullOrWhiteSpace(item.FcheckLevel) || string.IsNullOrWhiteSpace(item.QsCode)) |
| | | if (string.IsNullOrWhiteSpace(item.FcheckLevel) || |
| | | string.IsNullOrWhiteSpace(item.QsCode)) |
| | | { |
| | | item.LevelNum = 1; |
| | | item.FreQty = 0; |
| | |
| | | var levelField = GetLevelField(item.FcheckLevel); |
| | | |
| | | // 使用参数化查询防止SQL注入 |
| | | var sql = $"SELECT {levelField} FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID = A.ID " + |
| | | var sql = |
| | | $"SELECT {levelField} FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID = A.ID " + |
| | | $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND B.LOT_FROM <= @Quantity AND @Quantity <= B.LOT_TO"; |
| | | |
| | | var aqlResult = db.Ado.SqlQuerySingle<string>(sql, new { QsCode = item.QsCode, Quantity = quantity }); |
| | | var aqlResult = db.Ado.SqlQuerySingle<string>(sql, |
| | | new { QsCode = item.QsCode, Quantity = quantity }); |
| | | |
| | | if (string.IsNullOrWhiteSpace(aqlResult)) |
| | | { |
| | |
| | | var facLevelValue = ExtractSubstring(item.FacLevel ?? "", '(', ')'); |
| | | if (string.IsNullOrWhiteSpace(facLevelValue)) |
| | | { |
| | | item.LevelNum = decimal.TryParse(aqlResult, out var level) ? level : 1; |
| | | item.LevelNum = |
| | | decimal.TryParse(aqlResult, out var level) ? level : 1; |
| | | item.FreQty = 0; |
| | | return; |
| | | } |
| | | |
| | | // 获取样本大小和结果 |
| | | var resultSql = $"SELECT FSAMPLE_SIZE_WORD, {facLevelValue} as Result FROM MES_QM_AQL1 A " + |
| | | var resultSql = |
| | | $"SELECT FSAMPLE_SIZE_WORD, {facLevelValue} as Result FROM MES_QM_AQL1 A " + |
| | | $"LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID = A.ID " + |
| | | $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND SAMPLE_SIZE_WORD = @LevelValue"; |
| | | |
| | |
| | | result = 1; |
| | | else if (count - passCount < QsItemOqcItem.FreQty) result = 1; |
| | | |
| | | var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle( |
| | | db => |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | commit += db.Updateable<QsItemOqcItem>() |
| | |
| | | } |
| | | |
| | | |
| | | public (List<QsItemOqcReq> items, int TotalCount) GetPage(XJPageResult queryObj) |
| | | public (List<QsItemOqcReq> items, int TotalCount) GetPage( |
| | | XJPageResult queryObj) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var totalCount = 0; |
| | | |
| | | |
| | | var query = db.Queryable<QsItemOqcReq, MesItems, Womdaa,MesLine,SysUser>((a, b, da,c,us) => |
| | | var query = db |
| | | .Queryable<QsItemOqcReq, MesItems, Womdaa, MesLine, SysUser>((a, b, |
| | | da, c, us) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.ItemNo == b.ItemNo, // 关联物料信息 |
| | | JoinType.Left, a.BillNo == da.Daa001, // 关联工单信息 |
| | |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.id), |
| | | (a, b, da,c,us) => a.Id.ToString() == queryObj.id) |
| | | // 完成状态过滤 |
| | | .WhereIF("未完成".Equals(queryObj.result), (a, b, da,c,us) => a.FcheckResu == null) |
| | | .WhereIF(!"未完成".Equals(queryObj.result), (a, b, da,c,us) => a.FcheckResu != null) |
| | | .WhereIF("未完成".Equals(queryObj.result), |
| | | (a, b, da, c, us) => a.Fsubmit == null || a.Fsubmit == 0) |
| | | .WhereIF(!"未完成".Equals(queryObj.result), |
| | | (a, b, da, c, us) => a.Fsubmit == 1) |
| | | // 搜索条件(物料名称/编号) |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue), |
| | | (a, b, da,c,us) => b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) || |
| | | (a, b, da, c, us) => |
| | | b.ItemName.ToLower() |
| | | .Contains(queryObj.SearchValue.ToLower()) || |
| | | a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower())) |
| | | // 查询字段 |
| | | .Select((a, b, da,c,us) => new QsItemOqcReq |
| | |
| | | .OrderBy(a => a.CreateDate, OrderByType.Desc); |
| | | |
| | | // 分页查询 |
| | | var result = query.ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | var result = query.ToPageList(queryObj.PageIndex, queryObj.Limit, |
| | | ref totalCount); |
| | | |
| | | return (result, totalCount); |
| | | } |
| | |
| | | // 4. 获取需要处理的检验项目(只查询必要字段提升性能) |
| | | var processItems = db.Queryable<QsItemOqcItem>() |
| | | .Where(s => s.Pid == rkjDto.gid && |
| | | s.MaxValue == null && s.StandardValue == null && s.MinValue == null) |
| | | s.MaxValue == null && s.StandardValue == null && |
| | | s.MinValue == null) |
| | | .Select(s => new { s.Id, s.LevelNum }) |
| | | .ToList(); |
| | | |
| | |
| | | }); |
| | | } |
| | | |
| | | private int UpdateMainInspectionStatus(ISqlSugarClient db, decimal? gid, string userNo) |
| | | private int UpdateMainInspectionStatus(ISqlSugarClient db, decimal? gid, |
| | | string userNo) |
| | | { |
| | | // 检查是否还有未完成的检验项目 |
| | | var unfinishedCount = db.Queryable<QsItemOqcItem>() |
| | |
| | | return updateResult; |
| | | } |
| | | |
| | | private void GenerateQualityIssueRecord(ISqlSugarClient db, decimal? gid, string userNo) |
| | | private void GenerateQualityIssueRecord(ISqlSugarClient db, decimal? gid, |
| | | string userNo) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | public int IqcQaSubmit(RKJDto dto) |
| | | { |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcReq>() |
| | | .SetColumns(a => a.Fsubmit == 1) |
| | | .SetColumns(a => a.FsubmitBy == dto.userNo) |
| | | .SetColumns(a => a.FsubmitDate == DateTime.Now) |
| | | .Where(a => a.ReleaseNo == dto.releaseNo) |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | // 备份:原始版本的saveItem方法 |
| | | public int saveItemOriginal(RKJDto rkjDto) |
| | | { |