private List <Tb_Spfl_Import> TurnShopSPImportList(DataTable table) { List <Tb_Spfl_Import> list = new List <Tb_Spfl_Import>(); foreach (DataRow item in table.Rows) { Tb_Spfl_Import model = new Tb_Spfl_Import(); model.bm = item["编码或条码"] == null ? "" : item["编码或条码"].ToString(); model.mc = item["名称"] == null ? "" : item["名称"].ToString(); model.father = item["上级名称"] == null ? "" : item["上级名称"].ToString(); model.bz = item["备注"] == null ? "" : item["备注"].ToString(); list.Add(model); } return(list); }
public BaseResult CheckImportInfo(Tb_Spfl_Import model) { BaseResult br = new BaseResult(); if (string.IsNullOrEmpty(model.mc)) { br.Success = false; br.Data = "mc"; br.Message.Add("名称不能为空"); return(br); } //if (string.IsNullOrEmpty(model.bm)) //{ // br.Success = false; // br.Data = "bm"; // br.Message.Add("编码不能为空"); // return br; //} br.Success = true; return(br); }
private void HandleHadNode(List <Tb_Spfl_Import> list, List <Tb_Spfl> spflList, string id_father, List <Tb_Spfl_Import> failList, string id_masteruser, string indbId_father = "0") { if (!spflList.Any() || string.IsNullOrEmpty(id_father)) { return; } var nodes = spflList.Where(s => s.id_father == id_father).ToList(); if (nodes.Any()) { var mclist = (from n in nodes select n.mc.Trim()).ToArray(); Hashtable param = new Hashtable(); param.Add("id_masteruser", id_masteruser); param.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); param.Add("mcList", mclist); if (id_father == "0") { param.Add("path_like", "%/0/%"); } else { param.Add("path_like", string.Format("%/{0}%", indbId_father)); } var hadList = DAL.QueryList <Tb_Spfl>(typeof(Tb_Spfl), param).ToList(); if (hadList.Any()) { //遍历已存在的节点 hadList.ForEach(hl => { //找出nodes中已存的节点,将其从spflList中移除掉,也将其从nodes移除 var node = nodes.FirstOrDefault(n => n.mc.Trim() == hl.mc); if (node != null) { nodes.Remove(node); spflList.Remove(node); var hadModel = new Tb_Spfl_Import(); hadModel = list.Where(d => d.bm.Trim() == node.bm.Trim() && d.mc.Trim() == node.mc.Trim()).FirstOrDefault(); hadModel.bz = "此 名称 在数据库已经存在"; failList.Add(hadModel); //找出此节点在spflList中的子节点,将其path与id_father变更 var sublist = spflList.Where(s => s.id_father == node.id).ToList(); //变更下一层级的id_father sublist.ForEach(sl => { sl.id_father = hl.id; }); sublist = spflList.Where(s => s.path.Contains(node.path)).ToList(); //变更所有的path sublist.ForEach(sl => { sl.path = sl.path.Replace(node.path, hl.path); }); HandleHadNode(list, spflList, hl.id, failList, id_masteruser, hl.id); } }); } } }