public static string GetUserDepartmentList(string userId, List <TreeNode> DepartmentTree) { JObject res = new JObject(); if (string.IsNullOrEmpty(userId)) { res.Add("ErrCode", 1); res.Add("ErrMsg", "缺少参数"); } else { string msg = ""; DataSet ds = SalesLineBudgetApplicationSrv.GetUserDepartmentList(userId, ref msg); if (ds == null) { res.Add("ErrCode", 2); res.Add("ErrMsg", msg); } else if (ds.Tables[0].Rows.Count == 0) { res.Add("ErrCode", 3); res.Add("ErrMsg", "非法用户"); } else { List <string> DepartmentList = new List <string>(); List <string> departmentList = FindDepartmentList(DepartmentTree[0], "291", ref DepartmentList); //销售部及其所有子部门 departmentList.AddRange(FindDepartmentList(DepartmentTree[0], "290", ref DepartmentList)); //直属战区及其所有子部门 departmentList.Add("284"); //营销中心 DataTable departmentTable = ds.Tables[0]; departmentTable.Columns.Add("isLeaf", Type.GetType("System.String")); for (int i = departmentTable.Rows.Count - 1; i >= 0; i--) { if (!departmentList.Contains(departmentTable.Rows[i]["DepartmentId"].ToString())) { departmentTable.Rows.RemoveAt(i); continue; } if (ds.Tables[1].Select("parentId=" + departmentTable.Rows[i]["DepartmentId"].ToString()).Length == 0) { departmentTable.Rows[i]["isLeaf"] = "1"; } else { departmentTable.Rows[i]["isLeaf"] = "0"; } } if (departmentTable.Rows.Count == 0) { res.Add("ErrCode", 4); res.Add("ErrMsg", "用户无访问权限"); } else { res.Add("ErrCode", 0); res.Add("ErrMsg", "操作成功"); res.Add("Department", JsonHelper.DataTable2Json(departmentTable)); if (departmentTable.Rows[0]["isLeaf"].ToString() == "1") { JObject temp = GetNetBelongToMe(departmentTable.Rows[0]["DepartmentId"].ToString()); if (temp["ErrCode"].ToString() == "0") { res.Add("Document", temp["Document"]); } } } } } return(res.ToString()); }
//public static string initForm(string userId) //{ // JObject res = new JObject(); // if(string.IsNullOrEmpty(userId)) // { // res.Add("ErrCode", 1); // res.Add("ErrMsg", "缺少参数"); // } // else // { // string ErrMsg = ""; // DataSet ds = SalesLineBudgetApplicationSrv.GetUserMsg(userId, ref ErrMsg); // if(ds==null) // { // res.Add("ErrCode", 2); // res.Add("ErrMsg", ErrMsg); // } // else if(ds.Tables[0].Rows.Count==0) // { // res.Add("ErrCode", 3); // res.Add("ErrMsg", "非法用户"); // } // else // { // if(ds.Tables[0].Rows[0]["isHead"].ToString()=="0") // { // res = GetNetBelongToMe(userId); // } // } // } // return res.ToString(); //} public static JObject GetNetBelongToMe(string departmentId) { JObject res = new JObject(); string msg = ""; DataSet ds = SalesLineBudgetApplicationSrv.GetNetBelongToMe(departmentId, ref msg); if (ds == null) { res.Add("ErrCode", 2); res.Add("ErrMsg", msg); } else if (ds.Tables[0].Rows.Count == 0) { res.Add("ErrCode", 4); res.Add("ErrMsg", "该成员无负责网点"); } else { res.Add("ErrCode", 0); res.Add("ErrMsg", "操作成功"); double firstAvailableQuota = 0; JArray departmentJarray = new JArray(); JObject departmentObject = new JObject(); departmentObject.Add("id", departmentId); departmentObject.Add("name", FindAndFilterDepartmentNameById(ds.Tables[3], departmentId)); departmentObject.Add("avatar", "resources/医院.jpg"); JArray HospitalJarray = new JArray(); int id = 10000001; foreach (DataRow dw1 in ds.Tables[0].Rows) { double secondAvailableQuota = 0; JObject hospital = new JObject(); //网点,由医院和产品确定 hospital.Add("firstId", dw1["HospitalId"].ToString()); //医院Id hospital.Add("secondId", dw1["ProDuctId"].ToString()); //产品Id hospital.Add("firstName", dw1["HospitalName"].ToString()); //医院名称 hospital.Add("secondName", dw1["ProDuctName"].ToString()); //产品名称(包含规格和型号) hospital.Add("id", id++); hospital.Add("avatar", "resources/医院.jpg"); JObject dataJson = JObject.Parse(dw1["DataJson"].ToString()); //包含各父费用明细的费用率及上月流向 JArray parentDetailData = new JArray(); //父明细列表 foreach (DataRow dw2 in ds.Tables[1].Rows) { JObject parentDetail = new JObject();//父明细 double thirdAvailableQuota = Convert.ToDouble(dataJson[dw2["Name"].ToString()]) * Convert.ToDouble(dataJson["当月流向数"]); secondAvailableQuota += thirdAvailableQuota; parentDetail.Add("id", dw2["FeeDetailId"].ToString()); //父明细Id parentDetail.Add("name", dw2["Name"].ToString()); //父明细名称 //parentDetail.Add("Rate", dataJson[dw2["Name"].ToString()].ToString());//父明细费用率 parentDetail.Add("availableQuota", thirdAvailableQuota); //实际可用额度 parentDetail.Add("plannedCost", 0); //计划费用 JArray DetailData = new JArray(); foreach (DataRow dw3 in ds.Tables[2].Rows) { if (dw3["ParentName"].ToString() == dw2["Name"].ToString()) //该父明细下的子明细 { JObject Detail = new JObject(); //子明细 Detail.Add("id", dw3["id"].ToString()); //子明细Id Detail.Add("name", dw3["name"].ToString()); //子明细名称 Detail.Add("plannedCost", 0); //计划费用 DetailData.Add(Detail); } } parentDetail.Add("children", DetailData); parentDetailData.Add(parentDetail); } hospital.Add("plannedCost", 0); //计划费用 hospital.Add("availableQuota", secondAvailableQuota); //实际可用额度 hospital.Add("children", parentDetailData); HospitalJarray.Add(hospital); firstAvailableQuota += secondAvailableQuota; } departmentObject.Add("availableQuota", firstAvailableQuota); //实际可用额度 departmentObject.Add("plannedCost", 0); //计划费用 departmentObject.Add("netChildren", HospitalJarray); departmentObject.Add("children", CalculateTheSumOfExpensesOfHospitalsInThisDepartment(departmentObject, ds.Tables[1], ds.Tables[2])); departmentJarray.Add(departmentObject); res.Add("Document", departmentJarray); } return(res); }