| | |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | |
| | | namespace MES.Service.service.QC; |
| | | |
| | |
| | | public QsItem SaveItem(QsItem item) |
| | | { |
| | | var qsItemIpiItems = item.Items; |
| | | |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | | qsItemIpiItems.ForEach(s => s.Pid = item.gid); |
| | | |
| | | return db.Insertable(qsItemIpiItems) |
| | | // 1. å 餿§çå项 |
| | | db.Deleteable<QsItemIpiItem>() |
| | | .Where(s => s.Pid == item.gid) |
| | | .ExecuteCommand(); |
| | | |
| | | qsItemIpiItems.ForEach(s => s.Pid = item.gid); |
| | | db.Insertable(qsItemIpiItems).ExecuteCommand(); |
| | | |
| | | // 2. æ¥æ¾ MesQa 对åºä¸»è¡¨IDï¼éè¿ item.ItemNoï¼ |
| | | var mesQa = db.Queryable<MesQa>() |
| | | .Where(q => q.ItemNo == item.ItemNo) |
| | | .Select(q => new { q.Id }) |
| | | .First(); |
| | | |
| | | if (mesQa == null || mesQa.Id == null) |
| | | { |
| | | throw new Exception($"æªæ¾å°ç©æç¼å· {item.ItemNo} 对åºç MesQa 主表记å½ã"); |
| | | } |
| | | |
| | | var mesQaId = mesQa.Id; |
| | | var mid = item.gid; |
| | | |
| | | // 3. 忥æ«ç æ£éªé¡¹ç®è¡¨ï¼MES_SJ_SCAN_ITEM_CKï¼ |
| | | db.Deleteable<MES_SJ_SCAN_ITEM_CK>() |
| | | .Where(s => s.MID == mid) |
| | | .ExecuteCommand(); |
| | | |
| | | var scanItems = db.Queryable<MES_SJ_SCAN_ITEM>() |
| | | .Where(s => s.MID == mesQaId) |
| | | .Select(s => new MES_SJ_SCAN_ITEM_CK |
| | | { |
| | | SCAN_ITEM = s.SCAN_ITEM, |
| | | SN_NO = null, |
| | | MID = (long)mid, |
| | | CREATE_DATE = DateTime.Now |
| | | }) |
| | | .ToList(); |
| | | |
| | | foreach (var ck in scanItems) |
| | | { |
| | | ck.ID = (long)db.Ado.GetDecimal("SELECT SEQ_MES_SJ_SCAN_ITEM_CK.NEXTVAL FROM DUAL"); |
| | | } |
| | | |
| | | if (scanItems.Any()) |
| | | { |
| | | db.Insertable(scanItems).ExecuteCommand(); |
| | | } |
| | | |
| | | // 4. ä¸è´æ§é¡¹ç®åæ¥é»è¾ï¼MES_IQC_CONSISTENCY_SJ_CKï¼ |
| | | // ------------------------------------------------------------- |
| | | // å 餿§æ°æ® |
| | | db.Ado.ExecuteCommand( |
| | | "DELETE FROM MES_IQC_CONSISTENCY_SJ_CK WHERE pid = :IMGID", |
| | | new { IMGID = item.gid.ToString() }); |
| | | |
| | | // æ¥è¯¢ä¸è´æ§é¡¹ç®æºæ°æ® |
| | | var consistencyItems = db.SqlQueryable<MES_IQC_CONSISTENCY_SJ_CK>(@" |
| | | SELECT |
| | | a.ID AS PID, |
| | | b.ItemName, |
| | | b.ItemMode, |
| | | b.SuppName, |
| | | a.Item_No AS ImgID, |
| | | 0 AS IsChack, |
| | | b.MULTI_SELECT |
| | | FROM MES_QA a |
| | | LEFT JOIN MES_IQC_CONSISTENCY_SJ_DT b ON a.ID = b.PID |
| | | WHERE a.FSUBMIT = 1 |
| | | AND a.QS_TYPE = 1 |
| | | AND a.ITEM_NO = :ITEM_NO |
| | | AND b.ItemName IS NOT NULL |
| | | ").AddParameters(new { ITEM_NO = item.ItemNo }).ToList(); |
| | | |
| | | foreach (var ci in consistencyItems) |
| | | { |
| | | db.Ado.ExecuteCommand(@" |
| | | INSERT INTO MES_IQC_CONSISTENCY_SJ_CK |
| | | (ID, PID, ITEMNAME, ITEMMODE, SUPPNAME, IMGID, ISCHACK, MULTI_SELECT) |
| | | VALUES ( |
| | | F_GETSEQNEXTVALUE('MES_IQC_CONSISTENCY_SJ_CK'), |
| | | :PID, |
| | | :ITEMNAME, |
| | | :ITEMMODE, |
| | | :SUPPNAME, |
| | | :IMGID, |
| | | :ISCHACK, |
| | | :MULTI_SELECT |
| | | )", |
| | | new |
| | | { |
| | | PID = item.gid, |
| | | ITEMNAME = ci.ItemName, |
| | | ITEMMODE = ci.ItemMode, |
| | | SUPPNAME = ci.SuppName, |
| | | IMGID = ci.ImgID, |
| | | ISCHACK = ci.ISCHACK, |
| | | MULTI_SELECT = ci.MULTI_SELECT |
| | | }); |
| | | } |
| | | |
| | | return 1; |
| | | }); |
| | | |
| | | // 5. éæ°å è½½æ£éªé¡¹ç®å¹¶å¤çèªå¨åæ ¼é¡¹ |
| | | item.Items = getQSItems(item.gid, null); |
| | | |
| | | //没æä¸ä¸éçæ£éªé¡¹ç®èªå¨çç¹ä¸ºåæ ¼ |
| | | item.Items.ForEach(s => |
| | | { |
| | | if (s.MaxValue != null || s.StandardValue != null || |
| | | s.MinValue != null) return; |
| | | var detail = new QsItemIpiItemDetail(); |
| | | detail.Pid = s.Id; |
| | | detail.Gid = item.gid; |
| | | detail.Fstand = "â"; |
| | | detail.FcheckResu = "1"; |
| | | detail.UpdateBy = item.StatusUser; |
| | | detail.count = (int?)s.LevelNum; |
| | | if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) return; |
| | | |
| | | var detail = new QsItemIpiItemDetail |
| | | { |
| | | Pid = s.Id, |
| | | Gid = item.gid, |
| | | Fstand = "â", |
| | | FcheckResu = "1", |
| | | UpdateBy = item.StatusUser, |
| | | count = (int?)s.LevelNum |
| | | }; |
| | | |
| | | SetQSItemDetail(detail); |
| | | }); |
| | | |
| | |
| | | |
| | | public bool SJQaSubmit(LLJDto rkjDto) |
| | | { |
| | | |
| | | |
| | | var useTransactionWithOracle = |
| | | SqlSugarHelper.UseTransactionWithOracle(db => |
| | | { |
| | |
| | | |
| | | return useTransactionWithOracle > 0; |
| | | } |
| | | |
| | | public List<Component> getYzxBDlist(string id) |
| | | { |
| | | OracleSQLHelper SQLHelper = new(); |
| | | //æ¥å
å¨ä»¶ |
| | | //var sql1 = |
| | | // string.Format( |
| | | // @"select ITEMNAME from MES_IQC_CONSISTENCY_ck where PID='" + |
| | | // id + "' group by ITEMNAME order by ITEMNAME"); |
| | | |
| | | var sql1 = |
| | | string.Format( |
| | | @"select CASE WHEN max(MULTI_SELECT) is null THEN ''ELSE 'ã'||max(MULTI_SELECT)||'ã' END as A,ITEMNAME as ITEMNAME from MES_IQC_CONSISTENCY_SJ_ck where PID='" + id + "' group by ITEMNAME order by ITEMNAME"); |
| | | //æ¥æç» |
| | | var sql2 = |
| | | string.Format(@"select * from MES_IQC_CONSISTENCY_SJ_ck where PID='" + |
| | | id + "' order by ITEMNAME,ITEMMODE,SUPPNAME"); |
| | | var dataTable1 = SQLHelper.ExecuteQuery(sql1); |
| | | var dataTable2 = SQLHelper.ExecuteQuery(sql2); |
| | | var Components = new List<Component>(); |
| | | |
| | | |
| | | for (var i = 0; i < dataTable1.Rows.Count; i++) |
| | | { |
| | | var component = new Component(); |
| | | component.Name = dataTable1.Rows[i]["A"].ToString() + dataTable1.Rows[i]["ITEMNAME"].ToString(); |
| | | component.Specs = new List<string>(); |
| | | component.Manufacturers = new List<string>(); |
| | | component.Id = new List<string>(); |
| | | component.SelectedSpec = -1; |
| | | component.SelectedMfg = -1; |
| | | var index = 0; |
| | | for (var j = 0; j < dataTable2.Rows.Count; j++) |
| | | if (dataTable2.Rows[j]["ITEMNAME"].ToString() == |
| | | dataTable1.Rows[i]["ITEMNAME"].ToString()) |
| | | { |
| | | component.Specs.Add(dataTable2.Rows[j]["ITEMMODE"] |
| | | .ToString()); |
| | | component.Manufacturers.Add(dataTable2.Rows[j]["SUPPNAME"] |
| | | .ToString()); |
| | | component.Id.Add(dataTable2.Rows[j]["ID"].ToString()); |
| | | if (dataTable2.Rows[j]["ISCHACK"].ToString() == "1") |
| | | { |
| | | component.SelectedSpec = index; |
| | | component.SelectedMfg = index; |
| | | } |
| | | |
| | | index++; |
| | | } |
| | | |
| | | Components.Add(component); |
| | | } |
| | | |
| | | return Components; |
| | | } |
| | | public DataTable getAllInspectors() |
| | | { |
| | | OracleSQLHelper SQLHelper = new(); |
| | | var sql = |
| | | @"select a.USER_NAME label,U.FCODE value from IQC_BEFORE_FROM_SJ a JOIN SYS_USER U ON U.FID=A.SID"; |
| | | return SQLHelper.ExecuteQuery(sql); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸è´æ§é¡¹ç® |
| | | /// </summary> |
| | | public class Component |
| | | { |
| | | public string Name { get; set; } |
| | | public List<string> Specs { get; set; } |
| | | public List<string> Manufacturers { get; set; } |
| | | public List<string> Id { get; set; } |
| | | public int SelectedSpec { get; set; } |
| | | public int SelectedMfg { get; set; } |
| | | } |
| | | public void saveYzxBDlist(string id, DataTable DB) |
| | | { |
| | | OracleSQLHelper SQLHelper = new(); |
| | | //å
æç»ææ¸
空 |
| | | var sql1 = |
| | | string.Format( |
| | | @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=0 where PID='" + |
| | | id + "' "); |
| | | SQLHelper.ExecuteQuery(sql1); |
| | | var rowId = ""; |
| | | for (var i = 0; i < DB.Rows.Count; i++) |
| | | rowId += "'" + DB.Rows[i]["id"] + "',"; |
| | | rowId = rowId.Substring(0, rowId.Length - 1); |
| | | |
| | | |
| | | //ä¿®æ¹ç»æ |
| | | var sql2 = |
| | | string.Format( |
| | | @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=1 where PID='" + |
| | | id + "'and id in(" + rowId + ") "); |
| | | SQLHelper.ExecuteQuery(sql2); |
| | | } |
| | | public string[] YzxImgVerify(string id) |
| | | { |
| | | var msgStr = new string[2]; |
| | | |
| | | OracleSQLHelper SQLHelper = new(); |
| | | //ä¿®æ¹ç»æ |
| | | //var sql2 = string.Format( |
| | | // @"select A.ITEMNAME from ( select 888||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_CK where pid='" + |
| | | // id + "' group by ITEMNAME) A " + |
| | | // "left join MES_QS_IMAGE b on a.id=b.fid where B.id is null order by ITEMNAME"); |
| | | |
| | | |
| | | var sql2 = string.Format( |
| | | @"select A.ITEMNAME from ( select 999||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid='" + id.ToString() + "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where PID='" + id.ToString() + "' and MULTI_SELECT is not null)" + |
| | | "group by ITEMNAME) A" + |
| | | " left join MES_QS_IMAGE b on a.id=b.fid where B.id is null" + |
| | | " union" + |
| | | " select 'åç»ï¼' || MULTI_SELECT as ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid = '" + id.ToString() + "' and MULTI_SELECT is not null and MULTI_SELECT not in(select A.MULTI_SELECT as ITEMNAME from (select 999 || min(id) id, MULTI_SELECT from MES_IQC_CONSISTENCY_SJ_CK where pid = '" + id.ToString() + "' and MULTI_SELECT is not null group by MULTI_SELECT,ITEMNAME) A left join MES_QS_IMAGE b on a.id = b.fid where B.id is not null) group by MULTI_SELECT"); |
| | | |
| | | var db = SQLHelper.ExecuteQuery(sql2); |
| | | if (db.Rows.Count > 0) |
| | | { |
| | | msgStr[1] = "å
å¨ä»¶ï¼"; |
| | | for (var i = 0; i < db.Rows.Count; i++) |
| | | msgStr[1] += db.Rows[i]["ITEMNAME"] + ","; |
| | | msgStr[1] += "æªå®æå¾çä¸ä¼ ï¼è¯·ä¸ä¼ ï¼"; |
| | | msgStr[0] = "1"; |
| | | } |
| | | else |
| | | { |
| | | msgStr[0] = "0"; |
| | | msgStr[1] = "ok"; |
| | | } |
| | | |
| | | return msgStr; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä¿åæ°æ£éªå |
| | | /// </summary> |
| | | /// <param name="NewStaffUserID">æ°æ£éªåID</param> |
| | | /// <param name="userID">ä¿®æ¹äºº</param> |
| | | /// <param name="releaseNo">æ£éªåå·</param> |
| | | /// <returns></returns> |
| | | public string[] SaveCheckBy(string NewStaffUserID, string userID, |
| | | string releaseNo) |
| | | { |
| | | // å®ä¹è¾åºåæ° |
| | | var outputResult = new SugarParameter("o_Result", null, |
| | | System.Data.DbType.Int32, ParameterDirection.Output, |
| | | 4000); |
| | | |
| | | var outputMessage = new SugarParameter("o_Msg", null, |
| | | System.Data.DbType.String, |
| | | ParameterDirection.Output, 4000); |
| | | |
| | | // å®ä¹è¾å
¥åæ° |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new("P_FCHECK_BY", NewStaffUserID, |
| | | System.Data.DbType.String, ParameterDirection.Input), |
| | | new("p_Release_No", releaseNo, |
| | | System.Data.DbType.String, ParameterDirection.Input), |
| | | new("p_User", userID, |
| | | System.Data.DbType.String, ParameterDirection.Input), |
| | | |
| | | outputResult, |
| | | outputMessage |
| | | }; |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // ä½¿ç¨ SqlSugar æ§è¡åå¨è¿ç¨ |
| | | db.Ado.ExecuteCommand( |
| | | "BEGIN Prc_Mes_Pqc_SJ_Update_CheckBy(:P_FCHECK_BY,:p_Release_No,:p_User, :o_Result, :o_Msg); END;", |
| | | parameters.ToArray()); |
| | | |
| | | // è·åè¾åºåæ°çå¼ |
| | | var resultValue = outputResult.Value?.ToString(); |
| | | var messageValue = outputMessage.Value?.ToString(); |
| | | var msg = new string[2]; |
| | | msg[0] = resultValue; |
| | | msg[1] = messageValue; |
| | | return msg; |
| | | } |
| | | |
| | | |
| | | |
| | | } |