using DBUtility; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers.SBGL { public class Gy_EquipFileMainController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更) private json objJsonResult = new json(); public DataSet ds = new DataSet(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); public DLL.ClsGy_EquipFileMain BillNew0 = new DLL.ClsGy_EquipFileMain(); public DLL.ClsGy_EquipFileMain BillOld0 = new DLL.ClsGy_EquipFileMain(); public DAL.ClsGy_EquipFileMain BillOld = new DAL.ClsGy_EquipFileMain(); #region 设备档案列表 [Route("Gy_EquipFileMain/GetList")] [HttpGet] public object GetList(string sWhere, string user) { try { if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileList", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有查看权限"; objJsonResult.data = null; return objJsonResult; } if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_Gy_EquipFileMainList " + sWhere + " order by hmainid desc", "h_v_Gy_EquipFileMainList"); } else { string sql1 = "select * from h_v_Gy_EquipFileMainList where 1 = 1 "; string sql = sql1 + sWhere + " order by hmainid desc"; ds = oCN.RunProcReturn(sql, "h_v_Gy_EquipFileMainList"); } //if (ds.Tables[0].Rows.Count != 0 || ds != null) //{ objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; //} //else //{ //objJsonResult.code = "0"; //objJsonResult.count = 0; //objJsonResult.Message = "无数据"; //objJsonResult.data = null; //return objJsonResult; //} } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region [设备档案删除功能] [Route("Gy_EquipFileMain/Delete_EquipFile")] [HttpGet] public object Delete_EquipFile(string HItemID, string user) { if (!DBUtility.ClsPub.Security_Log("Gy_EquipFile_Delete", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无删除权限!"; objJsonResult.data = null; return objJsonResult; } string s = ""; Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HItemID); if (lngBillKey == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据ID为空!"; objJsonResult.data = null; return objJsonResult; } DLL.ClsGy_EquipFileMain oBill = new DLL.ClsGy_EquipFileMain(); if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { oCN.RunProc("Delete From Gy_EquipFileBillMain where HInterID=" + lngBillKey); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未找到"; objJsonResult.data = null; return objJsonResult; } } #endregion #region[设备档案编辑时获取表头数据] [Route("Gy_EquipFileMain/Gy_EquipFileCheckDetai")] [HttpGet] public object Gy_EquipFileCheckDetai(long HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_Gy_EquipFileMainList where hmainid=" + HInterID, "h_v_Gy_EquipFileMainList"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = ""; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备档案新增保存 /// /// 模治具分类-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_EquipFileMain/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { try { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); if (!DBUtility.ClsPub.Security_Log("Gy_EquipFile_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } //反序列化 msg2 = "[" + msg2.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); string hbillno = list[0].HBillNo; string HYear = DateTime.Now.Year.ToString(); DateTime HDate = list[0].HDate; long HInterID = list[0].HInterID; string HEquipFileNumber = list[0].HEquipFileNumber; string HEquipFileNo = list[0].HEquipFileNo; // varchar(50) //设备编码(唯一) string HName = list[0].HName; // √ varchar(100) //设备名称 string HModel = list[0].HModel; // √ varchar(100) //设备规格 string HModel2 = list[0].HModel2; // √ varchar(100) //设备型号 int HMaterID = list[0].HMaterID; // √ int //对应物料 int HUnitID = list[0].HUnitID; // √ int //单位 string HOutComDate = list[0].HOutComDate; // √ datetime //设备出厂日期 string HOutComNo = list[0].HOutComNo; // √ varchar(100) //设备出厂编号 int HDeptID = list[0].HDeptID; // √ int //使用部门(gy_Department) int HUseEmpID = list[0].HUseEmpID; //√ int //使用负责人(gy_Employee) int HRepairEmpID = list[0].HRepairEmpID; //√ int //维护负责人(gy_Employee) string HAddress = list[0].HAddress; // √ varchar(500) //安装地点 string HSetupDate = list[0].HSetupDate; //√ datetime //安装日期 string HStartupDate = list[0].HStartupDate; //√ datetime //运行开始日期 string HStatus = list[0].HStatus; // √ varchar(20) //当前状态(空闲、占用、加工、关机、异常停机) int HEquipFileTypeID = list[0].HEquipFileTypeID; //√ int //设备类别(Gy_EquipFileType) string HProNum = list[0].HProNum; // √ varchar(100) //工程编码 string HBarCode = list[0].HBarCode; //√ varchar(100) //条形码(暂时保存此字段) string HWorkArea = list[0].HWorkArea; //√ varchar(50) //产地 string HLogo = list[0].HLogo; //√ varchar(50) //品牌 int HSellSupID = list[0].HSellSupID; // √ int //供应商(Gy_Supplier) int HMakeSupID = list[0].HMakeSupID; // int //制造商 (Gy_Supplier) string HMaker = msg4; string HMakeDate = DateTime.Now.Date.ToString(); int HEquipDotCheckRuleInterID = list[0].HEquipDotCheckRuleInterID; int HEquipMaintainRuleInterID = list[0].HEquipMaintainRuleInterID; int HSourceID = list[0].HSourceID; if (!DBUtility.ClsPub.AllowNumber(HEquipFileNumber)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!"; objJsonResult.data = null; return objJsonResult; } //若MAINDI重复则重新获取 oCN.BeginTran(); //主表 oCN.RunProc("Insert into Gy_EquipFileBillMain " + " (hbillno,HEquipFileNumber,HEquipFileNo,HName,HModel,HModel2,HMaterID,HUnitID,HOutComDate" + ",HOutComNo,HDeptID,HUseEmpID,HRepairEmpID,HAddress,HSetupDate,HStartupDate,HStatus," + "HEquipFileTypeID,HProNum,HBarCode,HWorkArea,HLogo,HSellSupID,HMakeSupID,hbilltype,HDate,HYear,HMaker,HMakeDate,HEquipMaintainRuleInterID,HEquipDotCheckRuleInterID,HSourceID) " + " Values('" + hbillno + "','" + HEquipFileNumber + "','" + HEquipFileNo + "','" + HName + "','" + HModel + "','" + HModel2 + "'," + HMaterID + "," + HUnitID + ",'" + HOutComDate + "','" + HOutComNo + "'," + HDeptID + "," + HUseEmpID + "," + HRepairEmpID + ",'" + HAddress + "','" + HSetupDate + "','" + HStartupDate + "','" + HStatus + "'," + HEquipFileTypeID + ",'" + HProNum + "','" + HBarCode + "','" + HWorkArea + "','" + HLogo + "'," + HSellSupID + "," + HMakeSupID + ",'3308','" + HDate + "','" + HYear + "','" + HMaker + "','" + HMakeDate + "','" + HEquipMaintainRuleInterID + "','" + HEquipDotCheckRuleInterID +"'," + HSourceID + ")", ref DBUtility.ClsPub.sExeReturnInfo); //修改上级为非末级代码 oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增成功!"; //objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message; objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备档案修改保存 [Route("Gy_EquipFileMain/EditBill")] [HttpPost] public object EditBill([FromBody] JObject oMain) { try { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); if (!DBUtility.ClsPub.Security_Log("Gy_EquipFile_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } //反序列化 msg2 = "[" + msg2.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HInterID = list[0].HInterID; string HEquipFileNumber = list[0].HEquipFileNumber; string HEquipFileNo = list[0].HEquipFileNo; // varchar(50) //设备编码(唯一) string HName = list[0].HName; // √ varchar(100) //设备名称 string HModel = list[0].HModel; // √ varchar(100) //设备规格 string HModel2 = list[0].HModel2; // √ varchar(100) //设备型号 int HMaterID = list[0].HMaterID; // √ int //对应物料 int HUnitID = list[0].HUnitID; // √ int //单位 string HOutComDate = list[0].HOutComDate; // √ datetime //设备出厂日期 string HOutComNo = list[0].HOutComNo; // √ varchar(100) //设备出厂编号 int HDeptID = list[0].HDeptID; // √ int //使用部门(gy_Department) int HUseEmpID = list[0].HUseEmpID; //√ int //使用负责人(gy_Employee) int HRepairEmpID = list[0].HRepairEmpID; //√ int //维护负责人(gy_Employee) string HAddress = list[0].HAddress; // √ varchar(500) //安装地点 string HSetupDate = list[0].HSetupDate; //√ datetime //安装日期 string HStartupDate = list[0].HStartupDate; //√ datetime //运行开始日期 string HStatus = list[0].HStatus; // √ varchar(20) //当前状态(空闲、占用、加工、关机、异常停机) int HEquipFileTypeID = list[0].HEquipFileTypeID; //√ int //设备类别(Gy_EquipFileType) string HProNum = list[0].HProNum; // √ varchar(100) //工程编码 string HBarCode = list[0].HBarCode; //√ varchar(100) //条形码(暂时保存此字段) string HWorkArea = list[0].HWorkArea; //√ varchar(50) //产地 string HLogo = list[0].HLogo; //√ varchar(50) //品牌 int HSellSupID = list[0].HSellSupID; // √ int //供应商(Gy_Supplier) int HMakeSupID = list[0].HMakeSupID; // int //制造商 (Gy_Supplier) string HUpDater = msg4; string HUpDateDate = DateTime.Now.Date.ToString(); int HEquipDotCheckRuleInterID = list[0].HEquipDotCheckRuleInterID; int HEquipMaintainRuleInterID = list[0].HEquipMaintainRuleInterID; int HSourceID = list[0].HSourceID; if (!DBUtility.ClsPub.AllowNumber(HEquipFileNumber)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!"; objJsonResult.data = null; return objJsonResult; } DataSet DS = oCN.RunProcReturn("Select * from Gy_EquipFileBillMain Where HEquipFileNumber='" + HEquipFileNumber + "' and HInterID<>" + HInterID, "Gy_EquipFileBillMain", ref Pub_Class.ClsPub.sExeReturnInfo); if (DS.Tables[0].Rows.Count != 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码重复!"; objJsonResult.data = null; return objJsonResult; } //若MAINDI重复则重新获取 oCN.BeginTran(); //主表 oCN.RunProc("Update Gy_EquipFileBillMain set " + " HEquipFileNumber='" + HEquipFileNumber + "'" + ",HEquipFileNo='" + HEquipFileNo + "'" + ",HName='" + HName + "'" + ",HModel='" + HModel + "'" + ",HModel2='" + HModel2 + "'" + ",HMaterID=" + HMaterID + ",HUnitID=" + HUnitID + ",HOutComDate='" + HOutComDate + "'" + ",HOutComNo='" + HOutComNo + "'" + ",HDeptID=" + HDeptID + ",HUseEmpID=" + HUseEmpID + ",HRepairEmpID=" + HRepairEmpID + ",HAddress='" + HAddress + "'" + ",HSetupDate='" + HSetupDate + "'" + ",HStartupDate='" + HStartupDate + "'" + ",HStatus='" + HStatus + "'" + ",HEquipFileTypeID=" + HEquipFileTypeID + ",HProNum='" + HProNum + "'" + ",HBarCode='" + HBarCode + "'" + ",HWorkArea='" + HWorkArea + "'" + ",HLogo='" + HLogo + "'" + ",HSellSupID=" + HSellSupID + ",HMakeSupID= " + HMakeSupID + ",HUpDater= '" + HUpDater + "'" + ",HUpDateDate= '" + HUpDateDate + "'" + ",HEquipDotCheckRuleInterID='" + HEquipDotCheckRuleInterID + "'" + ",HEquipMaintainRuleInterID='" + HEquipMaintainRuleInterID + "'" + ",HSourceID='" + HSourceID + "'" + " Where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo); //修改子项目代码 //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_RepairCheck,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo); // oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "修改成功!"; //objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message; objJsonResult.data = null; return objJsonResult; } } #endregion #region[设备履历(点击主表带出从表)] [Route("Gy_EquipFileMain/Sb_EquipFileBillResumeDate")] [HttpGet] public object Sb_EquipFileBillResumeDate(string HInterID) { DataTable ds, ds1,ds2; long HInterID1 = long.Parse(HInterID); List list = new List(); try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //获取配件项目编辑数据 string sql1 = string.Format($"exec h_p_Gy_EquipRecord {HInterID1}"); ds = oCN.RunProcReturn(sql1, "h_p_Gy_EquipRecord").Tables[0]; ds1 = oCN.RunProcReturn(sql1, "h_p_Gy_EquipRecord").Tables[1]; ds2 = oCN.RunProcReturn(sql1, "h_p_Gy_EquipRecord").Tables[2]; list.Add(ds);//日常记录 list.Add(ds1);//维修记录 list.Add(ds2);//配件更换清单 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.list = list; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } #endregion #region[器具履历(点击主表带出从表)] [Route("Gy_EquipFileMain/Gy_MouldFileBillResumeDate")] [HttpGet] public object Gy_MouldFileBillResumeDate(string HInterID) { DataTable ds, ds1, ds2, ds3; long HInterID1 = long.Parse(HInterID); List list = new List(); try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //获取配件项目编辑数据 string sql1 = string.Format($"exec h_p_Gy_MouldRecord {HInterID1}"); ds = oCN.RunProcReturn(sql1, "h_p_Gy_MouldRecord").Tables[0]; ds1 = oCN.RunProcReturn(sql1, "h_p_Gy_MouldRecord").Tables[1]; ds2 = oCN.RunProcReturn(sql1, "h_p_Gy_MouldRecord").Tables[2]; ds3 = oCN.RunProcReturn(sql1, "h_p_Gy_MouldRecord").Tables[3]; list.Add(ds);//出入库记录 list.Add(ds1);//器具耗用记录 list.Add(ds2);//日常记录 list.Add(ds3);//维修记录 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.list = list; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } #endregion #region[根据条码返回设备信息] [Route("Gy_EquipFileMain/Gy_MouldFileBillBarCodeInfo")] [HttpGet] public object Gy_MouldFileBillBarCodeInfo(string HBarCode) { DataTable ds; List list = new List(); try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //获取配件项目编辑数据 string sql1 = string.Format($"exec h_p_Gy_EquipFileGetInfoByBarCode {HBarCode}"); ds = oCN.RunProcReturn(sql1, "h_p_Gy_EquipFileGetInfoByBarCode").Tables[0]; list.Add(ds);//设备档案 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取设备信息成功!"; objJsonResult.list = list; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!请检查条形码!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } #endregion #region 设备档案审核/反审核功能 [Route("Gy_EquipFileBill/CheckGy_EquipFileBill")] [HttpGet] public object CheckGy_EquipFileBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileBill_Check", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限审核!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; oCN.BeginTran();//开始事务 //Type 1 审核 2 反审核 if (Type == 1) { if (!BillOld.CheckBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { if (BillOld.AbandonCheck(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备档案关闭/反关闭功能 [Route("Gy_EquipFileBill/CloseGy_EquipFileBill")] [HttpGet] public object CloseGy_EquipFileBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileBill_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限关闭!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; oCN.BeginTran();//开始事务 //Type 1 关闭 2 反关闭 if (Type == 1) { if (!BillOld.CloseBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { if (!BillOld.CancelClose(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备档案列表 树状图 设备分类查询 public class TreeModel { public string id { get; set; } public string title { get; set; } public List children = new List(); } [Route("Gy_EquipFileMain/TreeGetList")] [HttpGet] public object TreeGetList(string sWhere, string user) { try { ds = oCN.RunProcReturn("select HItemID,HNumber,HName from Gy_EquipFileType", "Gy_EquipFileType"); List treeModels = new List(); TreeModel first = new TreeModel(); first.id = "0"; first.title = "设备分类设置"; treeModels.Add(first); foreach (DataRow row in ds.Tables[0].Rows) { var strLen = row["hitemid"].ToString().Split('.'); if (strLen.Length == 1) { TreeModel tree = new TreeModel(); tree.id = row["HItemID"].ToString(); tree.title = row["HName"].ToString(); treeModels[0].children.Add(tree); } } digui(ds.Tables[0], treeModels[0].children, 2); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels); return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 递归函数 /// public void digui(DataTable dt, List tree, int num) { for (int m = 0; m < tree.Count; m++) { tree[m].children = new List(); for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集 { var strLen = dt.Rows[i]["HNumber"].ToString().Split('.'); if (strLen.Length == num && dt.Rows[i]["HNumber"].ToString().Contains(tree[m].id + ".")) { TreeModel tbjson = new TreeModel(); tbjson.id = dt.Rows[i]["HItemID"].ToString(); tbjson.title = dt.Rows[i]["HName"].ToString(); tree[m].children.Add(tbjson); } } var strLens = tree[m].id.Split('.'); for (int i = 0; i < tree[m].children.Count; i++) { digui(dt, tree[m].children, strLens.Length + 2);//再次用子集去循环,拿出子集的子集 } } } #endregion #region 设备运行状态报表 [Route("SB_EquipRunningStatus/Report")] [HttpGet] public object Report(string sWhere, string user) { try { List columnNameList = new List(); //if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileList", 1, false, user)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "没有查看权限"; // objJsonResult.data = null; // return objJsonResult; //} if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_Sb_EquipRunningStatusReport " + sWhere + " order by 所属日期 desc", "h_v_Sb_EquipRunningStatusReport"); } else { string sql1 = "select * from h_v_Sb_EquipRunningStatusReport where 1 = 1 "; string sql = sql1 + sWhere + " order by 所属日期 desc"; ds = oCN.RunProcReturn(sql, "h_v_Sb_EquipRunningStatusReport"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; //if (ds.Tables[0].Rows.Count != 0 && ds != null) //{ //} //else //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "无数据"; // objJsonResult.data = null; // return objJsonResult; //} } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备运行状态报表 树状图 部门分类查询 public class TreeModel_Report { public string id { get; set; } public string title { get; set; } public string type { get; set; } public List children = new List(); } [Route("SB_EquipRunningStatus/ReportTreeGetList")] [HttpGet] public object ReportTreeGetList(string sWhere, string user) { try { ds = oCN.RunProcReturn("select HItemID,HNumber,HName from Gy_Department", "Gy_Department"); List treeModels = new List(); TreeModel_Report first = new TreeModel_Report(); DataSet Ds; string HCampanyName = ""; Ds = oCN.RunProcReturn("select HValue from Xt_SystemParameter where HCaption = '客户名称'", "Xt_SystemParameter"); if (Ds.Tables[0].Rows.Count != 0 && Ds != null) { HCampanyName = Ds.Tables[0].Rows[0]["HValue"].ToString(); } first.id = "0"; first.title = HCampanyName; treeModels.Add(first); foreach (DataRow row in ds.Tables[0].Rows) { var strLen = row["hitemid"].ToString().Split('.'); if (strLen.Length == 1) { TreeModel_Report tree = new TreeModel_Report(); tree.id = row["HItemID"].ToString(); tree.title = row["HName"].ToString(); tree.type = "Department"; treeModels[0].children.Add(tree); } } getWorkCenter_Level2(ds.Tables[0], treeModels[0].children); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels); return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 第二级工作中心 /// public void getWorkCenter_Level2(DataTable dt, List tree) { for (int i = 0;i < dt.Rows.Count;i++) { var HDeptID = dt.Rows[i]["HItemID"].ToString(); ds = oCN.RunProcReturn("select distinct HItemID,HNumber,HName from Gy_WorkCenter where HDeptID = " + HDeptID, "Gy_WorkCenter"); if (ds.Tables[0].Rows.Count != 0 && ds != null) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { TreeModel_Report tbjson = new TreeModel_Report(); tbjson.id = ds.Tables[0].Rows[j]["HItemID"].ToString(); tbjson.title = ds.Tables[0].Rows[j]["HName"].ToString(); tbjson.type = "WorkCenter"; tree[i].children.Add(tbjson); } } //digui_Report(ds.Tables[0], tree[i].children, 2); } } /// /// 递归函数 /// public void digui_Report(DataTable dt, List tree, int num) { for (int m = 0; m < tree.Count; m++) { tree[m].children = new List(); for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集 { var HWorkCenterNumber = dt.Rows[i]["HNumber"].ToString(); DataSet Ds; Ds = oCN.RunProcReturn("select distinct HItemID,HNumber,HName from Gy_WorkCenter where HNumber like '" + HWorkCenterNumber + "%'", "Gy_WorkCenter"); if (Ds.Tables[0].Rows.Count != 0 && Ds != null) { for (int j = 0;j < Ds.Tables[0].Rows.Count;j++) { var strLen = Ds.Tables[0].Rows[j]["HNumber"].ToString().Split('.'); if (strLen.Length == num && Ds.Tables[0].Rows[j]["HNumber"].ToString().Contains(tree[m].id + ".")) { TreeModel_Report tbjson = new TreeModel_Report(); tbjson.id = Ds.Tables[0].Rows[j]["HItemID"].ToString(); tbjson.title = Ds.Tables[0].Rows[j]["HName"].ToString(); tbjson.type = "WorkCenter"; tree[m].children.Add(tbjson); } } } } var strLens = tree[m].id.Split('.'); for (int i = 0; i < tree[m].children.Count; i++) { digui_Report(dt, tree[m].children, strLens.Length + 2);//再次用子集去循环,拿出子集的子集 } } } #endregion } }