Commit 214e1f12 authored by hcing's avatar hcing

fix(ymt & statist): 调整

parent 8052030f
package com.yeejoin.amos.boot.biz.common.utils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
public class TreeRecursive<T> {
private List<T> list;
private String childName;
private Function<T, List<T>> childrenGetter;
private BiConsumer<T, List<T>> childrenSetter;
private TreeRecursive(List<T> list, String childName,
Function<T, List<T>> childrenGetter,
BiConsumer<T, List<T>> childrenSetter) {
this.list = deepCopy(list);
this.childName = childName;
this.childrenGetter = childrenGetter;
this.childrenSetter = childrenSetter;
}
// 在TreeRecursive类中添加以下方法
public <R> List<R> mapTree(Function<T, R> mapper) {
return mapTreeRecursive(list, mapper);
}
private <R> List<R> mapTreeRecursive(List<T> nodes, Function<T, R> mapper) {
List<R> result = new ArrayList<>();
for (T node : nodes) {
// 创建新节点
R mappedNode = mapper.apply(node);
result.add(mappedNode);
// 递归处理子节点
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
List<R> mappedChildren = mapTreeRecursive(children, mapper);
// 将映射后的子节点设置到当前节点
if (mappedNode instanceof Map) {
@SuppressWarnings("unchecked")
Map<String, Object> mappedMap = (Map<String, Object>) mappedNode;
mappedMap.put(childName, mappedChildren);
}
// 如果是Bean对象,可以使用childrenSetter
else if (childrenSetter != null) {
// 这里需要类型转换,实际使用时可能需要调整
@SuppressWarnings("unchecked")
T castedNode = (T) mappedNode;
@SuppressWarnings("unchecked")
List<T> castedChildren = (List<T>) mappedChildren;
setChildren(castedNode, castedChildren);
}
}
}
return result;
}
/**
* 使用反射方式(适用于Map或Bean)
*/
public static <T> TreeRecursive<T> recursive(List<T> list, String childName) {
return new TreeRecursive<>(list, childName, null, null);
}
/**
* 使用自定义getter/setter(推荐用于Bean对象)
*/
public static <T> TreeRecursive<T> recursive(List<T> list,
Function<T, List<T>> childrenGetter,
BiConsumer<T, List<T>> childrenSetter) {
return new TreeRecursive<>(list, "children", childrenGetter, childrenSetter);
}
public static <T> TreeRecursive<T> recursive(List<T> list) {
return new TreeRecursive<>(list, "children", null, null);
}
// 深度拷贝方法
private List<T> deepCopy(List<T> original) {
if (original == null) return new ArrayList<>();
return new ArrayList<>(original);
}
// 获取子节点列表
@SuppressWarnings("unchecked")
private List<T> getChildren(T node) {
if (childrenGetter != null) {
return childrenGetter.apply(node);
}
if (node instanceof Map) {
Map<String, Object> map = (Map<String, Object>) node;
Object children = map.get(childName);
if (children instanceof List) {
return (List<T>) children;
}
}
// 如果是Bean对象,可以通过反射获取,这里简化处理
return Collections.emptyList();
}
// 设置子节点列表
@SuppressWarnings("unchecked")
private void setChildren(T node, List<T> children) {
if (childrenSetter != null) {
childrenSetter.accept(node, children);
return;
}
if (node instanceof Map) {
Map<String, Object> map = (Map<String, Object>) node;
map.put(childName, children);
}
}
/**
* 按顺序获取树的所有叶子节点
*/
public List<T> getLeafNodes() {
List<T> leaves = new ArrayList<>();
for (T node : list) {
traverseLeafNodes(node, leaves);
}
return leaves;
}
private void traverseLeafNodes(T node, List<T> leaves) {
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
for (T child : children) {
traverseLeafNodes(child, leaves);
}
} else {
leaves.add(node);
}
}
public boolean some(Predicate<T> predicate) {
for (T node : list) {
if (someRecursive(node, predicate)) {
return true;
}
}
return false;
}
private boolean someRecursive(T node, Predicate<T> predicate) {
if (predicate.test(node)) {
return true;
}
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
for (T child : children) {
if (someRecursive(child, predicate)) {
return true;
}
}
}
return false;
}
public T find(Predicate<T> predicate) {
for (T node : list) {
T result = findRecursive(node, predicate);
if (result != null) {
return result;
}
}
return null;
}
private T findRecursive(T node, Predicate<T> predicate) {
if (predicate.test(node)) {
return node;
}
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
for (T child : children) {
T result = findRecursive(child, predicate);
if (result != null) {
return result;
}
}
}
return null;
}
public List<T> filter(Predicate<T> predicate) {
return filterRecursive(list, predicate);
}
private List<T> filterRecursive(List<T> nodes, Predicate<T> predicate) {
List<T> result = new ArrayList<>();
for (T node : nodes) {
T newNode = node; // 这里假设T是不可变的,如果需要修改可以clone
List<T> children = getChildren(newNode);
if (children != null && !children.isEmpty()) {
List<T> filteredChildren = filterRecursive(children, predicate);
setChildren(newNode, filteredChildren);
}
if (predicate.test(newNode)) {
result.add(newNode);
}
}
return result;
}
public List<T> flatFilter(Predicate<T> predicate) {
List<T> result = new ArrayList<>();
flatFilterRecursive(list, predicate, result);
return result;
}
private void flatFilterRecursive(List<T> nodes, Predicate<T> predicate, List<T> result) {
for (T node : nodes) {
if (predicate.test(node)) {
result.add(node);
}
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
flatFilterRecursive(children, predicate, result);
}
}
}
public <R> List<R> map(Function<T, R> mapper) {
return mapRecursive(list, mapper);
}
private <R> List<R> mapRecursive(List<T> nodes, Function<T, R> mapper) {
List<R> result = new ArrayList<>();
for (T node : nodes) {
R mappedNode = mapper.apply(node);
result.add(mappedNode);
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
// 如果需要处理子节点,可以递归调用
}
}
return result;
}
public void forEach(Consumer<T> consumer) {
forEachRecursive(list, consumer);
}
private void forEachRecursive(List<T> nodes, Consumer<T> consumer) {
for (T node : nodes) {
consumer.accept(node);
List<T> children = getChildren(node);
if (children != null && !children.isEmpty()) {
forEachRecursive(children, consumer);
}
}
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.api.dto; package com.yeejoin.amos.boot.module.common.api.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -238,4 +243,29 @@ public class DPFilterParamForDetailDto { ...@@ -238,4 +243,29 @@ public class DPFilterParamForDetailDto {
* 信息化 * 信息化
*/ */
private String informationSituation; private String informationSituation;
@ApiModelProperty(value = "管辖机构")
private String superviseKey;
@ApiModelProperty(value = "所属区域")
private List<String> region;
private String regionCode;
@ApiModelProperty(value = "求援时间区间")
private EmergencyTimeRange emergencyTimeRange;
@Data
@Getter
@Setter
public static class EmergencyTimeRange {
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "求援时间开始")
private Date beginDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "求援时间结束")
private Date endDate;
}
} }
...@@ -236,7 +236,12 @@ ...@@ -236,7 +236,12 @@
<where> <where>
is_delete = 0 is_delete = 0
and biz_org_code like concat(#{orgCode}, '%') and biz_org_code like concat(#{orgCode}, '%')
<if test="dto.superviseKey != null and dto.superviseKey != ''">
AND biz_org_code LIKE CONCAT(#{dto.superviseKey}, '%')
</if>
<if test="dto.regionCode != null and dto.regionCode != ''">
AND region_code LIKE CONCAT('%', #{dto.regionCode}, '%')
</if>
<if test="dto != null and dto.timeSearchOne != null and dto.timeSearchOne.beginDate != null and dto.timeSearchOne.beginDate != ''"> <if test="dto != null and dto.timeSearchOne != null and dto.timeSearchOne.beginDate != null and dto.timeSearchOne.beginDate != ''">
and date_ge(CAST(call_time as date), #{dto.timeSearchOne.beginDate}) and date_ge(CAST(call_time as date), #{dto.timeSearchOne.beginDate})
</if> </if>
......
package com.yeejoin.amos.boot.module.statistcs.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.TreeRecursive;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.StCommonServiceImpl; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.StCommonServiceImpl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
...@@ -13,13 +16,19 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -13,13 +16,19 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController @RestController
@Api(tags = "统计公共API") @Api(tags = "统计公共API")
@RequestMapping(value = "/st-common") @RequestMapping(value = "/st-common")
public class StCommonController extends BaseController { public class StCommonController extends BaseController {
private ObjectMapper objectMapper = new ObjectMapper();
private StCommonServiceImpl commonService; private StCommonServiceImpl commonService;
public StCommonController(StCommonServiceImpl commonService) { public StCommonController(StCommonServiceImpl commonService) {
...@@ -53,6 +62,42 @@ public class StCommonController extends BaseController { ...@@ -53,6 +62,42 @@ public class StCommonController extends BaseController {
return ResponseHelper.buildResponse(regionList); return ResponseHelper.buildResponse(regionList);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/4level/region-tree")
@ApiOperation(httpMethod = "POST", value = "获取用户regionCode,POST方式", notes = "获取用户regionCode,POST方式")
public ResponseModel<Object> ReginTreeFor4LevelWithPost(@RequestBody JSONObject jsonObj) {
List<RegionModel> regionList = commonService.getReginTreeFor4Level(Integer.valueOf(jsonObj.getString("cityCode")));
List<Map<String, Object>> regionMapList = regionList.stream()
.map(this::convertRegionToMap)
.collect(Collectors.toList());
List<Map<String, Object>> treeData = TreeRecursive.recursive(regionMapList)
.mapTree(node -> {
Map<String, Object> newNode = new HashMap<>(node);
newNode.put("key", node.get("regionCode").toString());
newNode.put("value", node.get("regionCode").toString());
newNode.put("label", node.get("regionName").toString());
newNode.put("title", node.get("regionName").toString());
return newNode;
});
return ResponseHelper.buildResponse(treeData);
}
private Map<String, Object> convertRegionToMap(RegionModel region) {
Map<String, Object> map = new HashMap<>();
map.put("regionCode", region.getRegionCode());
map.put("regionName", region.getRegionName());
if (region.getChildren() != null && !region.getChildren().isEmpty()) {
List<Map<String, Object>> children = region.getChildren().stream()
.map(this::convertRegionToMap)
.collect(Collectors.toList());
map.put("children", children);
} else {
map.put("children", Collections.emptyList());
}
return map;
}
/** /**
* 获取设备类型 * 获取设备类型
* @return Map * @return Map
......
...@@ -43,6 +43,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilde ...@@ -43,6 +43,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilde
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.DateTimeUtil; import org.typroject.tyboot.core.foundation.utils.DateTimeUtil;
import org.typroject.tyboot.core.foundation.utils.DateUtil; import org.typroject.tyboot.core.foundation.utils.DateUtil;
...@@ -221,10 +222,14 @@ public class YJDPStatisticsServiceImpl { ...@@ -221,10 +222,14 @@ public class YJDPStatisticsServiceImpl {
return alertCalledMapper.getAlertPaperInfoList(regionCodes, false); return alertCalledMapper.getAlertPaperInfoList(regionCodes, false);
} }
public Page<Map<String,Object>> instantAlertList(DPFilterParamForDetailDto dpFilterParamForDetailDto,Page page) { public Page<Map<String, Object>> instantAlertList(DPFilterParamForDetailDto dpFilterParamForDetailDto, Page page) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode()); String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
dpFilterParamForDetailDto.setOrgCode(orgCode); dpFilterParamForDetailDto.setOrgCode(orgCode);
return alertCalledMapper.getInstantAlertPage(page,dpFilterParamForDetailDto); if (!ObjectUtils.isEmpty(dpFilterParamForDetailDto.getRegion())) {
List<String> region = dpFilterParamForDetailDto.getRegion();
dpFilterParamForDetailDto.setRegionCode(StringUtils.join(region, "#"));
}
return alertCalledMapper.getInstantAlertPage(page, dpFilterParamForDetailDto);
} }
public List<Map<String, Object>> getAlertCallType(DPFilterParamForDetailDto dpFilterParamForDetailDto) { public List<Map<String, Object>> getAlertCallType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
...@@ -744,6 +749,9 @@ public class YJDPStatisticsServiceImpl { ...@@ -744,6 +749,9 @@ public class YJDPStatisticsServiceImpl {
if (!ValidationUtil.isEmpty(recordFilterVo.getTreeValue())){ if (!ValidationUtil.isEmpty(recordFilterVo.getTreeValue())){
recordFilterVo.setAlertTypeCode(recordFilterVo.getTreeValue()); recordFilterVo.setAlertTypeCode(recordFilterVo.getTreeValue());
} }
if (!ObjectUtils.isEmpty(recordFilterVo.getRegion())) {
recordFilterVo.setRegionCode(StringUtils.join(recordFilterVo.getRegion(), "#"));
}
Page<Map<String, Object>> mapPage = alertStatisticsMapper.alertRecordForPage(new Page<>(recordFilterVo.getCurrent(), recordFilterVo.getSize()),recordFilterVo,orgCode); Page<Map<String, Object>> mapPage = alertStatisticsMapper.alertRecordForPage(new Page<>(recordFilterVo.getCurrent(), recordFilterVo.getSize()),recordFilterVo,orgCode);
return ResponseHelper.buildResponse(mapPage); return ResponseHelper.buildResponse(mapPage);
} }
...@@ -830,6 +838,9 @@ public class YJDPStatisticsServiceImpl { ...@@ -830,6 +838,9 @@ public class YJDPStatisticsServiceImpl {
if (!ValidationUtil.isEmpty(detailDto.getEquListCode())){ if (!ValidationUtil.isEmpty(detailDto.getEquListCode())){
lambda.le(AlertUseUnitStatistics::getEquipmentClassificationCode, detailDto.getEquListCode()); lambda.le(AlertUseUnitStatistics::getEquipmentClassificationCode, detailDto.getEquListCode());
} }
if (!ValidationUtil.isEmpty(detailDto.getSuperviseKey())) {
lambda.likeRight(AlertUseUnitStatistics::getSupervisoryUnitOrgCode, detailDto.getSuperviseKey());
}
IPage<AlertUseUnitStatistics> alertUseUnitStatistics = alertUseUnitStatisticsMapper.selectPage(page, lambda); IPage<AlertUseUnitStatistics> alertUseUnitStatistics = alertUseUnitStatisticsMapper.selectPage(page, lambda);
List<AlertUseUnitStatistics> records = alertUseUnitStatistics.getRecords(); List<AlertUseUnitStatistics> records = alertUseUnitStatistics.getRecords();
List<String> useUnitCodeList = records.stream().map(AlertUseUnitStatistics::getUseUnitCode).collect(Collectors.toList()); List<String> useUnitCodeList = records.stream().map(AlertUseUnitStatistics::getUseUnitCode).collect(Collectors.toList());
......
...@@ -705,10 +705,10 @@ ...@@ -705,10 +705,10 @@
AND ac.rec_user_name LIKE CONCAT('%', #{dpFilterParamForDetailDto.recUserName}, '%') AND ac.rec_user_name LIKE CONCAT('%', #{dpFilterParamForDetailDto.recUserName}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.emergencyPerson != null and dpFilterParamForDetailDto.emergencyPerson != ''"> <if test="dpFilterParamForDetailDto.emergencyPerson != null and dpFilterParamForDetailDto.emergencyPerson != ''">
AND ac.emergency_person = #{dpFilterParamForDetailDto.emergencyPerson} AND ac.emergency_person LIKE CONCAT('%', #{dpFilterParamForDetailDto.emergencyPerson}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.emergencyCall != null and dpFilterParamForDetailDto.emergencyCall != ''"> <if test="dpFilterParamForDetailDto.emergencyCall != null and dpFilterParamForDetailDto.emergencyCall != ''">
AND ac.emergency_call LIKE concat('%', #{dpFilterParamForDetailDto.emergencyCall}, '%') AND ac.emergency_call LIKE CONCAT('%', #{dpFilterParamForDetailDto.emergencyCall}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.deviceId != null and dpFilterParamForDetailDto.deviceId != ''"> <if test="dpFilterParamForDetailDto.deviceId != null and dpFilterParamForDetailDto.deviceId != ''">
AND ac.device_id LIKE CONCAT('%', #{dpFilterParamForDetailDto.deviceId}, '%') AND ac.device_id LIKE CONCAT('%', #{dpFilterParamForDetailDto.deviceId}, '%')
...@@ -716,12 +716,20 @@ ...@@ -716,12 +716,20 @@
<if test="dpFilterParamForDetailDto.address != null and dpFilterParamForDetailDto.address != ''"> <if test="dpFilterParamForDetailDto.address != null and dpFilterParamForDetailDto.address != ''">
AND ac.address LIKE CONCAT('%', #{dpFilterParamForDetailDto.address}, '%') AND ac.address LIKE CONCAT('%', #{dpFilterParamForDetailDto.address}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.emergencyStartTime != null and dpFilterParamForDetailDto.emergencyStartTime != ''"> <if test="dpFilterParamForDetailDto.regionCode != null and dpFilterParamForDetailDto.regionCode != ''">
AND dt.arrive_time &gt;= #{dpFilterParamForDetailDto.emergencyStartTime} AND ac.region_code LIKE CONCAT('%', #{dpFilterParamForDetailDto.regionCode}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.emergencyEndTime != null and dpFilterParamForDetailDto.emergencyEndTime != ''"> <if test="dpFilterParamForDetailDto.superviseKey != null and dpFilterParamForDetailDto.superviseKey != ''">
AND dt.arrive_time &lt;= #{dpFilterParamForDetailDto.emergencyEndTime} AND ac.biz_org_code LIKE CONCAT(#{dpFilterParamForDetailDto.superviseKey}, '%')
</if> </if>
<if test="dpFilterParamForDetailDto.emergencyTimeRange != null and dpFilterParamForDetailDto.emergencyTimeRange.beginDate != null">
AND ac.call_time <![CDATA[>=]]>
to_char(#{dpFilterParamForDetailDto.emergencyTimeRange.beginDate}::timestamp, 'YYYY-MM-DD')
</if>
<if test="dpFilterParamForDetailDto.emergencyTimeRange != null and dpFilterParamForDetailDto.emergencyTimeRange.endDate != null">
AND ac.call_time <![CDATA[<=]]>
to_char(#{dpFilterParamForDetailDto.emergencyTimeRange.endDate}::timestamp, 'YYYY-MM-DD')
</if>
<if test="dpFilterParamForDetailDto.alertSourceCode != null and dpFilterParamForDetailDto.alertSourceCode != ''"> <if test="dpFilterParamForDetailDto.alertSourceCode != null and dpFilterParamForDetailDto.alertSourceCode != ''">
AND ac.alert_source_code = #{dpFilterParamForDetailDto.alertSourceCode} AND ac.alert_source_code = #{dpFilterParamForDetailDto.alertSourceCode}
</if> </if>
......
package com.yeejoin.amos.boot.module.ymt.flc.biz.controller; package com.yeejoin.amos.boot.module.ymt.flc.biz.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey; import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.TreeRecursive;
import com.yeejoin.amos.boot.module.ymt.flc.api.dto.RegUnitInfoDto; import com.yeejoin.amos.boot.module.ymt.flc.api.dto.RegUnitInfoDto;
import com.yeejoin.amos.boot.module.ymt.flc.api.service.IRegUnitInfoService; import com.yeejoin.amos.boot.module.ymt.flc.api.service.IRegUnitInfoService;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
...@@ -153,6 +155,23 @@ public class RegUnitInfoController extends BaseController { ...@@ -153,6 +155,23 @@ public class RegUnitInfoController extends BaseController {
return ResponseHelper.buildResponse(result); return ResponseHelper.buildResponse(result);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/management-unit/tree")
@ApiOperation(httpMethod = "POST", value = "POST请求管辖机构树", notes = "POST请求管辖机构树")
public ResponseModel<Collection> managementUnitTreeWithPost(@RequestBody(required = false) JSONObject jsonObj) {
Collection result = iRegUnitInfoService.getManagementUnitTree(jsonObj.getString("orgCode"), jsonObj.getString("cityCode"));
List<Map<String, Object>> treeData = TreeRecursive.recursive((List<Map<String, Object>>) result)
.mapTree((node) -> {
Map<String, Object> newNode = new HashMap<>(node);
newNode.put("key", node.get("orgCode").toString());
newNode.put("value", node.get("orgCode").toString());
newNode.put("label", node.get("companyName").toString());
newNode.put("title", node.get("companyName").toString());
return newNode;
});
return ResponseHelper.buildResponse(treeData);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{tel}/sendTelCode") @GetMapping(value = "/{tel}/sendTelCode")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment