|
@@ -13,9 +13,11 @@ import com.huimv.cattle.mapper.SysUserAccountMapper;
|
|
|
import com.huimv.cattle.pojo.DataSource;
|
|
|
import com.huimv.cattle.pojo.SysFarm;
|
|
|
import com.huimv.cattle.pojo.SysUserAccount;
|
|
|
+import com.huimv.cattle.pojo.vo.TreeFarm;
|
|
|
import com.huimv.cattle.service.DataSourceService;
|
|
|
import com.huimv.cattle.service.StockService;
|
|
|
import com.huimv.cattle.service.SysFarmService;
|
|
|
+import com.huimv.cattle.token.TokenSign;
|
|
|
import com.huimv.cattle.utils.ResultUtil;
|
|
|
import com.huimv.common.utils.Result;
|
|
|
import com.huimv.common.utils.ResultCode;
|
|
@@ -36,10 +38,8 @@ import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -207,6 +207,38 @@ public class SysFarmServiceImpl extends ServiceImpl<SysFarmMapper, SysFarm> impl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result listTownFarm(HttpServletRequest request, Map<String, String> paramsMap) {
|
|
|
+ String farmCode = paramsMap.get("farmCode");
|
|
|
+ if (farmCode == null) {
|
|
|
+ farmCode = TokenSign.getFarmCode(request);
|
|
|
+ }
|
|
|
+ if (farmCode == null || farmCode.equals("0")){
|
|
|
+ List<SysFarm> sysFarmList = sysFarmMapper.selectList(new QueryWrapper<SysFarm>().eq("parent_code",farmCode));
|
|
|
+ return new Result(ResultCode.SUCCESS,sysFarmList);
|
|
|
+ }else {
|
|
|
+ List<SysFarm> sysFarmList = sysFarmMapper.selectList(new QueryWrapper<SysFarm>().eq("farm_code",farmCode));
|
|
|
+ return new Result(ResultCode.SUCCESS,sysFarmList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listVillageFarm(HttpServletRequest request, Map<String, String> paramsMap) {
|
|
|
+ String farmCode = paramsMap.get("farmCode");
|
|
|
+ if (farmCode == null) {
|
|
|
+ farmCode = TokenSign.getFarmCode(request);
|
|
|
+ }
|
|
|
+ if (farmCode == null || farmCode.equals("0")){
|
|
|
+ List<SysFarm> farms = sysFarmMapper.selectList(null);
|
|
|
+ List<TreeFarm> treeFarms = parseBizBaseArea(farms);
|
|
|
+ return new Result(ResultCode.SUCCESS,treeFarms);
|
|
|
+ }else {
|
|
|
+ List<SysFarm> farms = sysFarmMapper.selectList(new QueryWrapper<SysFarm>().eq("farm_code", farmCode).or().eq("parent_code", farmCode));
|
|
|
+ List<TreeFarm> treeFarms = parseBizBaseArea(farms);
|
|
|
+ return new Result(ResultCode.SUCCESS,treeFarms);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//获取所有乡镇信息
|
|
|
private JSONArray getAllTowns() {
|
|
|
QueryWrapper<SysFarm> queryWrapper = new QueryWrapper<>();
|
|
@@ -246,4 +278,37 @@ public class SysFarmServiceImpl extends ServiceImpl<SysFarmMapper, SysFarm> impl
|
|
|
return new Result(ResultCode.FAIL, "调取远程数据出错.");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private List<TreeFarm> parseBizBaseArea(List<SysFarm> bizBaseAreas){
|
|
|
+ //构建需要展示的树形节点结构
|
|
|
+ Map<String, TreeFarm> nodeMap =bizBaseAreas.stream().map(farm -> {
|
|
|
+ TreeFarm treeFarm = new TreeFarm();
|
|
|
+ treeFarm.setId(farm.getId());
|
|
|
+ treeFarm.setAdcode(farm.getAdcode());
|
|
|
+ treeFarm.setAddress(farm.getAddress());
|
|
|
+ treeFarm.setFarmCode(farm.getFarmCode());
|
|
|
+ treeFarm.setFarmName(farm.getFarmName());
|
|
|
+ treeFarm.setFarmStatus(farm.getFarmStatus());
|
|
|
+ treeFarm.setLinkman(farm.getLinkman());
|
|
|
+ treeFarm.setParentCode(farm.getParentCode());
|
|
|
+ treeFarm.setChildNode(new ArrayList<>());
|
|
|
+ treeFarm.setPhone(farm.getPhone());
|
|
|
+ treeFarm.setRemark(farm.getRemark());
|
|
|
+ return treeFarm;
|
|
|
+ }).collect(Collectors.toMap(TreeFarm::getFarmCode, b -> b,(k1, k2)->k1));
|
|
|
+ //创建数组存父亲节点
|
|
|
+ ArrayList<TreeFarm> roots = new ArrayList<>();
|
|
|
+ //构建树形
|
|
|
+ nodeMap.values().forEach(item->{
|
|
|
+ String parentCode = item.getParentCode()+"";
|
|
|
+ //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
|
+ if (nodeMap.get(parentCode) == null){
|
|
|
+ roots.add(item);
|
|
|
+ }else {
|
|
|
+ //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
|
+ nodeMap.get(parentCode).getChildNode().add(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return roots;
|
|
|
+ }
|
|
|
}
|