From b2be3b6939b4382f9165c78857a072f1aa7b01d0 Mon Sep 17 00:00:00 2001 From: zyf <1071160500@qq.com> Date: 星期六, 12 四月 2025 12:34:02 +0800 Subject: [PATCH] 更新平板功能,首检页面生成巡检单 --- MES.Service/service/QC/RKJService.cs | 290 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 252 insertions(+), 38 deletions(-) diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs index aeca6d4..8dfeb26 100644 --- a/MES.Service/service/QC/RKJService.cs +++ b/MES.Service/service/QC/RKJService.cs @@ -54,11 +54,11 @@ //鑾峰彇宸ュ崟鍙� - public List<RKJDaa001> GetDaa001s(string lineNo) + public List<RkDaa002> GetDaa001s(string lineNo) { var db = SqlSugarHelper.GetInstance(); - return db.Queryable<RKJDaa001>() - .Where(t => t.LineNo == lineNo) + return db.Queryable<RkDaa002>() + .Where(t => lineNo.Contains(t.Daa020)) .OrderBy(t => t.BillNo, OrderByType.Desc) .ToList(); } @@ -105,31 +105,37 @@ string LEV = null; switch (item.FcheckLevel) { - case string s when s.Contains("S1"): + case null: + LEV = ""; // 榛樿鍊� + break; + case { } s when s.Contains("S1"): LEV = "B.FLEVEL_S1"; break; - case string s when s.Contains("S2"): + case { } s when s.Contains("S2"): LEV = "B.FLEVEL_S2"; break; - case string s when s.Contains("S3"): + case { } s when s.Contains("S3"): LEV = "B.FLEVEL_S3"; break; - case string s when s.Contains("S4"): + case { } s when s.Contains("S4"): LEV = "B.FLEVEL_S4"; break; - case string s when s.Contains("(I)"): + case { } s when s.Contains("(I)"): LEV = "B.FLEVEL_I"; break; - case string s when s.Contains("(II)"): + case { } s when s.Contains("(II)"): LEV = "B.FLEVEL_II"; break; - case string s when s.Contains("(III)"): + 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 + @@ -139,9 +145,15 @@ 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 + + "缁存姢鐨勬帴鏀舵按骞充笉姝g‘锛屽簲璇ユ槸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= '" + @@ -301,6 +313,22 @@ 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(); @@ -401,11 +429,115 @@ .ExecuteCommand(); }); - if (FcheckResu.Equals("涓嶅悎鏍�")) - //鑷姩鐢熸垚鍏ュ簱妫�寮傚父瀵圭瓥 - saveDetect02(detail.Gid, detail.CreateBy); + // 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鐨凪ES_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) @@ -453,52 +585,82 @@ } - public List<QsItemOqcReq> getPage(XJPageResult queryObj) + public (List<QsItemOqcReq> items, 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<QsItemOqcReq, RKJDaa001>((a, b) => - new JoinQueryInfos(JoinType.Left, a.BillNo == b.BillNo)) - .WhereIF(lineNo != null && lineNo.Length > 0, - (a, b) => lineNo.Contains(b.LineNo)) + var qsItemOqcReqs = db + .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, MesInvTransaction, + RKJDaa001, Womdaa, VLineUser,MesDeptUser, Womcaa, ExZzCaaFiled>( + (a, b, c, ca, m, da, z,d, caa,zf) => 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, + JoinType.Left, da.Daa021 == caa.Caa020, + JoinType.Left, caa.Erpid == zf.Erpid + )) + // .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, d, caa, zf) => lineNo.Contains(da.Daa015)) + .WhereIF(!string.IsNullOrEmpty(queryObj.id), + (a, b, c, ca, m, da, z, d, caa, zf) => a.Id.ToString() == queryObj.id) .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && "鏈畬鎴�".Equals(queryObj.result), - (a, b) => a.FcheckResu == null) + (a, b, c, ca, m, da, z, d, caa, zf) => a.FcheckResu == null) .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && !"鏈畬鎴�".Equals(queryObj.result), - (a, b) => a.FcheckResu != null) - .WhereIF(id > 0, (a, b) => a.Id == id) - .Select((a, b) => new QsItemOqcReq + (a, b, c, ca, m, da, z, d, caa, zf) => 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, d, caa, zf) => b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) + || a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower())) + .Select((a, b, c, ca, m, da, z, d, caa, zf) => new QsItemOqcReq { - Id = a.Id, - ReleaseNo = a.ReleaseNo, BillNo = a.BillNo, - LineName = b.LineNo, - Quantity = b.Quantity, - CreateBy = a.CreateBy, + Fsubmit = a.Fsubmit, + Remarks = a.Remarks, + Id = a.Id, CreateDate = a.CreateDate, - ItemNo = a.ItemNo, - Mocode = b.Mocode, - BoardModel = b.BoardModel, - TaskNo = b.TaskNo, + CreateBy = a.CreateBy, FcheckResu = a.FcheckResu, + ItemNo = a.ItemNo, FcheckBy = a.FcheckBy, FcheckDate = a.FcheckDate, - MoidNum = a.MoidNum, - BoardName = b.BoardName, - ColorName = b.ColorName, - Remarks = a.Remarks - }).OrderBy(a => a.CreateDate, OrderByType.Desc) - .ToPageList(queryObj.PageIndex, queryObj.Limit); + ReleaseNo = a.ReleaseNo, + ItemName = b.ItemName, + ItemModel = b.ItemModel, + Dab001 = m.LotNo, + ItemInId = m.ItemInId, + Daa015 = da.Daa015, + LineNo = c.LineNo, + Quantity = m.Quantity, + Caa015 = caa.Caa015, + cust = da.Cust == null ? zf.Cust : da.Cust, + Bgr = d.UserName + }) + .OrderBy(a => a.CreateDate, OrderByType.Desc) + .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); + + return (qsItemOqcReqs, totalCount); } //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛� @@ -561,6 +723,24 @@ 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>() @@ -579,6 +759,14 @@ 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; } @@ -651,4 +839,30 @@ 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; + } } \ No newline at end of file -- Gitblit v1.9.3