yangle
2024-07-11 fb4349497ef239dab5cd97bb6de79ace28102d5c
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_MaterTypeBillController.cs
@@ -135,8 +135,6 @@
                            return objJsonResult;
                        }
                    }
                    //得到短代码
                    string sShortNumber;
                    sShortNumber = DBUtility.ClsPub.GetShortNumber(oItem.HNumber.Trim());
@@ -152,7 +150,16 @@
                    oItem.HShortNumber = sShortNumber;//短代码
                    oItem.HMakeEmp = msg2;
                    oItem.HEndFlag = true;//末级标志
                    oItem.HLevel = DBUtility.ClsPub.GetLevel(oItem.HNumber.Trim()); //等级
                    DataSet ds2 = oCN.RunProcReturn("select HLevel from  Gy_MaterType where HItemID =" + oItem.HParentID , "Gy_MaterType");//搜索父类等级
                    //oItem.HLevel = DBUtility.ClsPub.GetLevel(oItem.HNumber); //等级
                    if (ds2.Tables[0].Rows.Count > 0)
                    {
                        oItem.HLevel = (int)ds2.Tables[0].Rows[0]["HLevel"] + 1;
                    }
                    else
                    {
                        oItem.HLevel = 1;
                    }
                    oBill.oModel = oItem;
                }
                //保存
@@ -452,7 +459,7 @@
        }
        #endregion
        #region ç‰©æ–™åˆ†ç±» æ ‘形图
        #region ç‰©æ–™åˆ†ç±» æ ‘形图(根据代码展开树状图)
        public class TreeModel
        {
            public string id { get; set; }
@@ -477,7 +484,7 @@
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    var strLen = row["hitemid"].ToString().Split('.');
                    var strLen = row["hnumber"].ToString().Split('.');
                    if (strLen.Length == 1)
                    {
                        TreeModel tree = new TreeModel();
@@ -532,5 +539,78 @@
        }
        #endregion
        #region æ ¹æ®çˆ¶id和等级获得树状图递归
        [Route("Gy_MaterType/Gy_MaterTypeTreeListByLevel")]
        [HttpGet]
        public object Gy_MaterTypeTreeListByLevel()
        {
            try
            {
                string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_MaterType order by hnumber");
                ds = oCN.RunProcReturn(sql1, "Gy_MaterType");
                List<TreeModel> treeModels = new List<TreeModel>();
                TreeModel first = new TreeModel();
                first.id = "0";
                first.title = "物料分类设置";
                treeModels.Add(first);
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    var HLevel = (int)row["hlevel"];
                    if (HLevel == 1)
                    {
                        TreeModel tree = new TreeModel();
                        tree.id = row["hitemid"].ToString();
                        tree.title = row["hname"].ToString();
                        treeModels[0].children.Add(tree);
                    }
                }
                getTreeByLevel(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 getTreeByLevel(DataTable dt, List<TreeModel> tree, int num)
        {
            for (int m = 0; m < tree.Count; m++)
            {
                tree[m].children = new List<TreeModel>();
                for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
                {
                    var HLevel = (int)dt.Rows[i]["hlevel"];
                    var HParentID = dt.Rows[i]["hparentid"].ToString();
                    if (HLevel == num && HParentID==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);
                    }
                }
                for (int i = 0; i < tree[m].children.Count; i++)
                {
                    getTreeByLevel(dt, tree[m].children, num+1);//再次用子集去循环,拿出子集的子集
                }
            }
        }
        #endregion
    }
}