|
@ -1,11 +1,20 @@
|
|
|
package com.yihu.jw.base.service.org;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
|
|
import com.yihu.jw.base.dao.org.OrgTreeDao;
|
|
|
import com.yihu.jw.base.service.org.tree.SimpleTree;
|
|
|
import com.yihu.jw.base.service.org.tree.SimpleTreeNode;
|
|
|
import com.yihu.jw.base.service.org.tree.TreeNode;
|
|
|
import com.yihu.jw.entity.base.org.BaseOrgDO;
|
|
|
import com.yihu.jw.rm.base.BaseRequestMapping;
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* 机构信息服务service
|
|
@ -24,8 +33,124 @@ public class OrgTreeService extends BaseJpaService<OrgTree, OrgTreeDao> {
|
|
|
@Autowired
|
|
|
private OrgTreeDao orgTreeDao;
|
|
|
|
|
|
/**
|
|
|
* 添加机构和区域的关系
|
|
|
* @param baseOrgDO
|
|
|
*/
|
|
|
public void addOrgTreeNode(BaseOrgDO baseOrgDO){
|
|
|
// if(){}
|
|
|
List<OrgTree> treeNodes = new ArrayList<>();
|
|
|
if(!orgTreeDao.existsByCode(baseOrgDO.getCode())){
|
|
|
OrgTree orgNode = new OrgTree(baseOrgDO.getCode(),baseOrgDO.getTownCode(),baseOrgDO.getName(), OrgTree.Level.org.getLevelValue());
|
|
|
treeNodes.add(orgNode);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(baseOrgDO.getTownCode())){
|
|
|
OrgTree townTree = new OrgTree(baseOrgDO.getTownCode(),baseOrgDO.getCityCode(),baseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
|
|
|
treeNodes.add(townTree);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(baseOrgDO.getCityCode())){
|
|
|
OrgTree cityTree = new OrgTree(baseOrgDO.getCityCode(),baseOrgDO.getProvinceCode(),baseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
|
|
|
treeNodes.add(cityTree);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(baseOrgDO.getProvinceCode())){
|
|
|
OrgTree provinceTree = new OrgTree(baseOrgDO.getProvinceCode(),"",baseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
|
|
|
treeNodes.add(provinceTree);
|
|
|
}
|
|
|
/*if(orgTreeDao.existsByCode(baseOrgDO.getTownCode())){
|
|
|
OrgTree orgNode = new OrgTree(baseOrgDO.getCode(),baseOrgDO.getTownCode(),baseOrgDO.getName(), OrgTree.Level.org.getLevelValue());
|
|
|
treeNodes.add(orgNode);
|
|
|
}
|
|
|
else if(orgTreeDao.existsByCode(baseOrgDO.getCityCode())){
|
|
|
OrgTree townNode = new OrgTree(baseOrgDO.getTownCode(),baseOrgDO.getCityCode(),baseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
|
|
|
treeNodes.add(townNode);
|
|
|
}
|
|
|
else if(orgTreeDao.existsByCode(baseOrgDO.getProvinceCode())){
|
|
|
OrgTree cityNode = new OrgTree(baseOrgDO.getCityCode(),baseOrgDO.getProvinceCode(),baseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
|
|
|
treeNodes.add(cityNode);
|
|
|
}
|
|
|
else{
|
|
|
OrgTree provinceNode = new OrgTree(baseOrgDO.getProvinceCode(),"",baseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
|
|
|
treeNodes.add(provinceNode);
|
|
|
}*/
|
|
|
this.batchInsert(treeNodes);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改机构和区域的关系
|
|
|
* @param oldBaseOrgDO
|
|
|
* @param newBaseOrgDO
|
|
|
*/
|
|
|
public void updateOrgTreeNode(BaseOrgDO oldBaseOrgDO,BaseOrgDO newBaseOrgDO,int level){
|
|
|
if( level == OrgTree.Level.town.getLevelValue() ){
|
|
|
OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getCode(),oldBaseOrgDO.getTownCode());
|
|
|
if(null == orgTree){
|
|
|
return;
|
|
|
}
|
|
|
orgTree.setParentCode(newBaseOrgDO.getTownCode());
|
|
|
this.save(orgTree);
|
|
|
/* List<OrgTree> treeNodes = new ArrayList<>();
|
|
|
//新修改的区代码不存在,表示未添加过,应把相应的父类关联关系存储起来(城市,省份等)
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getTownCode())){
|
|
|
OrgTree townTree = new OrgTree(newBaseOrgDO.getTownCode(),newBaseOrgDO.getCityCode(),newBaseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
|
|
|
treeNodes.add(townTree);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getCityCode())){
|
|
|
OrgTree cityTree = new OrgTree(newBaseOrgDO.getCityCode(),newBaseOrgDO.getProvinceCode(),newBaseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
|
|
|
treeNodes.add(cityTree);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
|
|
|
OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
|
|
|
treeNodes.add(provinceTree);
|
|
|
}
|
|
|
this.batchInsert(treeNodes);*/
|
|
|
addOrgTreeNode(newBaseOrgDO);
|
|
|
}
|
|
|
else if( level == OrgTree.Level.city.getLevelValue() ){
|
|
|
OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getTownCode(),oldBaseOrgDO.getCityCode());
|
|
|
if(null == orgTree){
|
|
|
return;
|
|
|
}
|
|
|
orgTree.setParentCode(newBaseOrgDO.getCityCode());
|
|
|
this.save(orgTree);
|
|
|
addOrgTreeNode(newBaseOrgDO);
|
|
|
/*List<OrgTree> treeNodes = new ArrayList<>();
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getCityCode())){
|
|
|
OrgTree cityTree = new OrgTree(newBaseOrgDO.getCityCode(),newBaseOrgDO.getProvinceCode(),newBaseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
|
|
|
treeNodes.add(cityTree);
|
|
|
}
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
|
|
|
OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
|
|
|
treeNodes.add(provinceTree);
|
|
|
}
|
|
|
this.batchInsert(treeNodes);*/
|
|
|
}
|
|
|
else if( level == OrgTree.Level.province.getLevelValue() ){
|
|
|
OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getCityCode(),oldBaseOrgDO.getProvinceCode());
|
|
|
if(null == orgTree){
|
|
|
return;
|
|
|
}
|
|
|
orgTree.setParentCode(newBaseOrgDO.getProvinceCode());
|
|
|
this.save(orgTree);
|
|
|
addOrgTreeNode(newBaseOrgDO);
|
|
|
/*List<OrgTree> treeNodes = new ArrayList<>();
|
|
|
if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
|
|
|
OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
|
|
|
treeNodes.add(provinceTree);
|
|
|
}
|
|
|
this.batchInsert(treeNodes);*/
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据树的节点层级查询
|
|
|
* @param level
|
|
|
* @return
|
|
|
*/
|
|
|
List<OrgTree> findListByLevel(Integer level){
|
|
|
List<OrgTree> result = new ArrayList<>();
|
|
|
if(null == level){
|
|
|
return result;
|
|
|
}
|
|
|
return orgTreeDao.findByLevel(level);
|
|
|
// return orgTreeDao.findByLevelLessThanEqual(level);
|
|
|
}
|
|
|
}
|