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 Newtonsoft.Json.Linq; using static Gs.Toolbox.UtilityHelper; namespace Gs.Mjgl { [ApiGroup(ApiGroupNames.PerMission)] public class MesMoldManagementManager : IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public MesMoldManagementManager(IHttpContextAccessor httpContextAccessor) { _http = httpContextAccessor; (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); } [RequestMethod(RequestMethods.POST)] public ReturnDto TestConn([FromBody] dynamic _) { var msg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { try { conn.Open(); using (var cmd = new SqlCommand("SELECT GETDATE()", conn)) { cmd.ExecuteScalar(); } msg = "连接成功"; return ReturnDto.QuickReturn("", ReturnCode.Success, msg); } catch (Exception ex) { msg = ex.Message; return ReturnDto.QuickReturn("", ReturnCode.Exception, msg); } finally { conn.Close(); } } } [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("prc_MES_MOLD_MAT_CAP_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(); SqlParameter[] parameters = { new("@inMainGuid", guid), new("@inP1", ""), new("@inP2", ""), new("@inP3", ""), new("@inP4", "") }; var dset = new DataSet(); try { dset = DbHelperSQL.RunProcedure("[prc_MES_MOLD_MAT_CAP_mx]", 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(); } } 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 EditModel([FromBody] dynamic model) { Guid? guid = model.Guid; string moldCode = model.MoldCode; string itemCode = model.ItemCode; int inItemId = model.ItemId; string status = model.Status; int inPackQty = model.PackQty; int inCapacity = model.Capacity; string remark = model.Description; var outMsg = ""; var outSum = -1; var outGuid = ""; var outNo = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[prc_MES_MOLD_MAT_CAP_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", UtilityHelper.CheckGuid(guid)? guid : DBNull.Value), new("@inMoldCode", moldCode), new("@inItemCode", itemCode), new("@inItemId", inItemId), new("@inStatus", status), new("@inPackQty", inPackQty), new("@inCapacity", inCapacity), new("@inRemark", remark), 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(); outMsg = parameters[0].Value.ToString(); outSum = int.Parse(parameters[1].Value.ToString()); outGuid = parameters[2].Value.ToString(); outNo = parameters[3].Value.ToString(); } catch (Exception ex) { LogHelper.Debug(ToString(), "prc_MES_MOLD_MGMT_edt error:" + ex.Message); outMsg = ex.Message; outSum = -1; } finally { conn.Close(); } } } if (outSum <= 0) return ReturnDto.QuickReturn("", ReturnCode.Exception, outMsg); return ReturnDto.QuickReturn(outGuid, ReturnCode.Success, outMsg); } [RequestMethod(RequestMethods.POST)] public ReturnDto DeleteModel([FromBody] dynamic model) { int? rtnInt = (int)ReturnCode.Default; var _outMsg = ""; var _outSum = -1; JArray arr; if (model is JArray) arr = (JArray)model; else arr = JArray.Parse(model.ToString()); using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[prc_MES_MOLD_MAT_CAP_del]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; foreach (var token in arr) { var guidStr = token.ToString(); SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@inOrderGuid", UtilityHelper.CheckGuid(guidStr) ? Guid.Parse(guidStr) : (object)DBNull.Value), new("@inEdtUserGuid", _userGuid) }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; cmd.Parameters.Clear(); 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_MES_MOLD_MAT_CAP_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); } } }