using Learun.Application.Base.SystemModule; using Learun.Application.TwoDevelopment.ZZDT_EC; using Learun.Util; using Learun.Util.SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.Http.Description; namespace Learun.Application.Web.AppApi { /// /// 数据字典接口(dataitem和dataitemdetail) /// [RoutePrefix("api/DataItemApi")] [HandlerApiLogin(FilterMode.Ignore)] public class DataItemApiController : WebApiControllerBase { private DataItemIBLL dataItemIBLL = new DataItemBLL(); private ec_dataitemIBLL ec_dataitemIBLL = new ec_dataitemBLL(); ///// ///// 根据分类编号获取数据字典明细(公司级) ///// ///// 分类编号 ///// //[HttpGet] //public IHttpActionResult GetCodeList(string itemCode) //{ // try // { // var data = dataItemIBLL.GetDetailList(itemCode); // return Success(data); // } // catch (Exception ex) // { // return Fail(ex.Message); // } //} /// /// /// /// /// /// [HttpPost] [HandlerApiLogin(FilterMode.Enforce)] public IHttpActionResult SaveDetailForm(ec_dataitemdetailEntity strEntity, string ProjectId) { var tableName = ProjectSugar.TableName(ProjectId); var list = SqlSugarHelper.Db.Queryable().AS(tableName).Where(x => x.DataItemID == strEntity.DataItemID || x.DataItemCode == strEntity.ItemCode).ToList(); if (list != null && !string.IsNullOrEmpty(strEntity.DataItemName) && !string.IsNullOrEmpty(strEntity.DataItemCode)) { strEntity.IsEnabled = 1; var res = ec_dataitemIBLL.SaveDetailEntity(strEntity.DataItemDetailID, strEntity, ProjectId); return Success(res); } return Fail("分类不存在"); } /// /// /// /// /// /// [HttpPost] [HandlerApiLogin(FilterMode.Enforce)] public IHttpActionResult DeleteDetail(string DetailID, string ProjectId) { ec_dataitemIBLL.DeleteDetail(DetailID, ProjectId); return Success("保存成功!"); } /// /// 根据分类编号获取数据字典明细(项目级) /// /// 分类编号 /// 项目ID,如果为空就是公司级。 /// [HttpGet] [HandlerApiLogin(FilterMode.Enforce)] public IHttpActionResult GetDetails(string projectId, string itemCode) { try { if (string.IsNullOrEmpty(projectId)) { var dataCompanyLevel = dataItemIBLL.GetDetailList(itemCode); return Success(dataCompanyLevel); } SqlSugarHelper.Db.BeginTran(); var dataitemTableName = ProjectSugar.TableName(projectId); var itemcodes = new List() { GlobalObject.dataitemName_SignalManage, GlobalObject.enumlist_signalGroup, "Exten_Alarm_Group", "Alarm_Blocking_Group", "Maker", "Alarm" }; #region 没有就新增 var items = SqlSugarHelper.Db.Queryable().AS(dataitemTableName).Where(x => itemcodes.Contains(x.DataItemCode)).ToList(); var upDataItem = items.FirstOrDefault(x => x.DataItemCode == GlobalObject.dataitemName_SignalManage); if (upDataItem == null) { upDataItem = new ec_dataitemEntity(); upDataItem.Create();//DataItemID upDataItem.UpDataItemID = "0"; upDataItem.DataItemName = GlobalObject.dataitemName_SignalManage; upDataItem.DataItemCode = GlobalObject.dataitemName_SignalManage; upDataItem.OrderID = 6; upDataItem.IsEnabled = 1; upDataItem.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(upDataItem).AS(dataitemTableName).ExecuteCommand(); } if (!items.Any(x => x.DataItemCode == GlobalObject.enumlist_signalGroup)) { var item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = upDataItem.DataItemID; item.DataItemName = "信号分组"; item.DataItemCode = GlobalObject.enumlist_signalGroup; item.OrderID = 1; item.IsEnabled = 1; item.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } if (!items.Any(x => x.DataItemCode == "Exten_Alarm_Group")) { var item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = upDataItem.DataItemID; item.DataItemName = "延伸报警组"; item.DataItemCode = "Exten_Alarm_Group"; item.OrderID = 2; item.IsEnabled = 1; item.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } if (!items.Any(x => x.DataItemCode == "Alarm_Blocking_Group")) { var item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = upDataItem.DataItemID; item.DataItemName = "报警阻断组"; item.DataItemCode = "Alarm_Blocking_Group"; item.OrderID = 4; item.IsEnabled = 1; item.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } if (!items.Any(x => x.DataItemCode == "Maker")) { var item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = upDataItem.DataItemID; item.DataItemName = "厂商"; item.DataItemCode = "Maker"; item.OrderID = 10; item.IsEnabled = 1; item.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } if (!items.Any(x => x.DataItemCode == "Alarm")) { var item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = upDataItem.DataItemID; item.DataItemName = "报警"; item.DataItemCode = "Alarm"; item.OrderID = 6; item.IsEnabled = 1; item.IsAllowEdit = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } #endregion if (itemCode == GlobalObject.enumlist_signalGroup) { var tableName = ProjectSugar.TableName(projectId); //数据字典 var groups = SqlSugarHelper.Db.Queryable().AS(tableName) .Where(x => !string.IsNullOrEmpty(x.Signal_Group)) .GroupBy(x => x.Signal_Group).Select(x => x.Signal_Group).ToList();//这里可能为空的,因为现在虚拟点也在这里 var dataitemDetailTableName = ProjectSugar.TableName(projectId); var item = SqlSugarHelper.Db.Queryable().AS(dataitemTableName).First(x => x.DataItemCode == GlobalObject.enumlist_signalGroup); if (item == null) { item = new ec_dataitemEntity(); item.Create(); item.UpDataItemID = "0"; item.DataItemName = "信号分组"; item.DataItemCode = GlobalObject.enumlist_signalGroup; item.OrderID = 5; item.IsEnabled = 1; SqlSugarHelper.Db.Insertable(item).AS(dataitemTableName).ExecuteCommand(); } var list = SqlSugarHelper.Db.Queryable().AS(dataitemDetailTableName) .Where(x => x.DataItemID == item.DataItemID && groups.Contains(x.DataItemCode)).ToList(); var details = new List(); var max = list.Max(x => x.OrderID); groups.ForEach(x => { if (!list.Any(y => y.DataItemID == item.DataItemID && y.DataItemCode == x)) { var detail = new ec_dataitemdetailEntity(); detail.Create(); detail.DataItemID = item.DataItemID; detail.UpDataItemDetailID = "0"; detail.DataItemName = "excel导入时新增,请编辑其正确含义"; detail.DataItemCode = x; detail.OrderID = ++max; detail.IsEnabled = 1; details.Add(detail); } }); SqlSugarHelper.Db.Insertable(details).AS(dataitemDetailTableName).ExecuteCommand(); }//遍历信号里的组,如果没有就加枚举 SqlSugarHelper.Db.CommitTran(); var data = ec_dataitemIBLL.GetDetailList(itemCode, "", projectId, false); return Success(data); } catch (Exception ex) { SqlSugarHelper.Db.RollbackTran(); return Fail(ex.Message); } } /// /// (计量单位)根据计量单位分类ID获取计量单位数据 /// /// 项目ID /// 计量单位分类ID。如果是空,就是所有的 /// [HttpGet] [ResponseType(typeof(List))] public IHttpActionResult GetMeasuringUnitList(string projectId, string measuringUnitTypeID = "") { try { //相当于用一个dataitem来查询下面的所有字典详细列表 var data = new ec_measuring_unitBLL().GetList("{ ProjectId :\"" + projectId + "\",MeasuringUnitTypeID :\"" + measuringUnitTypeID + "\"}"); return Success(data); } catch (Exception ex) { return Fail(ex.Message); } } } }