using System.Collections; using System.Data; using System.Data.SqlClient; using System.Dynamic; using System.Text; 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 static Gs.Toolbox.UtilityHelper; namespace GS.QC.Service { [ApiGroup(ApiGroupNames.QC)] public class FqcManager : IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public FqcManager(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("[fqc_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("[fqc_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(); System.Text.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, "读取失败!"); } /// /// 增加或编辑实体 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModel([FromBody] dynamic model) { Guid? guid = model.guid; //主键 string djType = model.djType; string fbatchQty = model.fbatchQty; string lifnr = model.lifnr; string suppId = model.suppId; string lineId = model.lineId; string itemId = model.itemId; string remarks = model.remarks; string epTag = model.epTag; string fzrId = model.fzrId; string msg = model.msg; string fmanageNo = model.fmanageNo; string lotNo1 = model.lotNo1; string lotNo = model.lotNo; string freceQty = model.freceQty;//判定结果 string fngHandle = model.fngHandle;//处置结果 string fmrmode = model.fmrmode;//工序 string workNo = model.workNo;//反工单号 string zrType = model.zrType;//责任判定 string kbList = model.kbList; dynamic mObj = new ExpandoObject(); mObj.outMsg = ""; mObj.outSum = -1; mObj.outGuid = ""; mObj.outNo = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[fqc_edt]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@outGuid", SqlDbType.UniqueIdentifier), new("@outNo", SqlDbType.NVarChar, 300), new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value), new("@txt_djType", djType), new("@txt_fbatchQty", fbatchQty), new("@txt_lifnr",lifnr), new("@txt_suppId", suppId), new("@txt_lineId",lineId), new("@txt_itemId",itemId), new("@txt_remarks", remarks), new("@txt_workNo",workNo), new("@txt_epTag",epTag), new("@txt_fzrId",fzrId), new("@txt_msg",msg), new("@txt_fmanageNo",fmanageNo), new("@freceQty",freceQty), new("@txt_lotNo1",lotNo1), new("@txt_fngHandle",fngHandle), new("@txt_lotNo",lotNo), new("@txt_fmrmode",fmrmode), new("@txt_zrType",zrType), new("@kbList",kbList), new("@inEdtUserGuid", _userGuid), }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; parameters[2].Direction = ParameterDirection.Output; parameters[3].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); mObj.outMsg = parameters[0].Value.ToString(); mObj.outSum = int.Parse(parameters[1].Value.ToString()); mObj.outGuid = parameters[2].Value.ToString(); mObj.outNo = parameters[3].Value.ToString(); } catch (Exception ex) { LogHelper.Debug(ToString(), "fqc_edt error:" + ex.Message); mObj.outMsg = ex.Message; mObj.outSum = -1; } finally { conn.Close(); } } } //保存完主表后,保存明细 if (mObj.outSum > 0) { Hashtable SQLStringList = new Hashtable(); foreach (var m in model.list) { string _guid = m.guid5.ToString(); string _defectLevel = m.defectLevel.ToString(); string _defectDetails = m.defectDetails.ToString(); SQLStringList.Add("update MES_QA_ITEMS_DETECT_DETAIL5 set defect_level='" + _defectLevel + "',defect_details=@defect_details where guid='" + _guid + "' ", new SqlParameter[] { new SqlParameter("@defect_details", _defectDetails) }); } if (SQLStringList.Count > 0) { try { Gs.Toolbox.DbHelperSQL.ExecuteSqlTranRtn(SQLStringList); } catch (Exception ex) { Gs.Toolbox.LogHelper.Debug(this.ToString(), ex.Message); mObj.outMsg = (mObj.outMsg + ex.Message); } } } if (mObj.outSum <= 0) return ReturnDto.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg); return ReturnDto.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg); } /// /// 删除主表或明细 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto DeleteModelOrMx([FromBody] dynamic model) { int? rtnInt = (int)ReturnCode.Default; Guid? guid = model.guid; var _outMsg = ""; var _outSum = -1; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[fqc_del]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@inOrderGuid", UtilityHelper.CheckGuid(guid) ? guid : DBNull.Value), new("@inEdtUserGuid", _userGuid), }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); _outMsg = parameters[0].Value.ToString(); _outSum = int.Parse(parameters[1].Value.ToString()); } catch (Exception ex) { LogHelper.Debug(ToString(), "prc_QT_del error:" + ex.Message); _outMsg = ex.Message; _outSum = -1; } finally { conn.Close(); } } } if (_outSum <= 0) return ReturnDto.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg); return ReturnDto.QuickReturn(rtnInt, ReturnCode.Success, _outMsg); } /// /// fqc时选择daa /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> SelectFqcDaa([FromBody] dynamic model) { int currentPage = model.currentPage; int everyPageSize = model.everyPageSize; string sortName = model.sortName; string keyWhere = model.keyWhere; var dset = new DataSet(); try { using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[fqc_select_daa]", conn)) { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@inCurrentPage", currentPage), new("@inEveryPageSize", everyPageSize), new("@inSortName", sortName), new("@inSortOrder", ""), new("@inQueryWhere", keyWhere), new("@inP1", ""), new("@inP2", "") }; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); using (var dt = new SqlDataAdapter(cmd)) { dt.Fill(dset, "0"); } } conn.Close(); } } catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message); return ReturnDto>.QuickReturn( default(PageList), ReturnCode.Exception, "读取失败"); } var _pglist = new PageList { total = 0, everyPageSize = 0, pages = 0, list = new List() }; 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; } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// fqc时选择Box /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> SelectFqcBox([FromBody] dynamic model) { int currentPage = model.currentPage; int everyPageSize = model.everyPageSize; string sortName = model.sortName; string keyWhere = model.keyWhere; string daaNo = model.daaNo; var dset = new DataSet(); try { using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[fqc_select_box]", conn)) { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@inCurrentPage", currentPage), new("@inEveryPageSize", everyPageSize), new("@inSortName", sortName), new("@inSortOrder", ""), new("@inQueryWhere", keyWhere), new("@daaNo", daaNo), new("@inP1", ""), new("@inP2", "") }; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); using (var dt = new SqlDataAdapter(cmd)) { dt.Fill(dset, "0"); } } conn.Close(); } } catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message); return ReturnDto>.QuickReturn( default(PageList), ReturnCode.Exception, "读取失败"); } var _pglist = new PageList { total = 0, everyPageSize = 0, pages = 0, list = new List() }; 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; } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// 质量,审核,反审核,驳回 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModelSubmitZhiLiang([FromBody] dynamic mode) { string _guid = mode.guid; string _inFieldValue = mode.inFieldValue; dynamic m = new ExpandoObject(); m.outSum = -1; m.outMsg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("fqc_zhiLiang", 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) { LogHelper.Debug(this.ToString(), "fqc_zhiLiang 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 GetModel14([FromBody] dynamic model) { string parentGuid = model.parentGuid; dynamic m = new ExpandoObject(); m.list = new List(); System.Text.StringBuilder sb = new StringBuilder(); sb.Append(" select qc14.tbBarcode,ITEM_BARCODE,QUANTITY,DAA_001"); sb.Append(" ,cast( isnull( tb.IS_CHECK,0) as bit) as isCheck,tb.CHECK_DATE,tb.CHECK_BY"); sb.Append(", line.name as lineName,dw.fname as dwName"); sb.Append(", qc.fcheck_resu,qc.frece_qty,qc.CHECK_STATES"); sb.Append(", daa003 as itemName,daa029 as itemNo"); sb.Append(", 0 as rkQty,0 as wrkQty"); sb.Append(" from [dbo].[MES_QA_ITEMS_DETECT_DETAIL14] qc14 left join[MES_INV_ITEM_BARCODES_TBMX] tb on qc14.tbBarcode = tb.ABOUT_TB_BARCODE"); sb.Append(" left join[dbo].[MES_QA_ITEMS_DETECT_01] qc on qc14.[qcGuid] = qc.guid"); sb.Append(" left join WOMDAA daa on daa.guid = qc.about_Guid"); sb.Append(" left join MES_WORKSHOP_LINE line on line.id = daa.daa015"); sb.Append(" left join MES_UNIT dw on dw.id = daa.daa005"); sb.Append(" where qc14.qcGuid ='" + parentGuid + "' and qc.guid = '" + parentGuid + "'"); try { DataSet dset = new DataSet(); dset = DbHelperSQL.Query(sb.ToString()); var _tb = dset.Tables[0].TableToDynamicList(); m.list = _tb; } catch (Exception ex) { LogHelper.Debug(ToString(), "GetModel14 error:" + ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } /// /// /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EdtModel14([FromBody] dynamic model) { string pGuid = model.pGuid; //这是检验单guid string itemBarCode = model.itemBarCode; var _outMsg = ""; int? _outSum = -1; dynamic m = new ExpandoObject(); using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[fqc_14edit]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@inEdtUserGuid", _userGuid), new("@inOrderGuid1", pGuid), new("@inP1", itemBarCode), }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); _outMsg = parameters[0].Value.ToString(); _outSum = int.Parse(parameters[1].Value.ToString()); } catch (Exception ex) { LogHelper.Debug(ToString(), "fqc_14edit error:" + ex.Message); _outMsg = ex.Message; _outSum = -1; } finally { conn.Close(); } } } if (_outSum <= 0) { return ReturnDto.QuickReturn(m, ReturnCode.Default, "操作失败:"+ _outMsg); } dynamic dy = new { parentGuid = pGuid }; return GetModel14(dy); } #region 提交检验 /// /// 提交检验 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModelSubmit([FromBody] dynamic mode) { string _guid = mode.guid; dynamic m = new ExpandoObject(); m.outSum = -1; m.outMsg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("fqc_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", 1), 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(), "fqc_submit error:" + ex.Message); return ReturnDto.QuickReturn(m, ReturnCode.Default, ex.Message); } finally { conn.Close(); } } } return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!"); } #endregion } }