diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java index e1edf50..02e37ea 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java @@ -33,7 +33,11 @@ import java.util.ArrayList; public class ClosedAreaController { private final ClosedAreaServiceI closedAreaService; - + @ApiOperation("树级结构") + @GetMapping("/listTree") + public MultiResponse listTree() { + return closedAreaService.listTree(); + } @ApiOperation("统计港区里所有的封闭区域数与管辖单位数") @GetMapping("/getCountByHgAuthArea") public MultiResponse getCountByHgAuthArea() { diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedTmpApplyController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedTmpApplyController.java index ca6c21a..693e0b1 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedTmpApplyController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedTmpApplyController.java @@ -7,6 +7,7 @@ import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.exception.BizException; import com.zcloud.primeport.api.ClosedAreaCarApplyServiceI; import com.zcloud.primeport.api.ClosedAreaPersonApplyServiceI; +import com.zcloud.primeport.api.PersonApplyServiceI; import com.zcloud.primeport.domain.enums.TmpApplyEnum; import com.zcloud.primeport.dto.ClosedAreaCarApplyAddCmd; import com.zcloud.primeport.dto.ClosedAreaCarApplyAuditCmd; @@ -34,6 +35,7 @@ import java.util.HashMap; public class ClosedTmpApplyController { private final ClosedAreaCarApplyServiceI closedAreaCarApplyService; private final ClosedAreaPersonApplyServiceI closedAreaPersonApplyServiceI; + private final PersonApplyServiceI personApplyServiceI; @ApiOperation("新增") @PostMapping("/save") @@ -44,6 +46,7 @@ public class ClosedTmpApplyController { id = closedAreaPersonApplyServiceI.saveTmpPersonApply(cmd); } if (cmd.getTmpMkmjType().equals(TmpApplyEnum.ONE_LEVEL_PERSON_APPLY.getCode())) { + personApplyServiceI.xgfPersonSave(); } } if (cmd.getTmpApplyType().equals(TmpApplyEnum.CAR_APPLY.getCode())) { diff --git a/web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaQueryExe.java b/web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaQueryExe.java index 039b1cc..af46afe 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaQueryExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaQueryExe.java @@ -1,5 +1,6 @@ package com.zcloud.primeport.command.query; +import com.alibaba.cola.dto.MultiResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zcloud.primeport.command.convertor.ClosedAreaCoConvertor; import com.zcloud.primeport.dto.ClosedAreaPageQry; @@ -11,6 +12,7 @@ import com.alibaba.cola.dto.PageResponse; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -62,5 +64,34 @@ public class ClosedAreaQueryExe { List list = closedAreaRepository.list(objectQueryWrapper); return closedAreaCoConvertor.converDOsToCOs(list); } + + public MultiResponse listTree() { + List list = closedAreaRepository.list(); + ArrayList closedAreaDOS = new ArrayList<>(); + for (ClosedAreaDO closedAreaDO : list) { + if (closedAreaDO.getParentId().equals(0L)) { + closedAreaDOS.add(closedAreaCoConvertor.converDOToCO(closedAreaDO)); + } + } + for (ClosedAreaCO closedAreaCO : closedAreaDOS) { + closedAreaCO.setChildren(treeChildren(closedAreaCO.getId(), list)); + } + return MultiResponse.of(closedAreaDOS); + } + private List treeChildren(Long parentId, List closedAreaDOS) { + List childList = new ArrayList<>(); + for (ClosedAreaDO closedAreaDO : closedAreaDOS) { + //遍历所有节点,与上级传过来的父节点id比较 + if (parentId.equals(closedAreaDO.getParentId())) { + childList.add(closedAreaCoConvertor.converDOToCO(closedAreaDO)); + } + } + //递归 + for (ClosedAreaCO route : childList) { + route.setChildren(treeChildren(route.getId(), closedAreaDOS)); + } + return childList.isEmpty() ? null : childList; + } + } diff --git a/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java b/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java index 52479a3..d4adaac 100644 --- a/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java @@ -77,5 +77,10 @@ public class ClosedAreaServiceImpl implements ClosedAreaServiceI { List dataList = closedAreaQueryExe.listAllByJurisdictionalCorpId(id); return MultiResponse.of(dataList); } + + @Override + public MultiResponse listTree() { + return closedAreaQueryExe.listTree(); + } } diff --git a/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java index c7c91c6..00b8793 100644 --- a/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java +++ b/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java @@ -30,5 +30,7 @@ public interface ClosedAreaServiceI { MultiResponse getCountByHgAuthArea(); MultiResponse listAllByJurisdictionalCorpId(Long id); + + MultiResponse listTree(); } diff --git a/web-client/src/main/java/com/zcloud/primeport/api/PersonApplyServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/PersonApplyServiceI.java index 51aaf9d..b6bcc52 100644 --- a/web-client/src/main/java/com/zcloud/primeport/api/PersonApplyServiceI.java +++ b/web-client/src/main/java/com/zcloud/primeport/api/PersonApplyServiceI.java @@ -25,6 +25,7 @@ public interface PersonApplyServiceI { void removeBatch(Long[] ids); void xgfPersonSave(XgfPersonApplyAddCmd cmd); + void xgfTmpPersonSave(XgfPersonApplyAddCmd cmd); PageResponse xgfPersonAuditList(XgfApplyPersonPageQry qry); diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/ClosedAreaCO.java b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/ClosedAreaCO.java index 521c3cf..ab50f5b 100644 --- a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/ClosedAreaCO.java +++ b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/ClosedAreaCO.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.sql.Date; +import java.util.List; /** @@ -58,5 +59,8 @@ public class ClosedAreaCO extends ClientObject { @ApiModelProperty(value = "是否有子集,1有2没有") private Integer hasChild; + + @ApiModelProperty + private List children; }