From 8276722de62e0be1e68adf65f150686a236268bd Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期五, 18 七月 2025 10:08:44 +0800 Subject: [PATCH] 产测接口代码提交 --- StandardPda/MES.Service/service/QC/LljService.cs | 1725 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 1,624 insertions(+), 101 deletions(-) diff --git a/StandardPda/MES.Service/service/QC/LljService.cs b/StandardPda/MES.Service/service/QC/LljService.cs index 5e571dc..5b2ad6e 100644 --- a/StandardPda/MES.Service/service/QC/LljService.cs +++ b/StandardPda/MES.Service/service/QC/LljService.cs @@ -1,10 +1,15 @@ -锘縰sing System.Data; +锘縰sing Dm.Config; using Masuit.Tools; using MES.Service.DB; using MES.Service.Dto.service; using MES.Service.Modes; using MES.Service.util; +using Newtonsoft.Json; using SqlSugar; +using System.Data; +using System.Security.Cryptography; +using System.Text; +using System.Text.Json.Serialization; using DbType = System.Data.DbType; @@ -12,12 +17,11 @@ public class LljService { + private static readonly HttpClient client = new(); + public (List<LtsLlj> item, int TotalCount) GetPage(XJPageResult queryObj) { - if (queryObj.createUser.IsNullOrEmpty()) - { - return ([], 0); - } + if (queryObj.createUser.IsNullOrEmpty()) return ([], 0); var db = SqlSugarHelper.GetInstance(); @@ -25,23 +29,64 @@ var totalCount = 0; - var itemIds = GetQaItem(db, queryObj.createUser); + //var itemIds = GetQaItem(db, queryObj.createUser); - var pageList = db.Queryable<LtsLlj>() + var pageList = db + .Queryable<LtsLlj, IqcBefore, VMesQaItemsDetect01, SysUser, + IqcBeforeFrom, SysUser, InspectorChangeLog, SysUser>((a, b, d, + e, f, g, h, i) => + new JoinQueryInfos(JoinType.Left, a.ItemId == b.ItemId, + JoinType.Inner, a.Id == d.Id, + JoinType.Left, a.CreateBy == e.Fcode, + JoinType.Left, f.Id == b.PID, + JoinType.Left, f.Sid == g.Fid, + JoinType.Left, + a.ReleaseNo == h.InspectionNo && h.IsValid == "Y", + JoinType.Left, i.Fcode == h.Inspector + )) .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && "鏈畬鎴�".Equals(queryObj.result), - a => a.FcheckResu == null) + (a, b, d) => a.FcheckResu == null) .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && !"鏈畬鎴�".Equals(queryObj.result), - a => a.FcheckResu != null) - .WhereIF( - itemIds is { Length: > 0 }, - a => itemIds.Contains(a.ItemId)) - .WhereIF(id > 0, a => a.Id == id) - .OrderByDescending(a => a.Id) + (a, b, d) => a.FcheckResu != null) + //.WhereIF( + // itemIds is { Length: > 0 }, + // (a, b, c) => itemIds.Contains(a.ItemId)) + .WhereIF(id > 0, (a, b, d) => a.Id == id) + .WhereIF(queryObj.arrivalFilter >= 0, (a, b, d) => a.IsArrival == queryObj.arrivalFilter) + .WhereIF(queryObj.createUser!="PL017"&& queryObj.UserIndex=="0", (a, b, d, e, f, g,h, i) => (g.Fcode == queryObj.createUser || i.Fcode == queryObj.createUser))//鍒ゆ柇姝ゅ崟鐨勬楠屽憳锛屾垨鑰呮楠屼负绌哄氨鏄剧ず姝ゅ崟鎹� + //鍔犵瓫閫夋潯浠�,鏍规嵁渚涘簲鍟嗭紝鐗╂枡缂栫爜锛岀墿鏂欏悕绉帮紝椤圭洰鎼滅储 + //.WhereIF(queryObj.SearchValue != null && queryObj.SearchValue != "", + //(a, b, d) => (a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()) + //|| a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) + //|| a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()) + //|| d.ProjectCodes.ToLower().Contains(queryObj.SearchValue.ToLower()) + //)) + + //鏍规嵁涓嬫媺妗嗘悳绱㈡潯浠剁瓫閫夛紙0椤圭洰, 1鐗╂枡缂栧彿, 2鐗╂枡鍚嶇О, 3渚涘簲鍟�, 4閲囪喘鍛橈級 + .WhereIF(queryObj.SelectedIndex == "0" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (d.ProjectCodes.ToLower().Contains(queryObj.SearchValue.ToLower()))) + .WhereIF(queryObj.SelectedIndex == "1" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))) + .WhereIF(queryObj.SelectedIndex == "2" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()))) + .WhereIF(queryObj.SelectedIndex == "3" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()))) + .WhereIF(queryObj.result== "宸插畬鎴�", (a, b, d, e) => (a.IqcDate>= queryObj.startDate.ToDateTime()&& a.IqcDate <= queryObj.endDate.ToDateTime().AddDays(1))) + .WhereIF(queryObj.result == "宸插畬鎴�" && queryObj.state!= "鎵�鏈夌姸鎬�",(a, b, d, e) => (a.FcheckResu == queryObj.state)) + // .WhereIF(queryObj.result == "鏈畬鎴�" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d, e) => (e.Fname.ToLower().Contains(queryObj.SearchValue.ToLower()))) + //.OrderByDescending((a, b, d) => a.Id) + .Select((a, b, d, e, f, g, h, i) => new LtsLlj + { + //UserName = g.Fname, + //UserName = (i.Fname!=null ||i.Fname!="") ? i.Fname : g.Fname, + UserName = i.Fname != null || i.Fname != "" ? i.Fname : g.Fname, + FIRST = d.First, + CreateUserName = e.Fname, + NewFngDesc = d.NewFngDesc, + ProjectCodes = d.ProjectCodes + }, true) .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); + return (pageList, totalCount); } @@ -71,96 +116,897 @@ //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁� - public List<MesQaItemsDetectDetail5> SetItems(string itemNo, + //public List<MesQaItemsDetectDetail5> SetItems(string itemNo, + // decimal quantity, string releaseNo) + //{ + // var db = SqlSugarHelper.GetInstance(); + + + // var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && + // s.ISENABLED == 1 + // && s.ItemNo == itemNo && s.FTYPE == "1").Count(); + + // if (count <= 0) return []; + + // var mesQaIqcItem = db + // .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1 + // && s.ItemNo == itemNo && s.FTYPE == "1").Select( + // b => new MesQaItemsDetectDetail5 + // { + // ReleaseNo = releaseNo, + // FacLevel = b.FacLevel, + // FcheckItem = b.FcheckItem, + // FdownAllow = b.FdownAllow, + // FcheckLevel = b.FREQUENCY, + // Fstand = b.FSTAND, + // FupAllow = b.FupAllow, + // SampleSizeNo = b.SampleSizeNo, + // FenterQty = 0, + // Factory = "1000", + // Company = "1000", + + + // // FcheckItemDesc = "0", + // // FcheckResu = "0", + // FcheckTool = b.FcheckTool, + // FspecRequ = b.FspecRequ + // // FtextType = "0", + // // Funit = "0", + // // LastupdateBy = "0", + // // ProcNo = "0", + // // WorkshopCenterCode = "0" + // }).ToList(); + + // mesQaIqcItem.ForEach(item => + // { + // var LEV = item.FcheckLevel switch + // { + // null => "" // 榛樿鍊� + // , + // { } s when s.Contains("S1") => "B.FLEVEL_S1", + // { } s when s.Contains("S2") => "B.FLEVEL_S2", + // { } s when s.Contains("S3") => "B.FLEVEL_S3", + // { } s when s.Contains("S4") => "B.FLEVEL_S4", + // { } s when s.Contains("(I)") => "B.FLEVEL_I", + // { } s when s.Contains("(II)") => "B.FLEVEL_II", + // { } s when s.Contains("(III)") => "B.FLEVEL_III", + // _ => "" + // }; + + // if (string.IsNullOrEmpty(LEV)) + // throw new Exception(item.SampleSizeNo + "鐨勬楠屾按骞充笉姝g‘"); + + // 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.SampleSizeNo + "' 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.SampleSizeNo + "涓嬬殑" + quantity + + // "杩欎釜鑼冨洿涓嬫病鏈夊尮閰嶅埌妫�楠岄」鐩�"); + + // var result = ExtractSubstring(item.FacLevel, '(', ')'); + + // if (string.IsNullOrEmpty(result)) + // throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity + + // "鎷掓敹姘村钩涓嶆纭�"); + + // 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.SampleSizeNo + "' AND SAMPLE_SIZE_WORD= '" + maxBillNo + + // "'"; + // var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql); + + // item.CheckQyt = resultClass.FSAMPLE_SIZE_WORD; + // item.FreQty = resultClass.Result; + // }); + + // return mesQaIqcItem; + //} + + + /// <summary> + /// 璋冪敤瀛樺偍杩囩▼锛岄噸鏂拌幏鍙栨楠岄」鐩� + /// </summary> + /// <param name="itemNo"></param> + /// <param name="quantity"></param> + /// <param name="releaseNo"></param> + /// <returns></returns> + public string[] SetItems(string itemNo, decimal quantity, string releaseNo) { + // 瀹氫箟杈撳嚭鍙傛暟 + var outputResult = new SugarParameter("o_Result", null, + DbType.Int32, ParameterDirection.Output, + 4000); + + var outputMessage = new SugarParameter("o_Msg", null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("P_RELEASE_NO", releaseNo, + DbType.String, ParameterDirection.Input), + outputResult, + outputMessage + }; + var db = SqlSugarHelper.GetInstance(); + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_QA_ITEM_INSERT_BTN(:P_RELEASE_NO, :o_Result, :o_Msg); END;", + parameters.ToArray()); - var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && - s.ISENABLED == 1 - && s.ItemNo == itemNo && s.FTYPE == "1").Count(); - - if (count <= 0) return []; - - var mesQaIqcItem = db - .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1 - && s.ItemNo == itemNo && s.FTYPE == "1").Select( - b => new MesQaItemsDetectDetail5 - { - ReleaseNo = releaseNo, - FacLevel = b.FacLevel, - FcheckItem = b.FcheckItem, - FdownAllow = b.FdownAllow, - FcheckLevel = b.FREQUENCY, - Fstand = b.FSTAND, - FupAllow = b.FupAllow, - SampleSizeNo = b.SampleSizeNo, - FenterQty = 0, - Factory = "1000", - Company = "1000", + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + var resultValue = outputResult.Value?.ToString(); + var messageValue = outputMessage.Value?.ToString(); + var msg = new string[2]; + msg[0] = resultValue; + msg[1] = messageValue; + return msg; + } - // FcheckItemDesc = "0", - // FcheckResu = "0", - FcheckTool = b.FcheckTool, - FspecRequ = b.FspecRequ - // FtextType = "0", - // Funit = "0", - // LastupdateBy = "0", - // ProcNo = "0", - // WorkshopCenterCode = "0" - }).ToList(); + /// <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, + DbType.Int32, ParameterDirection.Output, + 4000); - mesQaIqcItem.ForEach(item => + var outputMessage = new SugarParameter("o_Msg", null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> { - string LEV = item.FcheckLevel switch + new("P_FCHECK_BY", NewStaffUserID, + DbType.String, ParameterDirection.Input), + new("p_Release_No", releaseNo, + DbType.String, ParameterDirection.Input), + new("p_User", userID, + DbType.String, ParameterDirection.Input), + + outputResult, + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN Prc_Mes_Iqc_Qa_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; + } + + + public string[] SaveSysSubmit(SysSubmit sysSubmit) + { + // 瀹氫箟杈撳嚭鍙傛暟 + var outputResult = new SugarParameter("o_Result", null, + DbType.Int32, ParameterDirection.Output, + 4000); + + var outputMessage = new SugarParameter("o_Msg", null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("PI_BILLNO", sysSubmit.PI_BILLNO, + DbType.String, ParameterDirection.Input), + new("PI_USER", sysSubmit.PI_USER, + DbType.String, ParameterDirection.Input), + new("PI_SAMPLE_STATUS", sysSubmit.PI_SAMPLE_STATUS, + DbType.String, ParameterDirection.Input), + new("PI_SAMPLE_TYPE", sysSubmit.PI_SAMPLE_TYPE, + DbType.String, ParameterDirection.Input), + new("PI_SAMPLE_REASON", sysSubmit.PI_SAMPLE_REASON, + DbType.String, ParameterDirection.Input), + new("PI_INSPECT_TYPE", sysSubmit.PI_INSPECT_TYPE, + DbType.String, ParameterDirection.Input), + new("PI_SAMPLE_PREPARATION", sysSubmit.PI_SAMPLE_PREPARATION, + DbType.String, ParameterDirection.Input), + new("PI_URGENCY", sysSubmit.PI_URGENCY, + DbType.String, ParameterDirection.Input), + new("PI_FIRMWAREVERSION", sysSubmit.PI_FIRMWAREVERSION, + DbType.String, ParameterDirection.Input), + new("PI_HARDWAREVERSION", sysSubmit.PI_HARDWAREVERSION, + DbType.String, ParameterDirection.Input), + new("PI_REMARK", sysSubmit.PI_REMARK, + DbType.String, ParameterDirection.Input), + outputResult, + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_MES_IQC_QC_SYSSUBMIT(:PI_BILLNO,:PI_USER,:PI_SAMPLE_STATUS,:PI_SAMPLE_TYPE,:PI_SAMPLE_REASON,:PI_INSPECT_TYPE,:PI_SAMPLE_PREPARATION,:PI_URGENCY,:PI_FIRMWAREVERSION,:PI_HARDWAREVERSION,:PI_REMARK, :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; + } + + public static string BuildCurrentSign(string paramJson, string appSecret) + { + var commonDict = new Dictionary<string, string>(); + var jsonDict = + JsonConvert + .DeserializeObject<Dictionary<string, object>>(paramJson); + + var keyList = new List<string>(); + foreach (var entry in jsonDict) + { + if (entry.Key.Equals("sign", StringComparison.OrdinalIgnoreCase)) + continue; + + var value = entry.Value?.ToString().Trim() ?? ""; + commonDict[entry.Key] = value; + keyList.Add(entry.Key); + } + + // 鎸夊瓧姣嶉『搴忔帓搴忛敭 + keyList.Sort((x, y) => string.Compare(x, y, StringComparison.Ordinal)); + + // 鎷兼帴绛惧悕瀛楃涓� + var sb = new StringBuilder(); + foreach (var key in keyList) sb.Append(commonDict[key]).Append(":"); + sb.Append(appSecret); + + // 璁$畻MD5 + using var md5 = MD5.Create(); + var hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes(sb.ToString())); + + return BitConverter.ToString(hashBytes) + .Replace("-", "") + .ToLowerInvariant(); + } + + public async Task<string[]> SignDelivery(string id) + { + var msg = new string[2]; + //鍙戣捣璇锋眰锛岀鏀堕�佽揣鍗� + + try + { + var requestData = XkyCommonParam.GetInit(); + requestData.body = new BodyParam { - null => "" // 榛樿鍊� - , - { } s when s.Contains("S1") => "B.FLEVEL_S1", - { } s when s.Contains("S2") => "B.FLEVEL_S2", - { } s when s.Contains("S3") => "B.FLEVEL_S3", - { } s when s.Contains("S4") => "B.FLEVEL_S4", - { } s when s.Contains("(I)") => "B.FLEVEL_I", - { } s when s.Contains("(II)") => "B.FLEVEL_II", - { } s when s.Contains("(III)") => "B.FLEVEL_III", - _ => "" + erpCode = "Z106", + dnXkNo = id }; - if (string.IsNullOrEmpty(LEV)) - throw new Exception(item.SampleSizeNo + "鐨勬楠屾按骞充笉姝g‘"); + // 搴忓垪鍖栦负JSON + var json = JsonConvert.SerializeObject(requestData); - 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.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity + - " AND " + - quantity + "<=B.LOT_TO"; + using (var client = new HttpClient()) + { + // 璁剧疆璇锋眰鍐呭 + var content = new StringContent(json, Encoding.UTF8, + "application/json"); + // 鍙戦�丳OST璇锋眰 + var response = await client.PostAsync( + "https://openapi.xiekeyun.com/delivery/updateDeliveryStatus.json", + content); + // 澶勭悊鍝嶅簲 + if (response.IsSuccessStatusCode) + { + var responseBody = + await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<XKYApiResponse>( + responseBody); + //鎴愬姛鍚庢墜鍔ㄤ笅鎺ㄥ埌璐у崟 + if (result.Result == 1) + { + // 瀹氫箟杈撳嚭鍙傛暟 - var maxBillNo = db.Ado.SqlQuerySingle<string>(sql); + var outputMessage = new SugarParameter("C_RESULT", null, + DbType.String, + ParameterDirection.Output, 4000); - if (string.IsNullOrEmpty(maxBillNo)) - throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity + - "杩欎釜鑼冨洿涓嬫病鏈夊尮閰嶅埌妫�楠岄」鐩�"); + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("C_IN_STR", "閫佽揣鍗曠鏀禰BTNOK[PL017[" + id, + DbType.String, ParameterDirection.Input), + outputMessage + }; - var result = ExtractSubstring(item.FacLevel, '(', ')'); + var db = SqlSugarHelper.GetInstance(); - if (string.IsNullOrEmpty(result)) - throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity + - "鎷掓敹姘村钩涓嶆纭�"); + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;", + parameters.ToArray()); - 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.SampleSizeNo + "' AND SAMPLE_SIZE_WORD= '" + maxBillNo + - "'"; - var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql); - item.CheckQyt = resultClass.FSAMPLE_SIZE_WORD; - item.FreQty = resultClass.Result; - }); + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� - return mesQaIqcItem; + var messageValue = outputMessage.Value?.ToString(); + + msg[0] = "0"; + msg[1] = messageValue; + } + else + { + if (result.ErrorMsg == "鍑鸿揣鍗曟嵁涓嶆槸宸查�佽揣鐘舵�侊紒") + { + // 瀹氫箟杈撳嚭鍙傛暟 + + var outputMessage = new SugarParameter("C_RESULT", + null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("C_IN_STR", "閫佽揣鍗曠鏀禰BTNOK[PL017[" + id, + DbType.String, ParameterDirection.Input), + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;", + parameters.ToArray()); + + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + + var messageValue = outputMessage.Value?.ToString(); + + msg[0] = "0"; + msg[1] = messageValue; + } + else + { + msg[0] = "1"; + msg[1] = "002[" + id + "绛炬敹澶辫触锛�" + result.ErrorMsg; + } + } + } + else + { + msg[0] = "1"; + msg[1] = $"002[{id}绛炬敹澶辫触锛岃姹傚け璐ワ紝鐘舵�佺爜锛歿response.StatusCode}"; + } + } + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"002[璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + + //msg[0] = "1"; + //msg[1] = responseBody; + return msg; + } + public async Task<string[]> SignDelivery2(string id,string c_user) + { + var msg = new string[2]; + //鍙戣捣璇锋眰锛岀鏀堕�佽揣鍗� + + try + { + var requestData = XkyCommonParam.GetInit(); + requestData.body = new BodyParam + { + erpCode = "Z106", + dnXkNo = id + }; + + // 搴忓垪鍖栦负JSON + var json = JsonConvert.SerializeObject(requestData); + + using (var client = new HttpClient()) + { + // 璁剧疆璇锋眰鍐呭 + var content = new StringContent(json, Encoding.UTF8, + "application/json"); + // 鍙戦�丳OST璇锋眰 + var response = await client.PostAsync( + "https://openapi.xiekeyun.com/delivery/updateDeliveryStatus.json", + content); + // 澶勭悊鍝嶅簲 + if (response.IsSuccessStatusCode) + { + var responseBody = + await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<XKYApiResponse>( + responseBody); + //鎴愬姛鍚庢墜鍔ㄤ笅鎺ㄥ埌璐у崟 + if (result.Result == 1) + { + // 瀹氫箟杈撳嚭鍙傛暟 + + var outputMessage = new SugarParameter("C_RESULT", null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("C_IN_STR", "閫佽揣鍗曠鏀禰BTNOK["+c_user+"[" + id, + DbType.String, ParameterDirection.Input), + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;", + parameters.ToArray()); + + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + + var messageValue = outputMessage.Value?.ToString(); + + msg[0] = "0"; + msg[1] = messageValue; + } + else + { + if (result.ErrorMsg == "鍑鸿揣鍗曟嵁涓嶆槸宸查�佽揣鐘舵�侊紒") + { + // 瀹氫箟杈撳嚭鍙傛暟 + + var outputMessage = new SugarParameter("C_RESULT", + null, + DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("C_IN_STR", "閫佽揣鍗曠鏀禰BTNOK["+c_user+"[" + id, + DbType.String, ParameterDirection.Input), + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;", + parameters.ToArray()); + + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + + var messageValue = outputMessage.Value?.ToString(); + + msg[0] = "0"; + msg[1] = messageValue; + } + else + { + msg[0] = "1"; + msg[1] = "002[" + id + "绛炬敹澶辫触锛�" + result.ErrorMsg; + } + } + } + else + { + msg[0] = "1"; + msg[1] = $"002[{id}绛炬敹澶辫触锛岃姹傚け璐ワ紝鐘舵�佺爜锛歿response.StatusCode}"; + } + } + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"002[璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + + //msg[0] = "1"; + //msg[1] = responseBody; + return msg; + } + public async Task<string[]> getTestXKYSign() + { + var msg = new string[2]; + //鍙戣捣璇锋眰锛岀鏀堕�佽揣鍗� + + try + { + var requestData = XkyCommonParam.GetTestInit(); + + msg[0] = "0"; + msg[1] = requestData.ToJsonString(); + + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"002[璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + + //msg[0] = "1"; + //msg[1] = responseBody; + return msg; + } + /// <summary> + /// 鍙戝竷鎼哄浜戞敼鍠勬姤鍛� + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public async Task<string[]> SaveXkyImproveReport(string id) + { + var msg = new string[2]; + try + { + //琛ㄥご鏁版嵁 + string MianSql= "select " + + "B.SUPP_NO," + + "CASE WHEN REPORTTYPE = '鍑嗗叆璇勪及鏀瑰杽' THEN '1' WHEN REPORTTYPE = '鐗╂枡鍑嗗叆鏀瑰杽' THEN '2' WHEN REPORTTYPE = '缁╂晥鏀瑰杽' THEN '3' WHEN REPORTTYPE = '杩濈害浜嬮」鏀瑰杽' THEN '4' ELSE '3' END AS DEFECT_LEVEL," + + "(REQUIRED_DATE - TO_DATE('1970-01-01 08:00:00', 'yyyy-mm-dd hh24:mi:ss')) * 86400000 AS timestamp from MES_IQC_ABNORMAL_FEEDBACK A left join MES_SUPPLIER B on A.SUPPLIER_ID=B.ID " + + "where A.id = '"+id+"'"; + //琛ㄨ韩鏁版嵁 + string DetailSql = "select " + + "DEFECT_ANALYSIS," + + "CASE WHEN DEFECT_LEVEL = '杞诲井缂洪櫡' THEN 0 WHEN DEFECT_LEVEL = '涓ラ噸缂洪櫡' THEN 1 WHEN DEFECT_LEVEL = '鑷村懡缂洪櫡' THEN 2 ELSE 0 END AS DEFECT_LEVEL from MES_IQC_ABNORMAL_FEEDBACK_DETS " + + "where FID='"+id+"' order by id asc"; + OracleSQLHelper SQLHelper = new(); + + DataTable MianDB= SQLHelper.ExecuteQuery(MianSql); + DataTable DetailDB = SQLHelper.ExecuteQuery(DetailSql); + + var requestData = XkyinnerVendorParam.GetInit(); + + requestData.body = new BodyImproveReport + { + erpCode = "C003", + innerVendorCode = MianDB.Rows[0]["SUPP_NO"].ToString(), + reportType= int.Parse(MianDB.Rows[0]["DEFECT_LEVEL"].ToString()), + completionDate= Convert.ToInt64(MianDB.Rows[0]["timestamp"]) , + lineList= new List<LineItem>(), + isPublish=1 + }; + for (int i = 0; i < DetailDB.Rows.Count; i++) + { + requestData.body.lineList.Add(new LineItem + { + questionDesc = DetailDB.Rows[i]["DEFECT_ANALYSIS"].ToString(), + questionGrade = Convert.ToInt32(DetailDB.Rows[i]["DEFECT_LEVEL"]) + }); + } + // 搴忓垪鍖栦负JSON + var json = JsonConvert.SerializeObject(requestData); + + using (var client = new HttpClient()) + { + // 璁剧疆璇锋眰鍐呭 + var content = new StringContent(json, Encoding.UTF8, + "application/json"); + // 鍙戦�丳OST璇锋眰 + var response = await client.PostAsync( + "https://openapi.xiekeyun.com/improveReport/save.json", + content); + // 澶勭悊鍝嶅簲 + if (response.IsSuccessStatusCode) + { + var responseBody = + await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<XKYApiResponse>( + responseBody); + //鎴愬姛鍚庤繑鍥炵粨鏋滐紝鍓嶅彴鍝嶅簲 + if (result.Result == 1) + { + string updateSql = "update MES_IQC_ABNORMAL_FEEDBACK set SRM_IMPROVE_NO='"+ result.Data.irXkNo + "',REPORT_RELEASE=1 where ID='"+id+"'"; + SQLHelper.ExecuteQuery(updateSql); + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "0"; + msg[1] = $"鍙戝竷鎴愬姛锛�"; + + } + else + { + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "1"; + msg[1] = $"鍙戝竷澶辫触锛亄result.ErrorMsg}"; + } + } + else + { + msg[0] = "1"; + msg[1] = $"{id}鍙戝竷澶辫触锛岃姹傚け璐ワ紝鐘舵�佺爜锛歿response.StatusCode}"; + } + } + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + return msg; + } + + + + /// <summary> + /// 鍒锋柊鎼哄浜戞敼鍠勬姤鍛婏紝鏇存柊渚涘簲鍟嗗洖澶嶄俊鎭� + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public async Task<string[]> FlushedXkyImproveReport(string id) + { + var msg = new string[2]; + try + { + string MianSql = ""; + if (id!=null &&id!="") + { + //鏌ヨ娌℃湁渚涘簲鍟嗗洖澶嶇殑鏀瑰杽鎶ュ憡 + MianSql = "select SRM_IMPROVE_NO from MES_IQC_ABNORMAL_FEEDBACK where REPORT_RELEASE=1 and SRM_IMPROVE_NO is not null and SUPPLIER_REPLY_RELEASE=0 and SRM_IMPROVE_NO="+id+""; + } + else + { + //鏌ヨ娌℃湁渚涘簲鍟嗗洖澶嶇殑鏀瑰杽鎶ュ憡 + MianSql = "select SRM_IMPROVE_NO from MES_IQC_ABNORMAL_FEEDBACK where REPORT_RELEASE=1 and SRM_IMPROVE_NO is not null and SUPPLIER_REPLY_RELEASE=0"; + } + + + OracleSQLHelper SQLHelper = new(); + + DataTable MianDB = SQLHelper.ExecuteQuery(MianSql); + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "0"; + msg[1] = $"鍒锋柊鎴愬姛锛�"; + for (int i = 0; i < MianDB.Rows.Count; i++) + { + var requestData = XkyFlushedrVendorParam.GetInit(); + + requestData.body = new BodyFlushedImproveReport + { + erpCode = "C003", + irXkNo = MianDB.Rows[i]["SRM_IMPROVE_NO"].ToString() + }; + + // 搴忓垪鍖栦负JSON + var json = JsonConvert.SerializeObject(requestData); + + using (var client = new HttpClient()) + { + // 璁剧疆璇锋眰鍐呭 + var content = new StringContent(json, Encoding.UTF8, + "application/json"); + // 鍙戦�丳OST璇锋眰 + var response = await client.PostAsync( + "https://openapi.xiekeyun.com/improveReport/details.json", + content); + // 澶勭悊鍝嶅簲 + if (response.IsSuccessStatusCode) + { + var responseBody = + await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<XKYApiResponse>( + responseBody); + //鎴愬姛鍚庤繑鍥炵粨鏋滐紝鍓嶅彴鍝嶅簲 + int resultCode = 0; + if (result.Result == 1) + { + //鏌ヨmes绯荤粺瀵瑰簲鎼哄浜戞敼鍠勬姤鍛婄殑ID + string xkyIDSql = "select B.id from MES_IQC_ABNORMAL_FEEDBACK A left join MES_IQC_ABNORMAL_FEEDBACK_DETS B on A.id = B.FID where SRM_IMPROVE_NO = '"+ MianDB.Rows[i]["SRM_IMPROVE_NO"].ToString() + "' order by B.id asc"; + string updateSql = ""; + DataTable xkyIDDB = SQLHelper.ExecuteQuery(xkyIDSql); + for (int j = 0; j < result.Data.lineList.Count; j++) + { + if (result.Data.lineList[j].reasonAnalyze!=null && result.Data.lineList[j].reasonAnalyze != "") + { + + if (resultCode==0) + { + //鏀逛緵搴斿晢鍥炲鐘舵�� + updateSql = "update MES_IQC_ABNORMAL_FEEDBACK set SUPPLIER_REPLY_RELEASE=1 where SRM_IMPROVE_NO='"+ MianDB.Rows[i]["SRM_IMPROVE_NO"].ToString() + "'"; + resultCode++; + SQLHelper.ExecuteQuery(updateSql); + } + + //鏀规槑缁� + updateSql = "update MES_IQC_ABNORMAL_FEEDBACK_DETS set " + + "ROOT_CAUSE_ANALYSIS='"+ result.Data.lineList[j].reasonAnalyze + "'," + + "IMPROVEMENT_ACTION='"+ result.Data.lineList[j].correctPreventMeasure + "'," + + "ESTIMATED_DATE=to_date('" + ParseUnixTimestamp(result.Data.lineList[j].expectedFinishTime) + "','MM/DD/YYYY HH24:MI:SS') where id='" + xkyIDDB.Rows[j]["id"].ToString() + "'"; + SQLHelper.ExecuteQuery(updateSql); + } + } + + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "0"; + msg[1] = $"鍒锋柊鎴愬姛锛�"; + + } + else + { + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "1"; + msg[1] = $"鍒锋柊澶辫触锛亄result.ErrorMsg}"; + } + } + else + { + msg[0] = "1"; + msg[1] = $"{id}鍒锋柊澶辫触锛岃姹傚け璐ワ紝鐘舵�佺爜锛歿response.StatusCode}"; + } + } + } + + + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + return msg; + } + + + + /// <summary> + /// 瀹℃牳鎼哄浜戞敼鍠勬姤鍛� + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public async Task<string[]> AuditXkyImproveReport(string id) + { + var msg = new string[2]; + try + { + string MianSql = ""; + MianSql = "select SRM_IMPROVE_NO,CASE WHEN JUDGMENT_RESULT = '宸查��鍥�' THEN 4 WHEN JUDGMENT_RESULT = '涓嶅悎鏍�' THEN 5 WHEN JUDGMENT_RESULT = '缁撴' THEN 6 END AS status from MES_IQC_ABNORMAL_FEEDBACK where SRM_IMPROVE_NO=" + id + ""; + //琛ㄨ韩鏁版嵁 + string DetailSql = "select VERIFICATION_DESC, CASE WHEN VERIFICATION_RESULT = '鍚堟牸' THEN 0 WHEN VERIFICATION_RESULT = '涓嶅悎鏍�' THEN 1 END AS DEFECT_LEVEL from MES_IQC_ABNORMAL_FEEDBACK A left join MES_IQC_ABNORMAL_FEEDBACK_DETS b on A.id=B.FID where SRM_IMPROVE_NO= '" + id+"'"; + OracleSQLHelper SQLHelper = new(); + + DataTable MianDB = SQLHelper.ExecuteQuery(MianSql); + DataTable DetailDB = SQLHelper.ExecuteQuery(DetailSql); + var requestData = XkyAuditVendorParam.GetInit(); + + requestData.body = new BodyAuditImproveReport + { + erpCode = "C003", + irXkNo = MianDB.Rows[0]["SRM_IMPROVE_NO"].ToString(), + status= Convert.ToInt32(MianDB.Rows[0]["status"]), + lineList=new List<AuditLineItem>() + }; + for (int i = 0; i < DetailDB.Rows.Count; i++) + { + requestData.body.lineList.Add(new AuditLineItem + { + lineNo = i+1, + checkStatus = Convert.ToInt32(DetailDB.Rows[i]["DEFECT_LEVEL"]), + checkPeopleNumber = "031", + checkExplain = DetailDB.Rows[i]["VERIFICATION_DESC"].ToString() + + }); + } + + // 搴忓垪鍖栦负JSON + var json = JsonConvert.SerializeObject(requestData); + + using (var client = new HttpClient()) + { + // 璁剧疆璇锋眰鍐呭 + var content = new StringContent(json, Encoding.UTF8, + "application/json"); + // 鍙戦�丳OST璇锋眰 + var response = await client.PostAsync( + "https://openapi.xiekeyun.com/improveReport/audit.json", + content); + // 澶勭悊鍝嶅簲 + if (response.IsSuccessStatusCode) + { + var responseBody = + await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<XKYApiResponse>( + responseBody); + //鎴愬姛鍚庤繑鍥炵粨鏋滐紝鍓嶅彴鍝嶅簲 + int resultCode = 0; + if (result.Result == 1) + { + + + //鏀圭姸鎬�,鏀逛负瀹岀粨鐘舵�� + string updateSql = "update MES_IQC_ABNORMAL_FEEDBACK set CLOSURE_STATUS=1,CLOSED_DATE=sysdate where SRM_IMPROVE_NO='" + id + "'"; + SQLHelper.ExecuteQuery(updateSql); + + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "0"; + msg[1] = $"瀹℃牳鎴愬姛锛�"; + + } + else + { + // 瀹氫箟杈撳嚭鍙傛暟 + msg[0] = "1"; + msg[1] = $"瀹℃牳澶辫触锛亄result.ErrorMsg}"; + } + } + else + { + msg[0] = "1"; + msg[1] = $"{id}瀹℃牳澶辫触锛岃姹傚け璐ワ紝鐘舵�佺爜锛歿response.StatusCode}"; + } + } + + } + catch (Exception ex) + { + msg[0] = "1"; + msg[1] = $"璇锋眰澶辫触锛岀姸鎬佺爜锛歿ex.Message}"; + } + + return msg; + } + + + + static DateTime ParseUnixTimestamp(string timestampStr) + { + // 灏濊瘯瑙f瀽涓洪暱鏁村瀷 + if (long.TryParse(timestampStr, out long timestamp)) + { + // 鏍规嵁浣嶆暟鍒ゆ柇鍗曚綅锛堢鎴栨绉掞級 + if (timestampStr.Length <= 10) // 绉掔骇 (10浣嶆垨鏇村皯) + { + return DateTimeOffset.FromUnixTimeSeconds(timestamp).UtcDateTime; + } + else // 姣绾� + { + return DateTimeOffset.FromUnixTimeMilliseconds(timestamp).UtcDateTime; + } + } + throw new FormatException("鏃犳晥鐨勬椂闂存埑鏍煎紡"); } private string ExtractSubstring(string input, char startChar, char endChar) @@ -231,13 +1077,22 @@ public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo, decimal? id) { + + OracleSQLHelper SQLHelper = new(); + var sql = + @"update MES_QA_ITEMS_DETECT_01 set FCHECK_BEGIN_DATE=sysdate where RELEASE_NO='"+ releaseNo + "' and FCHECK_BEGIN_DATE is null"; + SQLHelper.ExecuteQuery(sql); + + var db = SqlSugarHelper.GetInstance(); - return db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>( - (a, b) => - new JoinQueryInfos(JoinType.Left, a.Id == b.MainId)) + return db + .Queryable<MesQaItemsDetectDetail5, + MesQaItemsDetectDetail12>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.MainId)) .Where((a, b) => a.ReleaseNo == releaseNo) // .WhereIF(id > 0, (a, b) => a.Id == id) + .OrderByDescending((a, b) => a.FcheckItem) .GroupBy((a, b) => new { a.Id, @@ -253,7 +1108,8 @@ a.FspecRequ, a.FreQty, a.CheckQyt, - a.FcheckResu + a.FcheckResu, + a.FcheckItemDesc }).Select((a, b) => new MesQaItemsDetectDetail5 { Id = a.Id, @@ -272,9 +1128,20 @@ Factory = "1000", Company = "1000", FenterQty = SqlFunc.AggregateCount(b.Id), - FcheckResu = a.FcheckResu + FcheckResu = a.FcheckResu, + FcheckItemDesc = a.FcheckItemDesc }).ToList(); } + + + public DataTable getAllInspectors() + { + OracleSQLHelper SQLHelper = new(); + var sql = + @"select a.USER_NAME label,U.FCODE value from IQC_BEFORE_FROM a JOIN SYS_USER U ON U.FID=A.SID"; + return SQLHelper.ExecuteQuery(sql); + } + public int SetQSItemDetail(MesQaItemsDetectDetail12 detail) { @@ -341,8 +1208,8 @@ // result = "涓嶅悎鏍�"; else if (noCount >= QsItemOqcItem.FreQty) result = "涓嶅悎鏍�"; - var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle( - db => + var useTransactionWithOracle = + SqlSugarHelper.UseTransactionWithOracle(db => { var commit = 0; commit += db.Updateable<MesQaItemsDetectDetail5>() @@ -479,6 +1346,173 @@ return rkjDto; } + + public DataTable getFromInfo(string BarCode) + { + OracleSQLHelper SQLHelper = new(); + var sql = string.Format( + @"select b.ID,b.LOT_NO,b.RELEASE_NO,b.FSUBMIT from MES_INV_ITEM_BARCODES A + left join MES_QA_ITEMS_DETECT_01 B on A.BILL_NO=b.LOT_NO and A.ITEM_ID=b.ITEM_ID + where ITEM_BARCODE='" + BarCode + "'and b.ID is not null"); + return SQLHelper.ExecuteQuery(sql); + } + public int getFromMJCount(string BarCode) + { + OracleSQLHelper SQLHelper = new(); + var sql = string.Format( + @"select count(*) count from MES_INV_ITEM_BARCODES A + left join MES_INV_ITEM_ARN_DETAIL B on A.BILL_NO=b.CBILL_NO and A.ITEM_ID=b.ITEM_ID + where ITEM_BARCODE='"+ BarCode + "' and CHECK_STATES='鍏嶆'"); + return Convert.ToInt32(SQLHelper.ExecuteQuery(sql).Rows[0]["count"]); + } + + public DataTable getImgBDlist(string id) + { + OracleSQLHelper SQLHelper = new(); + var sql = + string.Format( + @"select id,FID,IMAGE_DATA from MES_QS_IMAGE where FID=" + id + + ""); + return SQLHelper.ExecuteQuery(sql); + } + + 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_ck where PID='"+id+"' group by ITEMNAME order by ITEMNAME"); + //鏌ユ槑缁� + var sql2 = + string.Format(@"select * from MES_IQC_CONSISTENCY_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 getBlmsItem() + { + OracleSQLHelper SQLHelper = new(); + //鏌ヤ笉鑹弿杩� + var sql1 = @"select DEFECT_NAME + from MES_DEFECT_CODE A + left join MES_DEFECT_TYPE X ON X.TYPE_NO = A.DEFECT_SORT AND X.COMPANY = A.COMPANY AND X.FACTORY = A.FACTORY"; + + return SQLHelper.ExecuteQuery(sql1); + } + + public DataTable getBlmsItem(string id) + { + OracleSQLHelper SQLHelper = new(); + //鏌ヤ笉鑹弿杩� + var sql1 = string.Format( + @"select FCHECK_ITEM,FUNIT from mes_qa_items_detect_detail5 f where RELEASE_NO='" + + id + "' and FUNIT is not null order by FCHECK_ITEM"); + + return SQLHelper.ExecuteQuery(sql1); + } + + public void saveYzxBDlist(string id, DataTable DB) + { + OracleSQLHelper SQLHelper = new(); + //鍏堟妸缁撴灉娓呯┖ + var sql1 = + string.Format( + @"update MES_IQC_CONSISTENCY_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_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 888||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_CK where pid='"+id.ToString()+ "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_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_CK where pid = '"+id.ToString()+ "' and MULTI_SELECT is not null and MULTI_SELECT not in(select A.MULTI_SELECT as ITEMNAME from (select 888 || min(id) id, MULTI_SELECT from MES_IQC_CONSISTENCY_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; + } + public int UpdateQSItemDetail(MesQaItemsDetectDetail12 detail) { var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => @@ -501,7 +1535,7 @@ return withOracle; } -//鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺 + //鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺 private int updateDetail5(MesQaItemsDetectDetail12 detail) { var db = SqlSugarHelper.GetInstance(); @@ -532,8 +1566,8 @@ return SqlSugarHelper.UseTransactionWithOracle(db => { return db.Updateable<MesQaItemsDetect01>() - // .SetColumns(it => - // it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊� + .SetColumns(it => + it.FngDesc == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊� .Where(it => it.ReleaseNo == dto.releaseNo) .ExecuteCommand(); }); @@ -545,8 +1579,8 @@ return SqlSugarHelper.UseTransactionWithOracle(db => { return db.Updateable<MesQaItemsDetectDetail5>() - // .SetColumns(it => - // it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊� + .SetColumns(it => + it.Funit == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊� .Where(it => it.Id == dto.pid) .ExecuteCommand(); }); @@ -576,7 +1610,7 @@ return withOracle; } - public bool IqcQaSubmit(LLJDto dto) + public string[] IqcQaSubmit(LLJDto dto) { var (factory, company) = UserUtil.GetFactory(dto.userNo); try @@ -615,14 +1649,503 @@ // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� var resultValue = outputResult.Value?.ToString(); var messageValue = outputMessage.Value?.ToString(); - - if ("1".Equals(resultValue)) throw new Exception(messageValue); - - return true; + var msg = new string[2]; + msg[0] = resultValue; + msg[1] = messageValue; + return msg; } catch (Exception ex) { throw new Exception(ex.Message); } } + + /// <summary> + /// 浠嶶9鑾峰彇鏂欏彿鍥剧焊鍒楄〃 + /// </summary> + /// <param name="Type">u9No锛歶9鐗╂枡缂栧彿</param> + /// <param name="U9No">type锛�1锛氬浘绾歌鏍间功 2锛氳繘鏂欐楠屾枃浠� </param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public async Task<string[]> GetFileUrlByU9List(string Type, string U9No) + { + try + { + var requestUrl = + $"https://erp.dream-maker.com/api/public/getFileUrlByU9No?u9No={Uri.EscapeDataString(U9No)}&type={Type}"; + var response = await client.GetAsync(requestUrl); + response.EnsureSuccessStatusCode(); // 妫�鏌TTP鐘舵�佺爜 + var responseContent = await response.Content.ReadAsStringAsync(); + var result = + JsonConvert.DeserializeObject<ApiResponse>(responseContent); + + if (result.Status == 0 && result.Data != null) return result.Data; + + return null; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } + + /// <summary> + /// 鎼哄浜戝瘑閽� + /// </summary> + public class DataAcquisitionConfiguration + { + //娴嬭瘯鐜 + public const string TEST_COMPANY_CODE = "55958795"; + public const string TEST_APP_KEY = "ab2d86b6dffabcc81dca6855c727c246"; + + public const string TEST_APP_SECRET = + "01b17babe2a96d5ebd802e67709f33d1"; + + public const string TEST_ERP_CODE = "Z106"; + + //姝e紡鐜 + public const string COMPANY_CODE = "72505985"; + public const string APP_KEY = "a2866f03bb7f76387bfb1a98001f0e31"; + public const string APP_SECRET = "f13bd1bcb130f0090ed92dc021e5f4e1"; + public const string ERP_CODE = "Z106"; + } + + [Serializable] + public class ApiCommonParam + { + //鍙戞斁缁欑敤鎴风殑Key + public string appKey { get; set; } + + //鎺ュ彛鐗堟湰 + public string version { get; set; } + + //鏁版嵁鎵�灞炲叕鍙哥紪鐮� + public string ownerCompanyCode { get; set; } + + //鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + public string operateCompanyCode { get; set; } + + //绛惧悕 + public string sign { get; set; } + + //鏃堕棿鎴� + public long? timestamps { get; set; } + ////鎵╁睍瀛楁 + //public object Reserver { get; set; } + } + + [Serializable] + public class BodyParam + { + public string erpCode { get; set; } + public string dnXkNo { get; set; } + } + [Serializable] + public class BodyFlushedImproveReport + { + public string erpCode { get; set; } + public string irXkNo { get; set; } + } + [Serializable] + public class BodyAuditImproveReport + { + public string erpCode { get; set; } + public string irXkNo { get; set; } + public int status { get; set; } + /// <summary> + /// 鍗曡韩鍒楄〃 + /// </summary> + public List<AuditLineItem> lineList { get; set; } + + } + public class AuditLineItem + { + /// <summary> + /// 椤规 + /// </summary> + public int lineNo { get; set; } + /// <summary> + /// 妫�鏍哥粨鏋� 0:鍚堟牸,1:涓嶅悎鏍� + /// </summary> + public int checkStatus { get; set; } + /// <summary> + /// 妫�鏍镐汉宸ュ彿 + /// </summary> + public string checkExplain { get; set; } + /// <summary> + /// 妫�鏍歌鏄� + /// </summary> + public string checkPeopleNumber { get; set; } + } + + [Serializable] + public class BodyImproveReport + { + /// <summary> + /// 璇锋眰鑰呯敤鎴稥RP甯愬彿 + /// </summary> + public string erpCode { get; set; } + /// <summary> + /// 鍐呴儴渚涘簲鍟嗙紪鐮� + /// </summary> + public string innerVendorCode { get; set; } + /// <summary> + /// 鎶ュ憡绫诲瀷:1 鍑嗗叆璇勪及鏀瑰杽,2 鐗╂枡鍑嗗叆鏀瑰杽,3 缁╂晥鏀瑰杽,4 杩濈害浜嬮」鏀瑰杽 + /// </summary> + public int reportType { get; set; } // 鏍规嵁JSON鍊间娇鐢╥nt + /// <summary> + /// 瀹屾垚鏃ユ湡(姣鏃堕棿鎴�) + /// </summary> + public long completionDate { get; set; } + + // 鏃ユ湡鎵╁睍瀛楁锛堝瓧绗︿覆鏍煎紡锛� + public string platformExtendN01 { get; set; } + + public string platformExtendN02 { get; set; } + + public string platformExtendN03 { get; set; } + /// <summary> + /// 鏄惁鑷姩鍙戝竷 0:鍚� 1:鏄� 榛樿锛氬惁 + /// </summary> + public int isPublish { get; set; } // 鏍规嵁JSON鍊间娇鐢╥nt + /// <summary> + /// 鍒╂鼎涓績/宸ュ巶缂栫爜 + /// </summary> + public string profitCenterCode { get; set; } + /// <summary> + /// 鍒╂鼎涓績/宸ュ巶鍚嶇О + /// </summary> + public string profitCenterName { get; set; } + /// <summary> + /// 鍗曡韩鍒楄〃 + /// </summary> + public List<LineItem> lineList { get; set; } + } + + [Serializable] + public class LineItem + { + /// <summary> + /// 闂鎻忚堪 + /// </summary> + public string questionDesc { get; set; } + /// <summary> + /// 闂绛夌骇 0:娆¤,1:閲嶈,2:鑷村懡 + /// </summary> + public int questionGrade { get; set; } // 鏍规嵁JSON鍊间娇鐢╥nt + } + public class XkyCommonParam + { + public ApiCommonParam commonParam { get; set; } + public BodyParam body { get; set; } + + public static XkyCommonParam GetInit() + { + var apiParam = new ApiCommonParam + { + // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + appKey = DataAcquisitionConfiguration.APP_KEY, + // 鎺ュ彛鐗堟湰 + version = "1.0", + // 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + // 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + // 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + }; + + + var appSecret = DataAcquisitionConfiguration.APP_SECRET; + + // 鐢熸垚绛惧悕 + var sign = BuildCurrentSign( + JsonConvert.SerializeObject(apiParam), + appSecret); + apiParam.sign = sign; + + return new XkyCommonParam + { + commonParam = apiParam + }; + } + public static XkyCommonParam GetTestInit() + { + var apiParam = new ApiCommonParam + { + // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + appKey = DataAcquisitionConfiguration.TEST_APP_KEY, + // 鎺ュ彛鐗堟湰 + version = "1.0", + // 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + }; + + + var appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET; + + // 鐢熸垚绛惧悕 + var sign = BuildCurrentSign( + JsonConvert.SerializeObject(apiParam), + appSecret); + apiParam.sign = sign; + + return new XkyCommonParam + { + commonParam = apiParam + }; + } + } + + public class XkyinnerVendorParam + { + public ApiCommonParam commonParam { get; set; } + public BodyImproveReport body { get; set; } + + public static XkyinnerVendorParam GetInit() + { + var apiParam = new ApiCommonParam + { + //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + //appKey = DataAcquisitionConfiguration.APP_KEY, + //// 鎺ュ彛鐗堟湰 + //version = "1.0", + //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + + // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + appKey = DataAcquisitionConfiguration.TEST_APP_KEY, + // 鎺ュ彛鐗堟湰 + version = "1.0", + // 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + }; + + + // var appSecret = DataAcquisitionConfiguration.APP_SECRET; + var appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET; + + // 鐢熸垚绛惧悕 + var sign = BuildCurrentSign( + JsonConvert.SerializeObject(apiParam), + appSecret); + apiParam.sign = sign; + + return new XkyinnerVendorParam + { + commonParam = apiParam + }; + } + + } + public class XkyFlushedrVendorParam + { + public ApiCommonParam commonParam { get; set; } + public BodyFlushedImproveReport body { get; set; } + + public static XkyFlushedrVendorParam GetInit() + { + var apiParam = new ApiCommonParam + { + //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + //appKey = DataAcquisitionConfiguration.APP_KEY, + //// 鎺ュ彛鐗堟湰 + //version = "1.0", + //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + + // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + appKey = DataAcquisitionConfiguration.TEST_APP_KEY, + // 鎺ュ彛鐗堟湰 + version = "1.0", + // 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + }; + + + // var appSecret = DataAcquisitionConfiguration.APP_SECRET; + var appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET; + + // 鐢熸垚绛惧悕 + var sign = BuildCurrentSign( + JsonConvert.SerializeObject(apiParam), + appSecret); + apiParam.sign = sign; + + return new XkyFlushedrVendorParam + { + commonParam = apiParam + }; + } + + } + public class XkyAuditVendorParam + { + public ApiCommonParam commonParam { get; set; } + public BodyAuditImproveReport body { get; set; } + + public static XkyAuditVendorParam GetInit() + { + var apiParam = new ApiCommonParam + { + //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + //appKey = DataAcquisitionConfiguration.APP_KEY, + //// 鎺ュ彛鐗堟湰 + //version = "1.0", + //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE, + //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + + // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey + appKey = DataAcquisitionConfiguration.TEST_APP_KEY, + // 鎺ュ彛鐗堟湰 + version = "1.0", + // 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮� + operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃 + ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE, + // 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級 + timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + }; + + + // var appSecret = DataAcquisitionConfiguration.APP_SECRET; + var appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET; + + // 鐢熸垚绛惧悕 + var sign = BuildCurrentSign( + JsonConvert.SerializeObject(apiParam), + appSecret); + apiParam.sign = sign; + + return new XkyAuditVendorParam + { + commonParam = apiParam + }; + } + + } + + /// <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; } + } + + /// <summary> + /// 鏂欏彿鍥剧焊鎺ュ彛杩斿洖瀵硅薄 + /// </summary> + public class ApiResponse + { + [JsonProperty("status")] public int Status { get; set; } + + [JsonProperty("message")] public string Message { get; set; } + + [JsonProperty("data")] public string[] Data { get; set; } + + [JsonProperty("totalCount")] public int TotalCount { get; set; } + } + + /// <summary> + /// 鎼哄浜戞帴鍙h繑鍥炲璞� + /// </summary> + public class XKYApiResponse + { + [JsonProperty("errorCode")] public string ErrorCode { get; set; } + + [JsonProperty("errorMsg")] public string ErrorMsg { get; set; } + + [JsonProperty("result")] public int Result { get; set; } + + [JsonProperty("data")] public Root Data { get; set; } + + [JsonProperty("curServerTime")] public long CurServerTime { get; set; } + + // 濡傛灉闇�瑕佹椂闂磋浆鎹㈠彲浠ユ坊鍔犺繖涓睘鎬� + public DateTime ServerTime => DateTimeOffset + .FromUnixTimeMilliseconds(CurServerTime).DateTime; + } + public class Root + { + /// <summary> + /// + /// </summary> + public string irXkNo { get; set; } + + public List<LineListItem> lineList { get; set; } + + } + public class LineListItem + { + /// <summary> + /// 椤规鍙� + /// </summary> + public int lineNo { get; set; } + /// <summary> + /// 闂鎻忚堪 + /// </summary> + public string questionDesc { get; set; } + /// <summary> + /// 闂绛夌骇 0:娆¤,1:閲嶈,2:鑷村懡 + /// </summary> + public int questionGrade { get; set; } + /// <summary> + /// 鍘熷洜鍒嗘瀽 + /// </summary> + public string reasonAnalyze { get; set; } + /// <summary> + /// 绾犳棰勯槻鎺柦 + /// </summary> + public string correctPreventMeasure { get; set; } + /// <summary> + /// 璐熻矗浜� + /// </summary> + public string principal { get; set; } + /// <summary> + /// 棰勮瀹屾垚鏃堕棿瀵瑰簲鐨勬椂闂存埑 + /// </summary> + public string expectedFinishTime { get; set; } + /// <summary> + /// 妫�鏍歌鏄� + /// </summary> + public string checkExplain { get; set; } + /// <summary> + /// 妫�鏍镐汉濮撳悕 + /// </summary> + public string checkPeopleName { get; set; } + /// <summary> + /// 妫�鏍哥粨鏋� 0:鍚堟牸,1:涓嶅悎鏍� + /// </summary> + public string checkStatus { get; set; } + } } \ No newline at end of file -- Gitblit v1.9.3