using System.Data; 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.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; using static Gs.Toolbox.UtilityHelper; namespace Gs.Wom.WorkService { [ApiGroup(ApiGroupNames.WOM)] public class MesBackFlashController : IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public MesBackFlashController(IHttpContextAccessor httpContextAccessor) { _http = httpContextAccessor; (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); } #region /// /// 读取列表,支持分页 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> GetListPage([FromBody] PageQuery model) { int currentPage = model.currentPage; int everyPageSize = model.everyPageSize; string sortName = string.IsNullOrEmpty(model.sortName) ? "org.FNumber" : model.sortName; string keyWhere = model.keyWhere; System.Text.StringBuilder _w = new StringBuilder(); _w.Append(" from [dbo].[MES_BACK_FLASH] a"); _w.Append(" left join MES_ITEMS i on a.ItemID=i.item_id "); _w.Append(" left join MES_DEPOTS d on a.depotId=d.depot_id "); _w.Append(" left join SYS_DEPARTMENT m on a.departmentId=m.departmentid "); _w.Append(" left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID"); _w.Append(" where 1=1 " + keyWhere); System.Text.StringBuilder sbSql = new StringBuilder(); sbSql.Append("select * from "); sbSql.Append("( "); sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.*,'('+org.FNumber+')'+org.NAME as orgName "); sbSql.Append(",i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel,d.depot_name as depotName,m.departmentname as bmName"); sbSql.Append(_w); sbSql.Append(") as T "); sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize); sbSql.Append(" order by rowindex asc "); sbSql.Append(" select count(1) as intTotal "); sbSql.Append(_w); DataSet dset = new DataSet(); try { dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString()); } catch (Exception ex) { Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error:" + ex.Message); return ReturnDto>.QuickReturn(default(PageList), ReturnCode.Exception, "读取失败"); } PageList _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)//有数据 { int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize); _pglist.total = intTotal; _pglist.everyPageSize = everyPageSize; _pglist.pages = pages; List _dy = dset.Tables[0].TableToDynamicList(); _pglist.list = _dy; } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// 删除实体 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto DeleteModel([FromBody] JArray guidList) { var intArray = guidList.ToObject(); string guid = intArray[0]; int rtnInt = (int)ReturnCode.Default; int cont = 0; try { cont = isChkOrUnChk(guid, 1); if (cont > 0) return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该信息已被审核!"); StringBuilder strSql = new StringBuilder(); strSql.Append(" delete from MES_BACK_FLASH "); strSql.Append(" where guid='" + guid + "'"); int rows = DbHelperSQL.ExecuteSql(strSql.ToString()); rtnInt = rows; } catch (Exception ex) { LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message); rtnInt = (int)ReturnCode.Exception; return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "删除失败," + ex.Message); } if (rtnInt > 0) return ReturnDto.QuickReturn(default(int?), ReturnCode.Success, "操作成功,共删除" + rtnInt.ToString() + "条数据!"); else return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!"); } /// /// 增加实体 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModel([FromBody] dynamic model) { string itemId = model.itemId; string departmentId = model.departmentId; string depotId = model.depotId; int? rtnInt = (int)ReturnCode.Default; dynamic mObj = new ExpandoObject(); mObj.outMsg = ""; mObj.outSum = -1; mObj.outGuid = ""; mObj.outNo = ""; StringBuilder strSql = new StringBuilder(); string guid = Guid.NewGuid().ToString(); strSql.Append(" insert into MES_BACK_FLASH"); strSql.Append(" ([guid] ,[ItemId] ,[departmentId] ,[depotId],createBy,createDate,checkStatus)"); strSql.Append(" values("); strSql.Append(" '" + guid + "','" + itemId + "','" + departmentId + "'," + depotId + ",'" + _userCode + "',getdate(),0)"); try { rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString()); mObj.outMsg = "操作成功!"; mObj.outSum = rtnInt; mObj.outGuid = guid; mObj.outNo = itemId; } catch (Exception ex) { LogHelper.Debug(this.ToString(), "EditModel error:" + ex.Message); rtnInt = (int)ReturnCode.Exception; mObj.outMsg = ex.Message; mObj.outSum = -1; } if (mObj.outSum <= 0) return ReturnDto.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg); return ReturnDto.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg); } /// /// 读取实体 /// /// /// [RequestMethod(RequestMethods.POST)] [AllowAnonymous] public ReturnDto GetModel([FromBody] dynamic model) { dynamic m = new System.Dynamic.ExpandoObject(); System.Text.StringBuilder sbSql = new StringBuilder(); sbSql.Append("select top 1 a.*,org.FID as orgId ,i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel from MES_BACK_FLASH a left join MES_ITEMS i on a.ItemID=i.item_id left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID where 1=1 and a.guid='" + model.guid.ToString() + "' "); try { DataSet dset = new DataSet(); dset = DbHelperSQL.Query(sbSql.ToString()); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { System.Data.DataRow dr = dset.Tables[0].Rows[0]; m = dr.RowToDynamic(); return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); } else return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } catch (Exception ex) { LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } } /// /// 判断是否审核 /// /// /// /// private int isChkOrUnChk(string guidList, int status) { int cont = 0; cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from MES_BACK_FLASH where guid='" + guidList + "' and isnull(checkstatus,0)=" + status + "").ToString()); return cont; } #endregion } }