¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.service; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service.QC; |
| | | |
| | | public class RKJService |
| | | { |
| | | private readonly BaseService _baseService = new(); |
| | | |
| | | //æå¨æ§è¡sql |
| | | //çææ£éªåå· |
| | | public string getMaxBillNo() |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var date = DateTime.Now.ToString("yyyy-MM-dd"); |
| | | var sql = |
| | | "select max(RELEASE_NO) from QS_ITEM_OQC_REQ where RELEASE_NO like 'RKJN%' and to_char(CREATE_DATE,'yyyy-mm-dd') ='" + |
| | | date + "'"; |
| | | |
| | | var maxBillNo = db.Ado.SqlQuerySingle<string>(sql); |
| | | |
| | | var number = "0001"; |
| | | if (maxBillNo != null) |
| | | { |
| | | maxBillNo = maxBillNo.Substring(12); |
| | | var no = Convert.ToInt32(maxBillNo); |
| | | no++; |
| | | number = no.ToString().PadLeft(4, '0'); |
| | | } |
| | | |
| | | return "RKJN" + date.Replace("-", "") + number; |
| | | } |
| | | |
| | | //éæ©äº§çº¿ |
| | | public List<MesLine> getLineNo() |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<MesLine>() |
| | | .Where(t => |
| | | t.LineStyle == "å
è£
" || |
| | | SqlFunc.ContainsArray(new[] { "V1", "V3", "V5", "V6" }, |
| | | t.LineNo)) |
| | | .OrderBy(t => t.LineNo) |
| | | .Select(t => new MesLine |
| | | { |
| | | LineNo = t.LineNo, |
| | | LineName = t.LineName |
| | | }).OrderBy("LINE_NO") |
| | | .ToList(); |
| | | } |
| | | |
| | | |
| | | //è·åå·¥åå· |
| | | public List<RkDaa002> GetDaa001s(string lineNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<RkDaa002>() |
| | | .Where(t => lineNo.Contains(t.Daa020)) |
| | | .OrderBy(t => t.BillNo, OrderByType.Desc) |
| | | .ToList(); |
| | | } |
| | | |
| | | //æ ¹æ®æ£éªæ åæ¥è®¡ç®æ£éªä¸ªæ° |
| | | public List<QsItemOqcItem> SetItems(string itemNo, decimal quantity) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var count = db.Queryable<MesQa>().Where(s => s.QsType == "3" |
| | | && s.ItemNo == itemNo && s.Fsubmit == 1).Count(); |
| | | |
| | | if (count <= 0) return []; |
| | | |
| | | var qsItemOqcItems = db |
| | | .Queryable<MesQualityStandard>() |
| | | .Where(b => b.QsType == "3" |
| | | && b.ItemNo == itemNo).Select(b => new QsItemOqcItem |
| | | { |
| | | 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(); |
| | | |
| | | qsItemOqcItems.ForEach(item => |
| | | { |
| | | string LEV = null; |
| | | switch (item.FcheckLevel) |
| | | { |
| | | case null: |
| | | LEV = ""; // é»è®¤å¼ |
| | | break; |
| | | case { } s when s.Contains("S1"): |
| | | LEV = "B.FLEVEL_S1"; |
| | | break; |
| | | case { } s when s.Contains("S2"): |
| | | LEV = "B.FLEVEL_S2"; |
| | | break; |
| | | case { } s when s.Contains("S3"): |
| | | LEV = "B.FLEVEL_S3"; |
| | | break; |
| | | case { } s when s.Contains("S4"): |
| | | LEV = "B.FLEVEL_S4"; |
| | | break; |
| | | case { } s when s.Contains("(I)"): |
| | | LEV = "B.FLEVEL_I"; |
| | | break; |
| | | case { } s when s.Contains("(II)"): |
| | | LEV = "B.FLEVEL_II"; |
| | | break; |
| | | case { } s when s.Contains("(III)"): |
| | | LEV = "B.FLEVEL_III"; |
| | | break; |
| | | default: |
| | | LEV = ""; // é»è®¤å¼ |
| | | break; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(LEV)) |
| | | throw new Exception(item.QsCode + "ä¸çæ£éªæ°´å¹³ç»´æ¤ç䏿£ç¡®"); |
| | | |
| | | var sql = |
| | | "SELECT " + LEV + |
| | | " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO='" + |
| | | item.QsCode + "' AND B.LOT_FROM<= " + quantity + " AND " + |
| | | quantity + "<=B.LOT_TO"; |
| | | |
| | | var maxBillNo = db.Ado.SqlQuerySingle<string>(sql); |
| | | |
| | | if (string.IsNullOrEmpty(maxBillNo)) |
| | | throw new Exception( |
| | | item.QsCode + "䏿²¡æ" + quantity + "è¿ä¸ªèå´çæ½æ ·åºå"); |
| | | |
| | | var result = ExtractSubstring(item.FacLevel, '(', ')'); |
| | | |
| | | if (string.IsNullOrEmpty(result)) |
| | | throw new Exception(item.QsCode + |
| | | "ç»´æ¤çæ¥æ¶æ°´å¹³ä¸æ£ç¡®ï¼åºè¯¥æ¯0.010---(AQL_0_0010)è¿æ ·"); |
| | | |
| | | sql = "SELECT FSAMPLE_SIZE_WORD, " + result + |
| | | " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" + |
| | | item.QsCode + "' AND SAMPLE_SIZE_WORD= '" + maxBillNo + "'"; |
| | | var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql); |
| | | |
| | | item.LevelNum = resultClass.FSAMPLE_SIZE_WORD; |
| | | item.FreQty = resultClass.Result; |
| | | }); |
| | | |
| | | return qsItemOqcItems; |
| | | } |
| | | |
| | | private string ExtractSubstring(string input, char startChar, char endChar) |
| | | { |
| | | var startIndex = input.IndexOf(startChar); |
| | | var endIndex = input.IndexOf(endChar, startIndex); |
| | | |
| | | if (startIndex == -1 || endIndex == -1) |
| | | // å¦ææªæ¾å°èµ·å§å符æç»æå符ï¼åè¿å空å符串æè
æåºå¼å¸¸ï¼æ ¹æ®å®é
æ
åµéæ© |
| | | return string.Empty; |
| | | // æè
æåºå¼å¸¸ |
| | | // throw new ArgumentException("Start or end character not found"); |
| | | // æååå符串 |
| | | var length = endIndex - startIndex - 1; |
| | | return input.Substring(startIndex + 1, length); |
| | | } |
| | | |
| | | public List<QsItemOqcItem> GetItems(decimal? pid, decimal? id) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<QsItemOqcItem, QsItemOqcItemDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Pid)) |
| | | .WhereIF(pid > 0, (a, b) => a.Pid == pid) |
| | | .WhereIF(id > 0, (a, b) => a.Id == id) |
| | | .GroupBy((a, b) => new |
| | | { |
| | | a.Id, |
| | | a.ProjName, |
| | | a.ItemMod, |
| | | a.InspectionMethod, |
| | | a.UsingInstruments, |
| | | a.LevelNum, |
| | | a.MaxValue, |
| | | a.StandardValue, |
| | | a.MinValue, |
| | | a.Notes, |
| | | a.IsPass, |
| | | a.FcheckLevel, |
| | | a.FacLevel, |
| | | a.QsCode, |
| | | a.QsName |
| | | }).Select((a, b) => new QsItemOqcItem |
| | | { |
| | | ProjName = a.ProjName, |
| | | Id = a.Id, |
| | | ItemMod = a.ItemMod, |
| | | InspectionMethod = a.InspectionMethod, |
| | | UsingInstruments = a.UsingInstruments, |
| | | LevelNum = a.LevelNum, |
| | | MaxValue = a.MaxValue, |
| | | StandardValue = a.StandardValue, |
| | | MinValue = a.MinValue, |
| | | Notes = a.Notes, |
| | | FcheckLevel = a.FcheckLevel, |
| | | FacLevel = a.FacLevel, |
| | | QsCode = a.QsCode, |
| | | QsName = a.QsName, |
| | | isCheck = SqlFunc.AggregateCount(b.Id), |
| | | Result = a.IsPass == 1 && |
| | | a.LevelNum == SqlFunc.AggregateCount(b.Id) ? "åæ ¼" |
| | | : a.IsPass == 0 && |
| | | a.LevelNum == SqlFunc.AggregateCount(b.Id) ? "ä¸åæ ¼" |
| | | : "æªå®æ" |
| | | }).OrderBy("result desc").ToList(); |
| | | } |
| | | |
| | | public dynamic save(RKJDto rkjDto) |
| | | { |
| | | var xj = rkjDto.from; |
| | | var items = rkjDto.items; |
| | | var userNo = rkjDto.userNo; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | |
| | | xj.CreateBy = userNo; |
| | | xj.CreateDate = DateTime.Now; |
| | | |
| | | var pid = db.Insertable(xj).ExecuteReturnIdentity(); |
| | | |
| | | xj.Id = pid; |
| | | |
| | | rkjDto.gid = pid; |
| | | |
| | | foreach (var item in items) item.Pid = pid; |
| | | |
| | | commit += db.Insertable(items).ExecuteCommand(); |
| | | |
| | | return commit; |
| | | }); |
| | | |
| | | |
| | | // using (var connection = |
| | | // new OracleConnection(OracleSQLHelper.ConnectionString)) // connection.Open(); |
| | | // |
| | | // var transaction = connection.BeginTransaction(); |
| | | // |
| | | // try |
| | | // { |
| | | // using (var command = new OracleCommand()) |
| | | // { |
| | | // command.Connection = connection; |
| | | // command.Transaction = transaction; |
| | | // command.CommandText = "insert_and_update_picture_RKJ"; |
| | | // command.CommandType = CommandType.StoredProcedure; |
| | | // |
| | | // // Add parameters |
| | | // command.Parameters.Add("p_QS_TYPE", OracleDbType.Varchar2) |
| | | // .Value = "3"; |
| | | // command.Parameters.Add("p_MOID_NUM", OracleDbType.Varchar2) |
| | | // .Value = rkjDto.moidNum; |
| | | // command.Parameters.Add("p_pid", OracleDbType.Int32).Value = |
| | | // xj.Id; |
| | | // |
| | | // command.ExecuteNonQuery(); |
| | | // } |
| | | // |
| | | // transaction.Commit(); |
| | | // } |
| | | // catch (Exception) |
| | | // { |
| | | // transaction.Rollback(); |
| | | // throw; |
| | | // } |
| | | // } |
| | | |
| | | rkjDto.items = GetItems(xj.Id, null); |
| | | |
| | | rkjDto.items.ForEach(s => |
| | | { |
| | | if (s.MaxValue != null || s.StandardValue != null || |
| | | s.MinValue != null) return; |
| | | var detail = new QsItemOqcItemDetail(); |
| | | detail.Pid = s.Id; |
| | | detail.Gid = rkjDto.gid; |
| | | detail.Fstand = "â"; |
| | | detail.FcheckResu = "1"; |
| | | detail.UpdateBy = rkjDto.userNo; |
| | | detail.count = (int?)s.LevelNum; |
| | | SetQSItemDetail(detail); |
| | | }); |
| | | |
| | | return Convert.ToInt32(xj.Id); |
| | | } |
| | | |
| | | public int SetQSItemDetail(QsItemOqcItemDetail detail) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var qsItemOqcReq = db.Queryable<QsItemOqcReq>() |
| | | .Where(o => o.Id == detail.Gid) |
| | | .First(); |
| | | |
| | | if (qsItemOqcReq == null) throw new Exception("该æ£éªåä¸åå¨ï¼è¯·åå°å
¥åºæ£åè¡¨éæ°æ¥ç"); |
| | | |
| | | if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu)) |
| | | throw new Exception("该æ£éªåå·²" + qsItemOqcReq.FcheckResu + "ï¼ä¸è¿è¡ä¿®æ¹ç»æ"); |
| | | |
| | | var oracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | List<QsItemOqcItemDetail> result = new(); |
| | | for (var i = 0; i < detail.count; i++) |
| | | { |
| | | var item = new QsItemOqcItemDetail(); |
| | | 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(QsItemOqcItemDetail detail) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // Single æ²¡ææ¥è¯¢å°ç»ææ¶è¿åNullï¼å¦æç»æå¤§äº1æ¡ä¼æåºé误 |
| | | var QsItemOqcItem = db.Queryable<QsItemOqcItem>() |
| | | .Single(s => s.Id == detail.Pid); |
| | | |
| | | if (QsItemOqcItem == null) return 0; |
| | | |
| | | //æ¥è¯¢è¿ä¸ªæ£éªé¡¹ç®ä¸çæ£éªç»æ |
| | | var count = db.Queryable<QsItemOqcItemDetail>() |
| | | .Where(s => s.Pid == detail.Pid).Count(); |
| | | |
| | | |
| | | var result = 0; |
| | | |
| | | //æ£éªå®é
ç»æä¸çäºåºè¯¥æ£éªçä¸ªæ°æ¶ç´æ¥æ¨åº |
| | | if (QsItemOqcItem.LevelNum != count) return 0; |
| | | |
| | | //åæ ¼çæå¤å°ä¸ª |
| | | var passCount = db.Queryable<QsItemOqcItemDetail>() |
| | | .Where(s => s.Pid == detail.Pid && s.Fstand == "â").Count(); |
| | | |
| | | if (count == passCount) |
| | | result = 1; |
| | | else if (count - passCount < QsItemOqcItem.FreQty) result = 1; |
| | | |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | commit += db.Updateable<QsItemOqcItem>() |
| | | .SetColumns(s => s.IsPass == result) |
| | | .Where(s => s.Id == detail.Pid) |
| | | .ExecuteCommand(); |
| | | |
| | | return commit; |
| | | }); |
| | | |
| | | var isNull = db.Queryable<QsItemOqcItem>() |
| | | .Where(s => s.Pid == detail.Gid && s.IsPass == null).Count(); |
| | | |
| | | if (isNull > 0) return 1; |
| | | |
| | | |
| | | //è·åæ£éªåçæ£éªé¡¹ç®çä¸ªæ° |
| | | var sum = db.Queryable<QsItemOqcItem>() |
| | | .Where(s => s.Pid == detail.Gid).Count(); |
| | | |
| | | if (sum == 0) return 1; |
| | | |
| | | //è·åæ£éªåä¸çåæ ¼çæ£éªé¡¹ç®ä¸ªæ° |
| | | var icount = db.Queryable<QsItemOqcItem>() |
| | | .Where(s => s.Pid == detail.Gid && s.IsPass == 1).Count(); |
| | | |
| | | var FcheckResu = "ä¸åæ ¼"; |
| | | |
| | | //å®é
个æ°çäºçè®ºä¸ªæ°æ¶å¯¹æ£éªåè¿è¡å¤å® |
| | | if (sum == icount) |
| | | //åæ ¼çæ£éªç»æçäºæ»æ£éªæ°è§ä¸ºåæ ¼ |
| | | FcheckResu = "åæ ¼"; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcReq>() |
| | | .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(); |
| | | }); |
| | | |
| | | // if (FcheckResu.Equals("ä¸åæ ¼")) |
| | | // //èªå¨çæå
¥åºæ£å¼å¸¸å¯¹ç |
| | | // saveDetect02(detail.Gid, detail.CreateBy); |
| | | |
| | | setBarCodes(FcheckResu, detail, db); |
| | | |
| | | return useTransactionWithOracle; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 彿£éªåä¸åæ ¼æ¶ï¼ |
| | | /// åæ¶mes_inv_item_barcodes çæ¥å·¥æ è¯ WORK_FLG |
| | | /// womdaa å·²ç产é DAA011å åæ¡ç æ¥å·¥æ°é |
| | | /// MES_SCGD_GX æ£éªæ è¯ CHECK_FLAGï¼('â','Ã') |
| | | /// éè¿mes_inv_item_in_c_details2çMES_SCGD_GX_IDè¿æ¥ |
| | | /// </summary> |
| | | private void setBarCodes(string? FcheckResu, QsItemOqcItemDetail detail, |
| | | SqlSugarClient db) |
| | | { |
| | | var oqcReqList = db |
| | | .Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>((a, b, c) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.BillNo == b.BillNo, |
| | | JoinType.Left, c.Daa001 == b.RbillNo |
| | | )) |
| | | .Where(a => a.Id == detail.Gid) |
| | | .Select((a, b, c) => |
| | | new |
| | | { |
| | | a.Id, |
| | | a.BillNo, |
| | | c.Daa001 |
| | | }) |
| | | .ToList(); |
| | | |
| | | if (oqcReqList.Count <= 0) return; |
| | | |
| | | var qsItemOqcReq = oqcReqList.First(); // è·å第ä¸ä¸ªå
ç´ |
| | | |
| | | if (qsItemOqcReq.Id is null or 0) return; |
| | | |
| | | var mesInvItemInsList = db |
| | | .Queryable<MesInvItemIns, MesInvItemInCDetails2>((a, b) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.Id == b.ItemInId)) |
| | | .Where((a, b) => a.BillNo == qsItemOqcReq.BillNo) |
| | | .Select((a, b) => new |
| | | { b.ItemBarcode, b.Quantity, b.MesScgdGxId }) |
| | | .ToList(); |
| | | |
| | | var barCodes = mesInvItemInsList.Select(s => s.ItemBarcode).ToList(); |
| | | |
| | | var count = db.Queryable<MesInvItemBarcodes>() |
| | | .Where(s => barCodes.Contains(s.ItemBarcode) && s.WorkFlg == 0) |
| | | .Count(); |
| | | |
| | | var gxId = mesInvItemInsList.Select(s => s.MesScgdGxId).ToList(); |
| | | |
| | | var sumQty = mesInvItemInsList.Sum(s => s.Quantity); |
| | | |
| | | if ("åæ ¼".Equals(FcheckResu)) |
| | | { |
| | | //æ ¹æ®å·¥åºidæ´æ°å·¥åºè¡¨çæ£éªç»æ |
| | | db.Updateable<MesScgdGx>() |
| | | .SetColumns(s => s.CheckFlag == "â") |
| | | .Where(s => gxId.Contains(s.Id)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (count <= 0) return; |
| | | |
| | | //åæ¶mes_inv_item_barcodes çæ¥å·¥æ è¯ WORK_FLG ä½¿ç¨æ¡ç |
| | | var executeCommand = db.Updateable<MesInvItemBarcodes>() |
| | | .SetColumns(a => a.WorkFlg == 1) |
| | | .Where(a => barCodes.Contains(a.ItemBarcode)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (executeCommand > 0) |
| | | //womdaa å·²ç产é DAA011å åæ¡ç æ¥å·¥æ°é |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == b.Daa011 + sumQty) |
| | | .Where(b => b.Daa001 == qsItemOqcReq.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | else if ("ä¸åæ ¼".Equals(FcheckResu)) |
| | | { |
| | | //æ ¹æ®å·¥åºidæ´æ°å·¥åºè¡¨çæ£éªç»æ |
| | | db.Updateable<MesScgdGx>() |
| | | .SetColumns(s => s.CheckFlag == "Ã") |
| | | .Where(s => gxId.Contains(s.Id)) |
| | | .ExecuteCommand(); |
| | | |
| | | //åæ¶mes_inv_item_barcodes çæ¥å·¥æ è¯ WORK_FLG ä½¿ç¨æ¡ç |
| | | var executeCommand = db.Updateable<MesInvItemBarcodes>() |
| | | .SetColumns(a => a.WorkFlg == 0) |
| | | .Where(a => barCodes.Contains(a.ItemBarcode)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (executeCommand > 0) |
| | | //womdaa å·²ç产é DAA011å åæ¡ç æ¥å·¥æ°é |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == b.Daa011 - sumQty) |
| | | .Where(b => b.Daa001 == qsItemOqcReq.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | } |
| | | |
| | | public int saveDetect02(decimal? gid, string? createBy) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var qsItemOqcReq = |
| | | db.Queryable<QsItemOqcReq>().Single(s => s.Id == gid); |
| | | |
| | | var mesInvItemIns = db.Queryable<MesInvItemIns>() |
| | | .Single(s => s.BillNo == qsItemOqcReq.BillNo); |
| | | |
| | | var mesSchemeResult = db.Queryable<Womdaa>() |
| | | .Single(s => s.Daa001 == mesInvItemIns.CbillNo); |
| | | |
| | | var entity = new MesQaItemsDetect02(); |
| | | // entity.ItemNo = mesSchemeResult.BoardItem; |
| | | // entity.BoardItem = mesSchemeResult.BoardItem; |
| | | entity.LineNo = mesSchemeResult.Daa015; |
| | | // entity.Aufnr = mesSchemeResult.TaskNo; |
| | | entity.ReleaseNo = qsItemOqcReq.ReleaseNo; |
| | | entity.LotNo = qsItemOqcReq.BillNo; |
| | | entity.FcheckDate = qsItemOqcReq.FcheckDate; |
| | | entity.FcheckMemo = qsItemOqcReq.Remarks; |
| | | entity.Gid = qsItemOqcReq.Id; |
| | | // entity.PlanQty = qsItemOqcReq.FcheckDate; |
| | | |
| | | |
| | | entity.FcheckResu = "ä¸åæ ¼"; |
| | | entity.FcheckLevel = "严é"; |
| | | entity.CreateDate = DateTime.Now; |
| | | entity.Factory = "10000"; |
| | | entity.Company = "1000"; |
| | | entity.Ftype = "4"; |
| | | entity.Fversion = 0; |
| | | entity.Modify1Flag = 0; |
| | | entity.IpqcStatus = 0; |
| | | entity.Fsubmit = 1; |
| | | entity.CreateBy = createBy; |
| | | entity.FcheckBy = createBy; |
| | | |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => db |
| | | .Insertable(entity) |
| | | .ExecuteCommand()); |
| | | } |
| | | |
| | | |
| | | public (List<QsItemOqcReq> items, int TotalCount) getPage( |
| | | XJPageResult queryObj) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var totalCount = 0; |
| | | |
| | | string[]? lineNo = null; |
| | | |
| | | if (StringUtil.IsNotNullOrEmpty(queryObj.createUser)) |
| | | lineNo = _baseService.getUserLineNo(queryObj.createUser); |
| | | |
| | | var qsItemOqcReqs = db |
| | | .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, MesInvTransaction, |
| | | RKJDaa001, Womdaa, VLineUser>((a, b, c, ca, m, da, z) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.ItemNo == b.ItemNo, |
| | | JoinType.Left, a.BillNo == c.BillNo, |
| | | JoinType.Left, |
| | | c.TransctionNo == ca.TransactionNo.ToString() && |
| | | c.Company == ca.Company && |
| | | c.Factory == ca.Factory, |
| | | JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo, |
| | | JoinType.Left, da.Daa001 == c.RbillNo, |
| | | JoinType.Left, da.Daa015 == z.LineNo //, |
| | | //JoinType.Left,c.Bgr == d.UserNo |
| | | )) |
| | | // .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | // (a, b, c, ca, m, da) => lineNo.Contains(da.Daa015)) |
| | | .WhereIF(!"PL017".Equals(queryObj.createUser), |
| | | (a, b, c, ca, m, da, z) => lineNo.Contains(da.Daa015)) |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.id), |
| | | (a, b, c, ca, m, da, z) => a.Id.ToString() == queryObj.id) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | "æªå®æ".Equals(queryObj.result), |
| | | (a, b, c, ca, m, da, z) => a.FcheckResu == null) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | !"æªå®æ".Equals(queryObj.result), |
| | | (a, b, c, ca, m, da, z) => a.FcheckResu != null) |
| | | //å ç鿡件,æ ¹æ®ä¾åºåï¼ç©æç¼ç ï¼ç©æåç§°æç´¢ |
| | | //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue ) |
| | | .WhereIF(queryObj.SearchValue != null && queryObj.SearchValue != "", |
| | | (a, b, c, ca, m, da, z) => |
| | | b.ItemName.ToLower() |
| | | .Contains(queryObj.SearchValue.ToLower()) |
| | | || a.ItemNo.ToLower() |
| | | .Contains(queryObj.SearchValue.ToLower())) |
| | | .Select((a, b, c, ca, m, da, z) => new QsItemOqcReq |
| | | { |
| | | BillNo = a.BillNo, |
| | | Fsubmit = a.Fsubmit, |
| | | Remarks = a.Remarks, |
| | | Id = a.Id, |
| | | CreateDate = a.CreateDate, |
| | | CreateBy = a.CreateBy, |
| | | FcheckResu = a.FcheckResu, |
| | | ItemNo = a.ItemNo, |
| | | FcheckBy = a.FcheckBy, |
| | | FcheckDate = a.FcheckDate, |
| | | ReleaseNo = a.ReleaseNo, |
| | | ItemName = b.ItemName, |
| | | ItemModel = b.ItemModel, |
| | | //Dab001 = m.LotNo, |
| | | ItemInId = m.ItemInId, |
| | | Daa015 = da.Daa015, |
| | | LineNo = c.LineNo, |
| | | Quantity = m.Quantity |
| | | //Bgr = d.UserName |
| | | }) |
| | | .OrderBy(a => a.CreateDate, OrderByType.Desc) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | | |
| | | return (qsItemOqcReqs, totalCount); |
| | | } |
| | | |
| | | //å é¤ä¸»è¡¨å¹¶ä¸è¿çº§å é¤å表åå表 |
| | | public int removeXJ(decimal? id) |
| | | { |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | var commit = 0; |
| | | //å é¤ä¸»è¡¨ |
| | | commit += db.Deleteable<QsItemOqcReq>().Where(s => s.Id == id) |
| | | .ExecuteCommand(); |
| | | //å é¤å表 |
| | | commit += db.Deleteable<QsItemOqcItem>().Where(s => s.Pid == id) |
| | | .ExecuteCommand(); |
| | | //å é¤å表 |
| | | commit += db.Deleteable<QsItemOqcItemDetail>() |
| | | .Where(s => s.Gid == id) |
| | | .ExecuteCommand(); |
| | | return commit; |
| | | }); |
| | | |
| | | return withOracle; |
| | | } |
| | | |
| | | |
| | | public RKJDto getXjDetail02ById(decimal? id) |
| | | { |
| | | var rkjDto = new RKJDto(); |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var qsItemOqcItem = |
| | | db.Queryable<QsItemOqcItem>().Single(s => s.Id == id); |
| | | |
| | | if (qsItemOqcItem.IsPass == 0) |
| | | qsItemOqcItem.Result = "ä¸åæ ¼"; |
| | | else if (qsItemOqcItem.IsPass == 1) |
| | | qsItemOqcItem.Result = "åæ ¼"; |
| | | else |
| | | qsItemOqcItem.Result = "æªå®æ"; |
| | | |
| | | if (qsItemOqcItem.Picture is { Length: > 0 }) |
| | | qsItemOqcItem.imageData = |
| | | Convert.ToBase64String(qsItemOqcItem.Picture); |
| | | |
| | | //è·åä¸åæ ¼æ° |
| | | var count = db.Queryable<QsItemOqcItemDetail>() |
| | | .Where(s => s.Fstand == "Ã" && s.Pid == id).Count(); |
| | | |
| | | qsItemOqcItem.Unqualified = count; |
| | | |
| | | rkjDto.ItemXj01 = qsItemOqcItem; |
| | | |
| | | |
| | | rkjDto.ItemXj02s = db.Queryable<QsItemOqcItemDetail>() |
| | | .Where(s => s.Pid == id) |
| | | .ToList(); |
| | | |
| | | return rkjDto; |
| | | } |
| | | |
| | | public int UpdateQSItemDetail(QsItemOqcItemDetail detail) |
| | | { |
| | | if (isRk(detail.ItemInId)) throw new Exception("å·²ææ¡ç å
¥åºï¼ä¸å
è®¸ä¿®æ¹æ£éªç»æ"); |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var qsItemOqcReq = db.Queryable<QsItemOqcReq>() |
| | | .Where(o => o.Id == detail.Gid) |
| | | .First(); |
| | | |
| | | if (qsItemOqcReq == null) throw new Exception("该æ£éªåä¸åå¨ï¼è¯·åå°å
¥åºæ£åè¡¨éæ°æ¥ç"); |
| | | |
| | | if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu)) |
| | | throw new Exception("该æ£éªåå·²" + qsItemOqcReq.FcheckResu + "ï¼ä¸è¿è¡ä¿®æ¹ç»æ"); |
| | | |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcItemDetail>() |
| | | .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; |
| | | } |
| | | |
| | | //ä¿®æ¹ç»æåéªè¯æ¯å¦å
¥åº |
| | | private bool isRk(decimal? ItemInId) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<MesInvItemInCDetails>() |
| | | .Where(s => s.ItemInId == ItemInId).Count() > 0; |
| | | } |
| | | |
| | | |
| | | //主表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksGid(RKJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcReq>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.gid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | //å表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksPid(RKJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcItem>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.pid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | //å表修æ¹å¤æ³¨å段 |
| | | public int saveRemarksById(RKJDto dto) |
| | | { |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcItemDetail>() |
| | | .SetColumns(it => |
| | | it.Remarks == dto.Remarks) //SetColumnsæ¯å¯ä»¥å å ç å2个就2ä¸ªåæ®µèµå¼ |
| | | .Where(it => it.Id == dto.id) |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | public int saveItem(RKJDto rkjDto) |
| | | { |
| | | var items = rkjDto.items; |
| | | var userNo = rkjDto.userNo; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | foreach (var item in items) item.Pid = rkjDto.gid; |
| | | |
| | | return db.Insertable(items).ExecuteCommand(); |
| | | }); |
| | | |
| | | rkjDto.items = GetItems(rkjDto.gid, null); |
| | | |
| | | rkjDto.items.ForEach(s => |
| | | { |
| | | if (s.MaxValue != null || s.StandardValue != null || |
| | | s.MinValue != null) return; |
| | | var detail = new QsItemOqcItemDetail(); |
| | | detail.Pid = s.Id; |
| | | detail.Gid = rkjDto.gid; |
| | | detail.Fstand = "â"; |
| | | detail.FcheckResu = "1"; |
| | | detail.UpdateBy = rkjDto.userNo; |
| | | detail.count = (int?)s.LevelNum; |
| | | SetQSItemDetail(detail); |
| | | }); |
| | | |
| | | return Convert.ToInt32(rkjDto.gid); |
| | | } |
| | | |
| | | public int cleanReqResult(RKJDto dto) |
| | | { |
| | | if (isRk(dto.gid)) throw new Exception("å·²ææ¡ç å
¥åºï¼ä¸å
许æ¸
餿£éªç»æ"); |
| | | |
| | | |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | return db.Updateable<QsItemOqcReq>() |
| | | .SetColumns(s => s.FcheckResu == null) |
| | | .Where(s => s.Id == dto.gid).ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | private bool isRk(int? gid) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db |
| | | .Queryable<QsItemOqcReq, MesInvItemIns, MesInvItemInCDetails2, |
| | | MesInvItemStocks>((a, b, c, d) => new JoinQueryInfos( |
| | | JoinType.Inner, a.BillNo == b.BillNo, |
| | | JoinType.Inner, b.Id == c.ItemInId, |
| | | JoinType.Inner, c.ItemBarcode == d.ItemBarcode |
| | | )) |
| | | .Where((a, b, c, d) => a.Id == gid) |
| | | .Count() > 0; |
| | | } |
| | | } |