| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.service; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | using System.Dynamic; |
| | | using DbType = System.Data.DbType; |
| | | |
| | | namespace MES.Service.service.QC; |
| | | |
| | | public class XJService |
| | | { |
| | | private static readonly OracleSQLHelper SQLHelper = new(); |
| | | |
| | | private readonly BaseService _baseService = new(); |
| | | |
| | | |
| | | private readonly string[] statusArray = ["å·²å¼å·¥", "å¾
å¼å·¥"]; |
| | | |
| | | //çæææ°çæ£éªåå· |
| | | public string getMaxReleaseNo() |
| | | { |
| | | var sql = |
| | | string.Format( |
| | | "select max(RELEASE_NO) from QS_QA_ITEM_XJ where RELEASE_NO like 'XJN%' and to_char(CREATE_DATE,'yyyy-mm-dd') = '{0}'", |
| | | DateTime.Now.ToString("yyyy-MM-dd")); |
| | | |
| | | var executeScalar = SQLHelper.ExecuteScalar(sql); |
| | | var date = DateTime.Now.ToString("yyMMdd"); |
| | | var number = "0001"; |
| | | var olReleaseNo = executeScalar.ToString(); |
| | | //夿ä»å¤©æ¯å¦çæäºå·¡æ£å |
| | | if (string.IsNullOrEmpty(olReleaseNo)) return "XJN" + date + number; |
| | | //æªåååä½çæµæ°´å·ç´¯å |
| | | var substring = Convert.ToInt32(olReleaseNo.Substring(10)); |
| | | substring += 1; |
| | | number = substring.ToString("D4"); |
| | | |
| | | //å¦æä¸ºç©ºç´æ¥è¿å0001 |
| | | return "XJN" + date + number; |
| | | } |
| | | |
| | | public List<Womdaa> getItem(string daa001) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | //inçåæ³ https://www.donet5.com/Home/Doc?typeId=1187 |
| | | |
| | | return db.Queryable<Womdaa>() |
| | | .Where(a => |
| | | a.Daa001 == daa001 && |
| | | statusArray.Contains(a.Daa018)) |
| | | .ToList(); |
| | | } |
| | | |
| | | public List<MesLine> getLineAll() |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | return db.Queryable<Womdaa, MesLine>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo)) |
| | | .Where((a, b) => b.LineName != null && |
| | | statusArray.Contains(a.Daa018)) |
| | | .GroupBy((a, b) => new |
| | | { |
| | | b.LineNo, |
| | | b.LineName |
| | | }) |
| | | .Select((a, b) => new MesLine |
| | | { |
| | | LineNo = b.LineNo, |
| | | LineName = b.LineName |
| | | }).OrderBy("b.LINE_NO").ToList(); |
| | | } |
| | | |
| | | public List<Womdaa> getDaa001(string daa020, string item) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<Womdaa, MesItems>((a, b) => |
| | | new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString())) |
| | | .Where((a, b) => |
| | | a.Daa015 == daa020 && |
| | | b.ItemNo == item && |
| | | statusArray.Contains(a.Daa018)) |
| | | .Select<Womdaa>(a => new Womdaa |
| | | { |
| | | Id = a.Id, |
| | | Daa001 = a.Daa001, |
| | | Daa003 = a.Daa003, |
| | | Daa008 = a.Daa008 |
| | | }).Distinct().ToList(); |
| | | } |
| | | |
| | | public List<MesItems> getBoardItem(string lineNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<Womdaa, MesItems>((a, b) => |
| | | new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString())) |
| | | .Where((a, b) => statusArray.Contains(a.Daa018) && |
| | | a.Daa015 == lineNo) |
| | | .OrderBy((a, b) => b.ItemName) |
| | | .Select<MesItems>((a, b) => |
| | | new MesItems |
| | | { |
| | | Id = b.Id, |
| | | ItemNo = b.ItemNo, |
| | | ItemName = b.ItemName, |
| | | ItemModel = b.ItemModel |
| | | }).Distinct().ToList(); |
| | | } |
| | | |
| | | //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; |
| | | |
| | | var pageList = db |
| | | .Queryable<QsQaItemXj, Womdaa, MesItems>((s, a, b) => |
| | | new JoinQueryInfos( |
| | | JoinType.Inner, s.BillNo == a.Daa001, |
| | | JoinType.Left, s.ItemId == b.Id |
| | | ) |
| | | ) |
| | | |
| | | // â æ¨¡ç³æç´¢ï¼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, b) => s.Fsubmit == null || s.Fsubmit == 0 |
| | | ) |
| | | |
| | | // â ç¶æçéï¼å·²å®æ |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | !"æªå®æ".Equals(queryObj.result), |
| | | (s, a, b) => s.Fsubmit == 1 |
| | | ) |
| | | |
| | | // â ID æ¥è¯¢ï¼åæ¡ï¼ |
| | | .WhereIF(id > 0, (s, a, b) => s.Id == id) |
| | | |
| | | // â select å®ä½è¿å |
| | | .Select((s, a, b) => new QsQaItemXj |
| | | { |
| | | Id = s.Id, |
| | | ReleaseNo = s.ReleaseNo, |
| | | FcheckDate = s.FcheckDate, |
| | | FcheckBy = s.FcheckBy, |
| | | ItemNo = s.ItemNo, |
| | | FcheckResu = s.FcheckResu, |
| | | CreateBy = s.CreateBy, |
| | | CreateDate = s.CreateDate, |
| | | 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 |
| | | }) |
| | | |
| | | .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,FSUBMIT1 = 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 ResponseResult XJQaSubmit(LLJDto rkjDto) |
| | | { |
| | | try |
| | | { |
| | | //------------------ ä¸åæ ¼å¾çæ¯å¦ä¸ä¼ æ ¡éª ------------------ |
| | | var sql2 = |
| | | @"select A.id, A.PROJ_NAME, B.id as id2 |
| | | from QS_QA_ITEM_XJ01 A |
| | | left join MES_QS_IMAGE B on 666 || A.ID = B.FID |
| | | where A.PID = '" + rkjDto.gid + @"' |
| | | and B.id is null |
| | | and IS_PASS = 0"; |
| | | |
| | | var dt2 = SQLHelper.ExecuteQuery(sql2); |
| | | if (dt2.Rows.Count > 0) |
| | | { |
| | | string err = ""; |
| | | for (int i = 0; i < dt2.Rows.Count; i++) |
| | | { |
| | | err += "ã" + dt2.Rows[i]["PROJ_NAME"].ToString() + "ã"; |
| | | } |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 1, |
| | | message = err + "ä¸åæ ¼å¾çæªä¸ä¼ ï¼", |
| | | data = "" |
| | | }; |
| | | } |
| | | //------------------ å¿
填项å¾çæ¯å¦ä¸ä¼ æ ¡éª ------------------ |
| | | var sql3 = |
| | | @"select A.id, A.PROJ_NAME, B.id as id2 |
| | | from QS_QA_ITEM_XJ01 A |
| | | left join MES_QS_IMAGE B on 666 || A.ID = B.FID |
| | | where A.PID = '" + rkjDto.gid + @"' |
| | | and B.id is null |
| | | and UP_FILE = 1"; |
| | | |
| | | var dt3 = SQLHelper.ExecuteQuery(sql3); |
| | | if (dt3.Rows.Count > 0) |
| | | { |
| | | string err = ""; |
| | | for (int i = 0; i < dt3.Rows.Count; i++) |
| | | { |
| | | err += "ã" + dt3.Rows[i]["PROJ_NAME"].ToString() + "ã"; |
| | | } |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 1, |
| | | message = err + "å¿
填项å¾çæªä¸ä¼ ï¼", |
| | | data = "" |
| | | }; |
| | | } |
| | | |
| | | //------------------ æ°å¢æ ¡éªï¼æ£æ¥æ¯å¦å卿ªå®æï¼IS_PASS is nullï¼ ------------------ |
| | | var sqlPass = |
| | | @"select ID, PROJ_NAME |
| | | from QS_QA_ITEM_XJ01 |
| | | where PID = '" + rkjDto.gid + @"' |
| | | and IS_PASS is null"; |
| | | |
| | | var dtPass = SQLHelper.ExecuteQuery(sqlPass); |
| | | if (dtPass.Rows.Count > 0) |
| | | { |
| | | string err = ""; |
| | | for (int i = 0; i < dtPass.Rows.Count; i++) |
| | | { |
| | | err += "ã" + dtPass.Rows[i]["PROJ_NAME"].ToString() + "ã"; |
| | | } |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 1, |
| | | message = "", |
| | | data = err + "é¡¹ç®æªå®æï¼ä¸å
许æäº¤æ£éªï¼" |
| | | }; |
| | | } |
| | | var sqlPass1 = |
| | | @"select FCHECK_RESU |
| | | from QS_QA_ITEM_XJ |
| | | where ID = '" + rkjDto.gid + "'"; |
| | | var dt = SQLHelper.ExecuteQuery(sqlPass1); |
| | | |
| | | |
| | | |
| | | |
| | | var sqlPass3 = $@"select ID from QS_QA_ITEM_XJ |
| | | WHERE ID = '{rkjDto.gid}' |
| | | "; |
| | | var dtPass3 = SQLHelper.ExecuteQuery(sqlPass3); |
| | | |
| | | var value4 = dtPass3.Rows[0][0]; |
| | | int sqlPass2 = Convert.ToInt32(value4); |
| | | |
| | | |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | var resu = dt.Rows[0]["FCHECK_RESU"]?.ToString(); |
| | | |
| | | var fsubmit1 = resu == "åæ ¼" ? 1 : 0; |
| | | |
| | | var sqlUpdate = |
| | | @"update QS_QA_ITEM_XJ |
| | | set FSUBMIT1 = " + fsubmit1 + @" |
| | | where ID = '" + rkjDto.gid + "'"; |
| | | SQLHelper.ExecuteNonQuery(sqlUpdate); |
| | | } |
| | | |
| | | var resu1 = dt.Rows[0]["FCHECK_RESU"]?.ToString(); |
| | | |
| | | var fsubmit2 = resu1 == "åæ ¼" ? 1 : 0; |
| | | |
| | | |
| | | if (fsubmit2 == 0) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // ===== è¾åºåæ° ===== |
| | | var outFlag = new SugarParameter("P_FLAG", null, |
| | | DbType.Int32, ParameterDirection.Output, 10); |
| | | |
| | | var outText = new SugarParameter("P_TEXT", null, |
| | | DbType.String, ParameterDirection.Output, 4000); |
| | | |
| | | // ===== è¾å
¥åæ° ===== |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new SugarParameter("P_ID", sqlPass2, DbType.Int64, ParameterDirection.Input), |
| | | new SugarParameter("P_USER", rkjDto.userNo, DbType.String, ParameterDirection.Input), |
| | | new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input), |
| | | new SugarParameter("P_RELEASE_NO",rkjDto.releaseNo,DbType.String,ParameterDirection.Input), |
| | | |
| | | // è¾åºåæ°å¿
é¡»å¸¦ä¸ |
| | | outFlag, |
| | | outText |
| | | }; |
| | | // ===== æ§è¡åå¨è¿ç¨ ===== |
| | | db.Ado.ExecuteCommand( |
| | | "BEGIN PRC_XJ_GENERATE_two(:P_ID, :P_USER, :P_ISH,:P_RELEASE_NO, :P_FLAG, :P_TEXT); END;", |
| | | parameters); |
| | | |
| | | // ===== 读åè¾åºåæ°å¹¶è½¬æ¢æ ResponseResult ===== |
| | | var result = new ResponseResult |
| | | { |
| | | status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 表示æåï¼1 表示失败 |
| | | message = outText.Value?.ToString() |
| | | }; |
| | | |
| | | var useTransactionWithOracle1 = |
| | | 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 new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "æäº¤æå", |
| | | data = useTransactionWithOracle1 |
| | | }; |
| | | } |
| | | |
| | | |
| | | 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 new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "æäº¤æå", |
| | | data = useTransactionWithOracle |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //public List<QsQaItemXj01> setJYItem(string itemNo,string releaseNo) |
| | | //{ |
| | | // var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // var count = db.Queryable<MesQa>().Where(s => s.QsType == "2" |
| | | // && s.ItemNo == itemNo && s.Fsubmit == 1).Count(); |
| | | |
| | | // if (count <= 0) return new List<QsQaItemXj01>(); |
| | | |
| | | // 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(); |
| | | //} |
| | | |
| | | |
| | | |
| | | public List<QsQaItemXj01> setJYItem(string itemNo, string releaseNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var count = db.Queryable<MesQa>().Where(s => s.QsType == "2" |
| | | && s.ItemNo == itemNo && s.Fsubmit == 1).Count(); |
| | | |
| | | if (count <= 0) return new List<QsQaItemXj01>(); |
| | | |
| | | // æ ¹æ®å·¡æ£åå·åç©æç¼ç è·åPROCESS_LIST |
| | | var processListQuery = db.Queryable<QsQaItemXj>() |
| | | .Where(xj => xj.ReleaseNo == releaseNo && xj.ItemNo == itemNo) |
| | | .Select(xj => xj.PROCESS_LIST) |
| | | .ToList(); |
| | | |
| | | // å¦ææ²¡ææ¾å°å¯¹åºçPROCESS_LIST,è¿å空å表 |
| | | if (processListQuery == null || processListQuery.Count == 0) |
| | | { |
| | | return new List<QsQaItemXj01>(); |
| | | } |
| | | |
| | | return db |
| | | .Queryable<MesQualityStandard>() |
| | | .Where(b => b.QsType == "2" |
| | | && b.ItemNo == itemNo |
| | | && processListQuery.Contains(b.PROCESS)) // è¿æ»¤æ¡ä»¶ |
| | | .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, |
| | | UP_FILE = b.UP_FILE |
| | | }).ToList(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public List<QsQaItemXj01> getJYItem(decimal? pid, decimal? id) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var qsQaItemXj01s = db.Queryable<QsQaItemXj01>() |
| | | .WhereIF(pid > 0, a => a.Pid == pid) |
| | | .WhereIF(id > 0, a => a.Id == id) |
| | | .ToList(); |
| | | |
| | | var array = qsQaItemXj01s.Select(s => s.Id).ToArray(); |
| | | var qsQaItemDetails = db.Queryable<QsQaItemXj02>() |
| | | .Where(s => array.Contains(s.Pid)) |
| | | .GroupBy(s => s.Pid) |
| | | .Select(s => new |
| | | { |
| | | s.Pid, |
| | | count = SqlFunc.AggregateCount(s.Id) |
| | | }).ToList(); |
| | | |
| | | qsQaItemXj01s.ForEach(s => |
| | | { |
| | | var find = qsQaItemDetails.Find(a => s.Id == a.Pid); |
| | | if (find == null) |
| | | { |
| | | s.isCheck = 0; |
| | | s.result = "æªå®æ"; |
| | | } |
| | | else |
| | | { |
| | | s.isCheck = find.count; |
| | | if (find.count == s.LevelNum && s.IsPass == 1) |
| | | s.result = "åæ ¼"; |
| | | else if (find.count == s.LevelNum && s.IsPass == 0) |
| | | s.result = "ä¸åæ ¼"; |
| | | else |
| | | s.result = "æªå®æ"; |
| | | } |
| | | |
| | | //è¿æ»¤åºå¾çidä¸ä¸ºç©ºçæ°æ®è½¬ä¸ºbase64 |
| | | if (s.Picture is { Length: > 0 }) |
| | | s.imageData = Convert.ToBase64String(s.Picture); |
| | | }); |
| | | |
| | | //æåºï¼æªå®æçæå¨åé¢ |
| | | qsQaItemXj01s = qsQaItemXj01s.OrderBy(s => s.isCheck).ToList(); |
| | | |
| | | return qsQaItemXj01s; |
| | | } |
| | | |
| | | |
| | | public int save(XJDto xjDto) |
| | | { |
| | | var xj = xjDto.from; |
| | | var items = xjDto.items; |
| | | var userNo = xjDto.userNo; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | |
| | | xj.CreateBy = userNo; |
| | | xj.CreateDate = DateTime.Now; |
| | | |
| | | var pid = db.Insertable(xj).ExecuteReturnIdentity(); |
| | | |
| | | xj.Id = pid; |
| | | |
| | | xjDto.gid = pid; |
| | | |
| | | foreach (var item in items) item.Pid = pid; |
| | | |
| | | commit += db.Insertable(items).ExecuteCommand(); |
| | | |
| | | return commit; |
| | | }); |
| | | |
| | | xjDto.items = getJYItem(xj.Id, 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(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; |
| | | |
| | | |
| | | int insertCount = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | // 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); |
| | | |
| | | // 5ï¸â£ 对没æ Max/Min/StandardValue çæç»çæé»è®¤æ£æµç»æ |
| | | foreach (var s in xjDto.items) |
| | | { |
| | | if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) |
| | | continue; |
| | | |
| | | 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) |
| | | { |
| | | var xjDto = new XJDto(); |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var qsQaItemXj01 = |
| | | db.Queryable<QsQaItemXj01>().Single(s => s.Id == id); |
| | | |
| | | if (qsQaItemXj01.IsPass == 0) |
| | | qsQaItemXj01.result = "ä¸åæ ¼"; |
| | | else if (qsQaItemXj01.IsPass == 1) |
| | | qsQaItemXj01.result = "åæ ¼"; |
| | | else |
| | | qsQaItemXj01.result = "æªå®æ"; |
| | | |
| | | if (qsQaItemXj01.Picture is { Length: > 0 }) |
| | | qsQaItemXj01.imageData = |
| | | Convert.ToBase64String(qsQaItemXj01.Picture); |
| | | |
| | | xjDto.ItemXj01 = qsQaItemXj01; |
| | | |
| | | |
| | | xjDto.ItemXj02s = db.Queryable<QsQaItemXj02>().Where(s => s.Pid == id) |
| | | .ToList(); |
| | | |
| | | return xjDto; |
| | | } |
| | | |
| | | public int SetQSItemDetail(QsQaItemXj02 detail) |
| | | { |
| | | var oracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | List<QsQaItemXj02> result = new(); |
| | | for (var i = 0; i < detail.count; i++) |
| | | { |
| | | var item = new QsQaItemXj02(); |
| | | item.Gid = detail.Gid; |
| | | item.Pid = detail.Pid; |
| | | item.Fstand = detail.Fstand; |
| | | item.FcheckResu = detail.FcheckResu; |
| | | item.CreateBy = detail.UpdateBy; |
| | | item.CreateDate = DateTime.Now; |
| | | result.Add(item); |
| | | } |
| | | |
| | | return db.Insertable(result).ExecuteCommand(); |
| | | }); |
| | | |
| | | detail.CreateBy = detail.UpdateBy; |
| | | |
| | | autoResult(detail); |
| | | |
| | | return oracle; |
| | | } |
| | | |
| | | private int autoResult(QsQaItemXj02 detail) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // Single æ²¡ææ¥è¯¢å°ç»ææ¶è¿åNullï¼å¦æç»æå¤§äº1æ¡ä¼æåºé误 |
| | | var QsQaItemXj01 = db.Queryable<QsQaItemXj01>() |
| | | .Single(s => s.Id == detail.Pid); |
| | | |
| | | if (QsQaItemXj01 == null) return 0; |
| | | |
| | | var count = db.Queryable<QsQaItemXj02>() |
| | | .Where(s => s.Pid == detail.Pid).Count(); |
| | | |
| | | |
| | | var result = 0; |
| | | |
| | | if (QsQaItemXj01.LevelNum != count) return 0; |
| | | |
| | | var passCount = db.Queryable<QsQaItemXj02>() |
| | | .Where(s => s.Pid == detail.Pid && s.Fstand == "â").Count(); |
| | | |
| | | if (count == passCount) result = 1; |
| | | |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | commit += db.Updateable<QsQaItemXj01>() |
| | | .SetColumns(s => s.IsPass == result) |
| | | .Where(s => s.Id == detail.Pid) |
| | | .ExecuteCommand(); |
| | | |
| | | return commit; |
| | | }); |
| | | |
| | | //è·åæ£éªåçæ£éªé¡¹ç®çè®ºä¸ªæ° |
| | | var sum = db.Queryable<QsQaItemXj01>() |
| | | .Where(s => s.Pid == detail.Gid).Sum(it => it.LevelNum); |
| | | |
| | | if (sum == null || sum == 0) return 1; |
| | | |
| | | //è·åæ£éªåä¸çæ£éªé¡¹ç®å®é
ä¸ªæ° |
| | | var icount = db.Queryable<QsQaItemXj02>() |
| | | .Where(s => s.Gid == detail.Gid).Count(); |
| | | |
| | | if (icount == 0) return 1; |
| | | |
| | | //å®é
个æ°çäºçè®ºä¸ªæ°æ¶å¯¹æ£éªåè¿è¡å¤å® |
| | | if (sum == icount) |
| | | { |
| | | var FcheckResu = "ä¸åæ ¼"; |
| | | |
| | | //è·åè¿ä¸ªæ£éªåä¸çææåæ ¼çæ£éªç»æ |
| | | passCount = db.Queryable<QsQaItemXj02>() |
| | | .Where(s => s.Gid == detail.Gid && s.Fstand == "â").Count(); |
| | | |
| | | //åæ ¼çæ£éªç»æçäºæ»æ£éªæ°è§ä¸ºåæ ¼ |
| | | if (icount == passCount) FcheckResu = "åæ ¼"; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj>() |
| | | .SetColumns(s => s.FcheckResu == FcheckResu) |
| | | .SetColumns(s => s.FcheckDate == DateTime.Now) |
| | | .SetColumns(s => s.FcheckBy == detail.CreateBy) |
| | | .SetColumns(s => s.LastupdateBy == detail.CreateBy) |
| | | .SetColumns(s => s.LastupdateDate == DateTime.Now) |
| | | .Where(s => s.Id == detail.Gid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | return useTransactionWithOracle; |
| | | } |
| | | |
| | | public int UpdateQSItemDetail(QsQaItemXj02 detail) |
| | | { |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj02>() |
| | | .SetColumns(s => s.UpdateBy == detail.UpdateBy) |
| | | .SetColumns(s => s.UpdateDate == DateTime.Now) |
| | | .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand), |
| | | s => s.Fstand == detail.Fstand) |
| | | .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu), |
| | | s => s.FcheckResu == detail.FcheckResu) |
| | | .Where(s => s.Id == detail.Id) |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | detail.CreateBy = detail.UpdateBy; |
| | | |
| | | withOracle += autoResult(detail); |
| | | |
| | | return withOracle; |
| | | } |
| | | |
| | | //å é¤ä¸»è¡¨å¹¶ä¸è¿çº§å é¤å表åå表 |
| | | public int removeXJ(decimal? id) |
| | | { |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | commit += db.Deleteable<QsQaItemXj>().Where(s => s.Id == id) |
| | | .ExecuteCommand(); |
| | | commit += db.Deleteable<QsQaItemXj01>().Where(s => s.Pid == id) |
| | | .ExecuteCommand(); |
| | | commit += db.Deleteable<QsQaItemXj02>().Where(s => s.Gid == id) |
| | | .ExecuteCommand(); |
| | | return commit; |
| | | }); |
| | | |
| | | return withOracle; |
| | | } |
| | | |
| | | //主表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksGid(XJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.gid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | //å表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksPid(XJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj01>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.pid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | /// <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); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //å表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksById(XJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsQaItemXj02>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.id) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å å·¡æ£å |
| | | /// </summary> |
| | | public ResponseResult createInspection(CreateInspectionDto data) |
| | | { |
| | | try |
| | | { |
| | | |
| | | |
| | | OracleSQLHelper SQLHelper = new(); |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | // ===== è¾åºåæ° ===== |
| | | var outFlag = new SugarParameter("P_FLAG", null, |
| | | DbType.Int32, ParameterDirection.Output, 10); |
| | | |
| | | var outText = new SugarParameter("P_TEXT", null, |
| | | DbType.String, ParameterDirection.Output, 4000); |
| | | |
| | | // ===== è¾å
¥åæ° ===== |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new SugarParameter("P_line_type", data.LineNo, DbType.String, ParameterDirection.Input), |
| | | new SugarParameter("P_Work_order_number", data.Daa001, DbType.String, ParameterDirection.Input), |
| | | new SugarParameter("P_coding", data.ItemNo, DbType.String, ParameterDirection.Input), |
| | | new SugarParameter("P_USER", data.account, DbType.String, ParameterDirection.Input), |
| | | new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input), |
| | | |
| | | // è¾åºåæ°å¿
é¡»å¸¦ä¸ |
| | | outFlag, |
| | | outText |
| | | }; |
| | | // ===== æ§è¡åå¨è¿ç¨ ===== |
| | | db.Ado.ExecuteCommand( |
| | | "BEGIN PRC_XJ_GENERATE_one(:P_line_type,:P_Work_order_number,:P_coding, :P_USER, :P_ISH, :P_FLAG, :P_TEXT); END;", |
| | | parameters); |
| | | |
| | | // ===== 读åè¾åºåæ°å¹¶è½¬æ¢æ ResponseResult ===== |
| | | var result = new ResponseResult |
| | | { |
| | | status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 表示æåï¼1 表示失败 |
| | | message = outText.Value?.ToString() |
| | | }; |
| | | |
| | | |
| | | return result; |
| | | //return new ResponseResult |
| | | //{ |
| | | // status = 0, |
| | | // message = "OK", |
| | | // data = result |
| | | //}; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | } |