using Gs.Toolbox; using Gs.Toolbox.ApiCore.Abstract.Mvc; using Gs.Toolbox.ApiCore.Common.Mvc; using Gs.Toolbox.ApiCore.Group; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Data; using System.Data.SqlClient; using System.Dynamic; using System.Text; using static Gs.Toolbox.UtilityHelper; namespace GS.QC.Service { [ApiGroup(ApiGroupNames.QC)] public class IpqcShouManager : IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public IpqcShouManager(IHttpContextAccessor httpContextAccessor) { _http = httpContextAccessor; (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); } /// /// 读取列表,支持分页 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> GetListPage([FromBody] dynamic model) { int currentPage = model.currentPage; int everyPageSize = model.everyPageSize; string sortName = model.sortName; string keyWhere = model.keyWhere; SqlParameter[] parameters = { new("@inCurrentPage", currentPage), new("@inEveryPageSize", everyPageSize), new("@inSortName", sortName), new("@inSortOrder", ""), new("@inQueryWhere", keyWhere), new("@inFid", ""), new("@inP1", ""), new("@inP2", ""), new("@inP3", ""), new("@inP4", "") }; var dset = new DataSet(); var _pglist = new PageList { total = 0, everyPageSize = 0, pages = 0, list = new List() }; try { dset = DbHelperSQL.RunProcedure("[ipqc_shou_lst]", parameters, "0"); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) //有数据 { var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize; _pglist.total = intTotal; _pglist.everyPageSize = everyPageSize; _pglist.pages = pages; var _dy = dset.Tables[0].TableToDynamicList(); _pglist.list = _dy; } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); return ReturnDto>.QuickReturn(_pglist, ReturnCode.Exception, ex.Message); } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// 读取实体 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetModel([FromBody] dynamic model) { string guid = model.guid.ToString(); dynamic m = new ExpandoObject(); m.list = new List(); m.list2 = new List(); SqlParameter[] parameters = { new("@inMainGuid", guid), new("@inP1", ""), new("@inP2", ""), new("@inP3", ""), new("@inP4", "") }; var dset = new DataSet(); try { dset = DbHelperSQL.RunProcedure("[ipqc_shou_get]", parameters, "0"); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { var dr = dset.Tables[0].Rows[0]; m = dr.RowToDynamic(); var _tb = dset.Tables[1].TableToDynamicList(); m.list5 = _tb; } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } /// /// 读取 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetModel12([FromBody] dynamic model) { Guid guid = model.guid; string parentGuid = model.parentGuid; dynamic m = new ExpandoObject(); m.list = new List(); m.list2 = new List(); StringBuilder sb = new StringBuilder(); sb.Append("select * from MES_QA_ITEMS_DETECT_DETAIL12 where parent_guid='" + guid + "' order by fstand asc"); sb.Append(" select d13.*,d5.fcheck_item as fcheckItemd5,d5.ybsl from MES_QA_ITEMS_DETECT_DETAIL13 d13 left join[dbo].[MES_QA_ITEMS_DETECT_DETAIL5] d5 on d13.parent_guid = d5.guid"); sb.Append(" where d13.parent_guid = '" + guid + "'"); sb.Append(" order by d13.fcheck_item asc"); try { DataSet dset = new DataSet(); dset = DbHelperSQL.Query(sb.ToString()); var _tb = dset.Tables[0].TableToDynamicList(); m.list = _tb; var _tb2 = dset.Tables[1].TableToDynamicList(); m.list2 = _tb2; } catch (Exception ex) { LogHelper.Debug(ToString(), "GetModel12 error:" + ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } /// /// 读取web实体 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetModelWeb([FromBody] dynamic model) { string guid = model.guid.ToString(); dynamic m = new ExpandoObject(); SqlParameter[] parameters = { new("@inMainGuid", guid), new("@inP1", ""), new("@inP2", ""), new("@inP3", ""), new("@inP4", "") }; var dset = new DataSet(); try { dset = DbHelperSQL.RunProcedure("[ipqc_shou_get_web]", parameters, "0"); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { var dr = dset.Tables[0].Rows[0]; m = dr.RowToDynamic(); m.list = new List(); DataTable dtDistinct = (new DataView(dset.Tables[1])).ToTable(true, new string[] { "groupName" }); foreach (DataRow DataRow in dtDistinct.Rows) { dynamic _obj = new System.Dynamic.ExpandoObject(); _obj.groupName = DataRow["groupName"].ToString(); _obj.child = new List(); DataRow[] _dtRows = dset.Tables[1].Select("groupName='" + _obj.groupName.ToString() + "'"); if (_dtRows.Length == 0) continue; foreach (DataRow _row in _dtRows) { dynamic _dy = _row.RowToDynamic(); if (_obj.groupName.ToString() == "制热性能") { //水温选择 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel1"].ToString())) _dy.selectedWater = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel1"].ToString()); else _dy.selectedWater = Array.Empty(); //流量选择 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel2"].ToString())) _dy.selectedFlow = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel2"].ToString()); else _dy.selectedFlow = Array.Empty(); //表格数据 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_table"].ToString())) _dy.selecteTable = JsonConvert.DeserializeObject(_row["ipqc_zrxn_table"].ToString()); else _dy.selecteTable = new { }; } _obj.child.Add(_dy); } m.list.Add(_obj); } } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } /// /// 设置 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto SetModelWeb([FromBody] dynamic model) { string guid = model.guid; string strSql = model.strSql; string ziduan = model.ziduan; int? rtnInt = (int)ReturnCode.Default; try { System.Text.StringBuilder sbSql = new StringBuilder(); if (ziduan == "bpwym" || ziduan == "sjwym" || ziduan == "sjtxm") sbSql.Append("update dbo.MES_QA_ITEMS_DETECT_01 set " + strSql + " where guid='" + guid + "'"); else sbSql.Append("update dbo.MES_QA_ITEMS_DETECT_DETAIL5 set " + strSql + " where guid='" + guid + "'"); rtnInt = DbHelperSQL.ExecuteSql(sbSql.ToString()); } catch (Exception ex) { LogHelper.Debug(this.ToString(), "SetModelWeb error:" + ex.Message); rtnInt = (int)ReturnCode.Exception; } if (rtnInt > 0) return ReturnDto.QuickReturn(default(int?), ReturnCode.Success, "操作成功!"); else return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!"); } /// /// 提交检验 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModelSubmit([FromBody] dynamic mode) { string _guid = mode.guid; string _inFieldValue = mode.submitType; dynamic m = new ExpandoObject(); m.outSum = -1; m.outMsg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("ipqc_shou_submit", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@inEdtUserGuid", _userGuid), new("@inOrderGuid", _guid), new("@inFieldValue", _inFieldValue), new("@in1", ""), new("@in2", "") }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); m.outMsg = parameters[0].Value.ToString(); m.outSum = int.Parse(parameters[1].Value.ToString()); } catch (Exception ex) { m.outMsg = ex.Message; LogHelper.Debug(this.ToString(), "ipqc_shou_submit error:" + ex.Message); return ReturnDto.QuickReturn(m, ReturnCode.Default, ex.Message); } finally { conn.Close(); } } } return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!"); } /// /// /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto UpdateTableConfig([FromBody] dynamic model) { string guid = model.guid; string mxguid = model.mxguid; JArray arrayWater = model.selectedWater; JArray arrayFlow = model.selectedFlow; JObject arrayTable = model.selectedTable; string selectedWater = arrayWater.ToString(); string selectedFlow = arrayFlow.ToString(); System.Text.StringBuilder tableData = new StringBuilder(); tableData.Append("{"); foreach (JValue jsonitem in arrayWater) { string jv = jsonitem.ToString().Trim(); var _temp = arrayTable[jv]["temp"]; if (tableData.Length > 2) tableData.Append(","); tableData.Append("'" + jv + "':"); tableData.Append("{"); tableData.Append("'temp':'" + _temp + "'"); foreach (JValue volume in arrayFlow) { var _temp2 = arrayTable[jv][volume.ToString().Trim()]; tableData.Append(",'" + volume.ToString().Trim() + "':'" + _temp2 + "'"); } tableData.Append("}"); } tableData.Append("}"); int? rtnInt = (int)ReturnCode.Default; try { System.Text.StringBuilder sbSql = new StringBuilder(); sbSql.Append("UPDATE MES_QA_ITEMS_DETECT_DETAIL5 SET ipqc_zrxn_sel1 = @selectedWater,ipqc_zrxn_sel2 = @selectedFlow, ipqc_zrxn_table = @tableData WHERE guid = @mxguid"); rtnInt = Gs.Toolbox.DbHelperSQL.ExecuteSql(sbSql.ToString(), new SqlParameter[] { new SqlParameter("@selectedWater", selectedWater), new SqlParameter("@selectedFlow", selectedFlow), new SqlParameter("@tableData", tableData.ToString()), new SqlParameter("@mxguid", mxguid), }); } catch (Exception ex) { LogHelper.Debug(this.ToString(), "SetModelWeb error:" + ex.Message); rtnInt = (int)ReturnCode.Exception; } if (rtnInt > 0) return ReturnDto.QuickReturn(default(int?), ReturnCode.Success, "操作成功!"); else return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!"); } /// /// 读取 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetModelWebMx([FromBody] dynamic model) { string mxGuid = model.mxGuid.ToString(); dynamic m = new ExpandoObject(); var dset = new DataSet(); try { System.Text.StringBuilder sbSql = new StringBuilder(); sbSql.Append("select * from [dbo].[MES_QA_ITEMS_DETECT_DETAIL5] where guid='" + mxGuid + "'"); dset = DbHelperSQL.Query(sbSql.ToString()); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { var _row = dset.Tables[0].Rows[0]; //水温选择 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel1"].ToString())) m.selectedWater = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel1"].ToString()); else m.selectedWater = Array.Empty(); //流量选择 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel2"].ToString())) m.selectedFlow = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel2"].ToString()); else m.selectedFlow = Array.Empty(); //表格数据 if (!string.IsNullOrEmpty(_row["ipqc_zrxn_table"].ToString())) m.selecteTable = JsonConvert.DeserializeObject(_row["ipqc_zrxn_table"].ToString()); else m.selecteTable = new { }; } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } } }