| | |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | |
| | | namespace MES.Service.service.QC; |
| | | |
| | |
| | | statusArray.Contains(a.Daa018)) |
| | | .GroupBy((a, b) => new |
| | | { |
| | | b.LineNo, b.LineName |
| | | b.LineNo, |
| | | b.LineName |
| | | }) |
| | | .Select((a, b) => new MesLine |
| | | { |
| | |
| | | }).ToList(); |
| | | } |
| | | |
| | | public List<QsQaItemXj> getPage(XJPageResult queryObj) |
| | | //public (List<QsQaItemXj> item, int TotalCount) getPage(XJPageResult queryObj) |
| | | //{ |
| | | // var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // var id = Convert.ToDecimal(queryObj.id); |
| | | |
| | | // var totalCount = 0; |
| | | |
| | | // string[]? lineNo = null; |
| | | |
| | | // // if (StringUtil.IsNotNullOrEmpty(queryObj.createUser)) |
| | | // // lineNo = _baseService.getUserLineNo(queryObj.createUser); |
| | | |
| | | // var pageList = db |
| | | // .Queryable<QsQaItemXj, Womdaa, |
| | | // MesItems>((s, a, b) => |
| | | // new JoinQueryInfos( |
| | | // JoinType.Inner, s.BillNo == a.Daa001, |
| | | // JoinType.Left, s.ItemId == b.Id |
| | | // ) |
| | | // ) |
| | | |
| | | // .WhereIF( |
| | | // StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | // "未完成".Equals(queryObj.result), |
| | | // (s, a, b) => s.Fsubmit == null || s.Fsubmit == 0) |
| | | // // .WhereIF( |
| | | // // StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | // // !"未完成".Equals(queryObj.result), |
| | | // // (s, a, b) => s.FcheckResu != null) |
| | | // .WhereIF( |
| | | // StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | // !"未完成".Equals(queryObj.result), |
| | | // (s, a, b) => s.Fsubmit == 1) |
| | | // .WhereIF(id > 0, (s, a, b) => s.Id == id) |
| | | // .Select((s, a, b) => new QsQaItemXj |
| | | // { |
| | | // Id = s.Id, |
| | | // PlanQty = a.Daa008, |
| | | // CreateBy = s.CreateBy, |
| | | // CreateDate = s.CreateDate, |
| | | // ReleaseNo = s.ReleaseNo, |
| | | // ItemNo = s.ItemNo, |
| | | // BillNo = s.BillNo, |
| | | // ItemName = b.ItemName, |
| | | // ItemModel = b.ItemModel, |
| | | // FcheckBy = s.FcheckBy, |
| | | // FcheckResu = s.FcheckResu, |
| | | // Remarks = s.Remarks, |
| | | // Fsubmit = s.Fsubmit, |
| | | // FcheckDate = s.FcheckDate, |
| | | // FsubmitBy = s.FsubmitBy |
| | | // }).OrderBy(s => s.CreateDate, OrderByType.Desc) |
| | | // .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | // return (pageList, totalCount); |
| | | //} |
| | | |
| | | public (List<QsQaItemXj> item, int TotalCount) getPage(XJPageResult queryObj) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var id = Convert.ToDecimal(queryObj.id); |
| | | var totalCount = 0; |
| | | |
| | | string[]? lineNo = null; |
| | | |
| | | if (StringUtil.IsNotNullOrEmpty(queryObj.createUser)) |
| | | lineNo = _baseService.getUserLineNo(queryObj.createUser); |
| | | |
| | | return db |
| | | .Queryable<QsQaItemXj, Womdaa, MesLine, |
| | | MesItems>((s, a, c, b) => |
| | | var pageList = db |
| | | .Queryable<QsQaItemXj, Womdaa, MesItems>((s, a, b) => |
| | | new JoinQueryInfos( |
| | | JoinType.Inner, s.BillNo == a.Daa001, |
| | | JoinType.Left, a.Daa015 == c.LineNo, |
| | | JoinType.Left, s.ItemId == b.Id |
| | | ) |
| | | ) |
| | | .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | (s, a, c, b) => lineNo.Contains(c.LineNo)) |
| | | |
| | | // ⭐ 模糊搜索(BillNo 或 ItemNo 新增 |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.SearchValue), |
| | | (s, a, b) => |
| | | s.BillNo.Contains(queryObj.SearchValue) || |
| | | s.ItemNo.Contains(queryObj.SearchValue) |
| | | ) |
| | | |
| | | // ⭐ 状态筛选:未完成 |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | "未完成".Equals(queryObj.result), |
| | | (s, a, c, b) => s.FcheckResu == null) |
| | | (s, a, b) => s.Fsubmit == null || s.Fsubmit == 0 |
| | | ) |
| | | |
| | | // ⭐ 状态筛选:已完成 |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | !"未完成".Equals(queryObj.result), |
| | | (s, a, c, b) => s.FcheckResu != null) |
| | | .WhereIF(id > 0, (s, a, c, b) => s.Id == id) |
| | | .Select((s, a, c, b) => new QsQaItemXj |
| | | (s, a, b) => s.Fsubmit == 1 |
| | | ) |
| | | |
| | | // ⭐ ID 查询(单条) |
| | | .WhereIF(id > 0, (s, a, b) => s.Id == id) |
| | | |
| | | // ⭐ select 实体返回 |
| | | .Select((s, a, b) => new QsQaItemXj |
| | | { |
| | | Daa020 = c.LineNo, |
| | | Id = s.Id, |
| | | PlanQty = a.Daa008, |
| | | ReleaseNo = s.ReleaseNo, |
| | | FcheckDate = s.FcheckDate, |
| | | FcheckBy = s.FcheckBy, |
| | | ItemNo = s.ItemNo, |
| | | FcheckResu = s.FcheckResu, |
| | | CreateBy = s.CreateBy, |
| | | CreateDate = s.CreateDate, |
| | | ReleaseNo = s.ReleaseNo, |
| | | ItemNo = s.ItemNo, |
| | | LastupdateBy = s.LastupdateBy, |
| | | LastupdateDate = s.LastupdateDate, |
| | | Modify1By = s.Modify1By, |
| | | ItemUnit = s.ItemUnit, |
| | | BillNo = s.BillNo, |
| | | MoidNum = s.MoidNum, |
| | | FsubmitBy = s.FsubmitBy, |
| | | FsubmitDate = s.FsubmitDate, |
| | | Fsubmit = s.Fsubmit, |
| | | Remarks = s.Remarks, |
| | | ItemId = s.ItemId, |
| | | |
| | | // ⭐ 额外字段(来自连表) |
| | | PlanQty = a.Daa008, |
| | | ItemName = b.ItemName, |
| | | ItemModel = b.ItemModel, |
| | | FcheckBy = s.FcheckBy, |
| | | FcheckResu = s.FcheckResu, |
| | | Remarks = s.Remarks |
| | | }).OrderBy(s => s.CreateDate, OrderByType.Desc) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit); |
| | | ItemModel = b.ItemModel |
| | | }) |
| | | |
| | | .OrderBy(s => s.CreateDate, OrderByType.Desc) |
| | | |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | return (pageList, totalCount); |
| | | } |
| | | |
| | | |
| | | public object CloseInspection(XJCloseInspectionDto dto) |
| | | { |
| | | try |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var sql = string.Format( |
| | | @"UPDATE QS_QA_ITEM_XJ |
| | | SET FSUBMIT = 1, |
| | | FCHECK_RESU = '手动关闭' |
| | | WHERE ID = '{0}'", |
| | | dto.id); |
| | | |
| | | db.Ado.ExecuteCommand(sql); |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = "关闭成功" |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public bool XJQaSubmit(LLJDto rkjDto) |
| | | { |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj>() |
| | | .SetColumns(s => s.Fsubmit == 1) |
| | | .SetColumns(s => s.FsubmitBy == rkjDto.userNo) |
| | | .SetColumns(s => s.FsubmitDate == DateTime.Now) |
| | | .Where(s => s.Id == rkjDto.gid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | return useTransactionWithOracle > 0; |
| | | } |
| | | |
| | | public List<QsQaItemXj01> setJYItem(string itemNo) |
| | | { |
| | |
| | | return db |
| | | .Queryable<MesQualityStandard>() |
| | | .Where(b => b.QsType == "2" |
| | | && b.ItemNo == itemNo).Select( |
| | | b => new QsQaItemXj01 |
| | | { |
| | | ProjName = b.ProjName, |
| | | ItemMod = b.ItemMod, |
| | | InspectionMethod = b.InspectionMethod, |
| | | UsingInstruments = b.UsingInstruments, |
| | | LevelNum = SqlFunc.IsNull( |
| | | SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1), |
| | | b.InspectionLevel), |
| | | MaxValue = b.MaxValue, |
| | | StandardValue = b.StandardValue, |
| | | MinValue = b.MinValue, |
| | | Notes = b.Notes, |
| | | FcheckLevel = b.FcheckLevel, |
| | | FacLevel = b.FacLevel, |
| | | QsCode = b.QsCode, |
| | | QsName = b.QsName, |
| | | result = "未检测", |
| | | isCheck = 0, |
| | | Picture = b.Picture, |
| | | Picturename = b.Picturename |
| | | }).ToList(); |
| | | && b.ItemNo == itemNo).Select(b => new QsQaItemXj01 |
| | | { |
| | | ProjName = b.ProjName, |
| | | ItemMod = b.ItemMod, |
| | | InspectionMethod = b.InspectionMethod, |
| | | UsingInstruments = b.UsingInstruments, |
| | | LevelNum = SqlFunc.IsNull( |
| | | SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1), |
| | | b.InspectionLevel), |
| | | MaxValue = b.MaxValue, |
| | | StandardValue = b.StandardValue, |
| | | MinValue = b.MinValue, |
| | | Notes = b.Notes, |
| | | FcheckLevel = b.FcheckLevel, |
| | | FacLevel = b.FacLevel, |
| | | QsCode = b.QsCode, |
| | | QsName = b.QsName, |
| | | result = "未检测", |
| | | isCheck = 0, |
| | | Picture = b.Picture, |
| | | Picturename = b.Picturename |
| | | }).ToList(); |
| | | } |
| | | |
| | | public List<QsQaItemXj01> getJYItem(decimal? pid, decimal? id) |
| | |
| | | return Convert.ToInt32(xj.Id); |
| | | } |
| | | |
| | | //public int saveItem(XJDto xjDto) |
| | | //{ |
| | | // var items = xjDto.items; |
| | | // var userNo = xjDto.userNo; |
| | | |
| | | // SqlSugarHelper.UseTransactionWithOracle(db => |
| | | // { |
| | | // foreach (var item in items) item.Pid = xjDto.gid; |
| | | |
| | | // return db.Insertable(items).ExecuteCommand(); |
| | | // }); |
| | | |
| | | // xjDto.items = getJYItem(xjDto.gid, null); |
| | | |
| | | // xjDto.items.ForEach(s => |
| | | // { |
| | | // if (s.MaxValue != null || s.StandardValue != null || |
| | | // s.MinValue != null) return; |
| | | // var detail = new QsQaItemXj02(); |
| | | // detail.Pid = s.Id; |
| | | // detail.Gid = xjDto.gid; |
| | | // detail.Fstand = "√"; |
| | | // detail.FcheckResu = "1"; |
| | | // detail.UpdateBy = xjDto.userNo; |
| | | // detail.count = (int?)s.LevelNum; |
| | | // SetQSItemDetail(detail); |
| | | // }); |
| | | |
| | | // return Convert.ToInt32(xjDto.gid); |
| | | //} |
| | | |
| | | public int saveItem(XJDto xjDto) |
| | | { |
| | | var items = xjDto.items; |
| | | var userNo = xjDto.userNo; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | // ✅ 使用 lambda 返回插入条数,保证 Func<SqlSugarClient, int> 每条路径都有返回值 |
| | | int insertCount = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | foreach (var item in items) item.Pid = xjDto.gid; |
| | | // 1️⃣ 检查表里是否存在相同 gid 的数据 |
| | | var existingCount = db.Queryable<QsQaItemXj01>() |
| | | .Count(s => s.Pid == xjDto.gid); |
| | | |
| | | // 2️⃣ 如果存在,则先删除 |
| | | if (existingCount > 0) |
| | | { |
| | | db.Deleteable<QsQaItemXj01>() |
| | | .Where(s => s.Pid == xjDto.gid) |
| | | .ExecuteCommand(); |
| | | } |
| | | |
| | | // 3️⃣ 给每条明细设置 Pid 并插入,返回插入条数 |
| | | foreach (var item in items) |
| | | { |
| | | item.Pid = xjDto.gid; |
| | | } |
| | | |
| | | return db.Insertable(items).ExecuteCommand(); |
| | | }); |
| | | |
| | | // 4️⃣ 重新获取插入后的明细 |
| | | xjDto.items = getJYItem(xjDto.gid, null); |
| | | |
| | | xjDto.items.ForEach(s => |
| | | // 5️⃣ 对没有 Max/Min/StandardValue 的明细生成默认检测结果 |
| | | foreach (var s in xjDto.items) |
| | | { |
| | | if (s.MaxValue != null || s.StandardValue != null || |
| | | s.MinValue != null) return; |
| | | var detail = new QsQaItemXj02(); |
| | | detail.Pid = s.Id; |
| | | detail.Gid = xjDto.gid; |
| | | detail.Fstand = "√"; |
| | | detail.FcheckResu = "1"; |
| | | detail.UpdateBy = xjDto.userNo; |
| | | detail.count = (int?)s.LevelNum; |
| | | SetQSItemDetail(detail); |
| | | }); |
| | | if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) |
| | | continue; |
| | | |
| | | return Convert.ToInt32(xjDto.gid); |
| | | var detail = new QsQaItemXj02 |
| | | { |
| | | Pid = s.Id, |
| | | Gid = xjDto.gid, |
| | | Fstand = "√", |
| | | FcheckResu = "1", |
| | | UpdateBy = xjDto.userNo, |
| | | count = (int?)s.LevelNum |
| | | }; |
| | | SetQSItemDetail(detail); |
| | | } |
| | | |
| | | // 6️⃣ 返回插入条数 |
| | | return insertCount; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public XJDto getXjDetail02ById(decimal? id) |
| | |
| | | |
| | | if (count == passCount) result = 1; |
| | | |
| | | var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle( |
| | | db => |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | commit += db.Updateable<QsQaItemXj01>() |
| | |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取首检单所有不良描述 |
| | | /// </summary> |
| | | /// <param name="id">检验单ID</param> |
| | | /// <returns>不良描述数据表</returns> |
| | | public DataTable getBlmsItem1(string id) |
| | | { |
| | | OracleSQLHelper SQLHelper = new(); |
| | | // 查询首检检验单的不良描述 |
| | | var sql1 = string.Format( |
| | | @"select PROJ_NAME, REMARKS |
| | | from QS_QA_ITEM_XJ01 f |
| | | where PID = '" + id + "' and REMARKS is not null order by PROJ_NAME"); |
| | | |
| | | return SQLHelper.ExecuteQuery(sql1); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取巡检检单所有不良描述 |
| | | /// </summary> |
| | | /// <param name="id">检验单ID</param> |
| | | /// <returns>不良描述数据表</returns> |
| | | public DataTable ggetBlmsItem1(string id) |
| | | { |
| | | OracleSQLHelper SQLHelper = new(); |
| | | // 查询首检检验单的不良描述 |
| | | var sql1 = string.Format( |
| | | @"select PROJ_NAME, REMARKS |
| | | from QS_QA_ITEM_XJ01 f |
| | | where PID = '" + id + "' and REMARKS is not null order by PROJ_NAME"); |
| | | |
| | | return SQLHelper.ExecuteQuery(sql1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //孙表修改备注字段 |
| | | public int saveRemarksById(XJDto dto) |
| | | { |
| | |
| | | .Where(it => it.Id == dto.id) |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |