Merge branch 'main' into dev-lilin
This commit is contained in:
commit
94c189c8df
@ -65,6 +65,7 @@ public class SecurityConfig {
|
|||||||
// .requestMatchers("/eq/**").permitAll()
|
// .requestMatchers("/eq/**").permitAll()
|
||||||
// .requestMatchers("/env/**").permitAll()
|
// .requestMatchers("/env/**").permitAll()
|
||||||
// .requestMatchers("/wt/**").permitAll()
|
// .requestMatchers("/wt/**").permitAll()
|
||||||
|
// .requestMatchers("/fb/**").permitAll()
|
||||||
// .requestMatchers("/zq/**").permitAll()
|
// .requestMatchers("/zq/**").permitAll()
|
||||||
// .requestMatchers("/wq/**").permitAll()
|
// .requestMatchers("/wq/**").permitAll()
|
||||||
// .requestMatchers("/vd/**").permitAll()
|
// .requestMatchers("/vd/**").permitAll()
|
||||||
|
|||||||
@ -122,11 +122,19 @@ public class SwaggerConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
public GroupedOpenApi groupEnvFprApi() {
|
public GroupedOpenApi groupEnvFprApi() {
|
||||||
return GroupedOpenApi.builder()
|
return GroupedOpenApi.builder()
|
||||||
.group("3.5 全过程-生态环保数据服务-鱼类调查")
|
.group("3.6 全过程-生态环保数据服务-鱼类调查")
|
||||||
.packagesToScan("com.yfd.platform.qgc_env.fpr.controller")
|
.packagesToScan("com.yfd.platform.qgc_env.fpr.controller")
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public GroupedOpenApi groupEnvFbApi() {
|
||||||
|
return GroupedOpenApi.builder()
|
||||||
|
.group("3.7 全过程-生态环保数据服务-增殖放流")
|
||||||
|
.packagesToScan("com.yfd.platform.qgc_env.fb.controller")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
|||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
||||||
@ -42,6 +43,13 @@ public class EngEqDataController {
|
|||||||
return ResponseResult.successData(engEqDataService.getDayKendoListCust(dataSourceRequest));
|
return ResponseResult.successData(engEqDataService.getDayKendoListCust(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/data/drtp/GetKendoListCust")
|
||||||
|
@Operation(summary = "生态流量周旬月季年数据")
|
||||||
|
public ResponseResult getDrtpKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceResult<EngEqDrtpDataVo> result = engEqDataService.getDrtpKendoListCust(dataSourceRequest);
|
||||||
|
return ResponseResult.successData(result);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/interval/GetKendoListCust")
|
@PostMapping("/interval/GetKendoListCust")
|
||||||
@Operation(summary = "生态流量达标情况")
|
@Operation(summary = "生态流量达标情况")
|
||||||
public ResponseResult getIntervalKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getIntervalKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
|||||||
@ -0,0 +1,126 @@
|
|||||||
|
package com.yfd.platform.qgc_eng.eq.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "生态流量周旬月季年数据")
|
||||||
|
public class EngEqDrtpDataVo {
|
||||||
|
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Schema(description = "电站编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "电站名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "工程名称")
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "基地流域编码")
|
||||||
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "基地流域名称")
|
||||||
|
private String hbrvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "流域编码")
|
||||||
|
private String rvcd;
|
||||||
|
|
||||||
|
@Schema(description = "流域名称")
|
||||||
|
private String rvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "行政区名称")
|
||||||
|
private String addvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "入库流量")
|
||||||
|
private BigDecimal qi;
|
||||||
|
|
||||||
|
@Schema(description = "出库流量")
|
||||||
|
private BigDecimal qo;
|
||||||
|
|
||||||
|
@Schema(description = "坝上水位")
|
||||||
|
private BigDecimal rz;
|
||||||
|
|
||||||
|
@Schema(description = "坝下水位")
|
||||||
|
private BigDecimal dz;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量限值(环保部)")
|
||||||
|
private BigDecimal qecLimit;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量")
|
||||||
|
private BigDecimal qec;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量限值(水利部)")
|
||||||
|
private BigDecimal mwrLimit;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量限值(多年平均)")
|
||||||
|
private BigDecimal avqLimit;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量系数(环保部)")
|
||||||
|
private BigDecimal qecC;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量系数(水利部)")
|
||||||
|
private BigDecimal mwrC;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量系数(多年平均)")
|
||||||
|
private BigDecimal avqC;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标")
|
||||||
|
private Integer sfdb;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标中文")
|
||||||
|
private String sfdbName;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标(环保部)")
|
||||||
|
private Integer qecSfdb;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标(水利部)")
|
||||||
|
private Integer mwrSfdb;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标(水利部)中文")
|
||||||
|
private String mwrSfdbName;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标(多年平均)")
|
||||||
|
private Integer avqSfdb;
|
||||||
|
|
||||||
|
@Schema(description = "生态流量是否达标(多年平均)中文")
|
||||||
|
private String avqSfdbName;
|
||||||
|
|
||||||
|
@Schema(description = "数据时间")
|
||||||
|
private Date tm;
|
||||||
|
|
||||||
|
@Schema(description = "月")
|
||||||
|
private Integer month;
|
||||||
|
|
||||||
|
@Schema(description = "年")
|
||||||
|
private Integer year;
|
||||||
|
|
||||||
|
@Schema(description = "维度类型")
|
||||||
|
private String drtp;
|
||||||
|
|
||||||
|
@Schema(description = "时段")
|
||||||
|
private Integer dr;
|
||||||
|
|
||||||
|
@Schema(description = "基地排序")
|
||||||
|
private Integer baseStepSort;
|
||||||
|
|
||||||
|
@Schema(description = "流域排序")
|
||||||
|
private Integer rvcdStepSort;
|
||||||
|
|
||||||
|
@Schema(description = "电站排序")
|
||||||
|
private Integer rstcdStepSort;
|
||||||
|
|
||||||
|
@Schema(description = "站点排序")
|
||||||
|
private Integer siteStepSort;
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ package com.yfd.platform.qgc_eng.eq.service;
|
|||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
||||||
@ -21,6 +22,8 @@ public interface EngEqDataService {
|
|||||||
|
|
||||||
DataSourceResult<EngEqDayDataVo> getDayKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqDayDataVo> getDayKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<EngEqDrtpDataVo> getDrtpKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<EngEqMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.common.Group;
|
||||||
import com.yfd.platform.common.GroupHelper;
|
import com.yfd.platform.common.GroupHelper;
|
||||||
import com.yfd.platform.common.GroupingInfo;
|
import com.yfd.platform.common.GroupingInfo;
|
||||||
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||||
@ -13,6 +14,7 @@ import com.yfd.platform.common.enums.QecIntervalEnum;
|
|||||||
import com.yfd.platform.common.enums.ShowEnum;
|
import com.yfd.platform.common.enums.ShowEnum;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
||||||
@ -70,6 +72,15 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return queryDayGroupList(dataSourceRequest, loadOptions);
|
return queryDayGroupList(dataSourceRequest, loadOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<EngEqDrtpDataVo> getDrtpKendoListCust(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
if (CollUtil.isEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
|
||||||
|
return queryDrtpDetailList(dataSourceRequest, loadOptions);
|
||||||
|
}
|
||||||
|
return queryDrtpGroupList(dataSourceRequest, loadOptions);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
@ -742,7 +753,9 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
||||||
result.setData((List<EngEqHourIntervalVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
result.setData((List<EngEqHourIntervalVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
||||||
} else {
|
} else {
|
||||||
result.setData((List<EngEqHourIntervalVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
|
List<Group> grouped = new GroupHelper().group(rows, Arrays.asList(groupInfos));
|
||||||
|
populateHourDayGroupKeyNames(grouped);
|
||||||
|
result.setData((List<EngEqHourIntervalVo>) (List<?>) grouped);
|
||||||
}
|
}
|
||||||
result.setTotal(0L);
|
result.setTotal(0L);
|
||||||
result.setAggregates(new HashMap<>());
|
result.setAggregates(new HashMap<>());
|
||||||
@ -897,7 +910,9 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
||||||
result.setData((List<EngEqDayIntervalVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
result.setData((List<EngEqDayIntervalVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
||||||
} else {
|
} else {
|
||||||
result.setData((List<EngEqDayIntervalVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
|
List<Group> grouped = new GroupHelper().group(rows, Arrays.asList(groupInfos));
|
||||||
|
populateHourDayGroupKeyNames(grouped);
|
||||||
|
result.setData((List<EngEqDayIntervalVo>) (List<?>) grouped);
|
||||||
}
|
}
|
||||||
result.setTotal(0L);
|
result.setTotal(0L);
|
||||||
result.setAggregates(new HashMap<>());
|
result.setAggregates(new HashMap<>());
|
||||||
@ -951,6 +966,169 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void populateHourDayGroupKeyNames(List<Group> groups) {
|
||||||
|
if (CollUtil.isEmpty(groups)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<String, String> baseNameCache = new HashMap<>();
|
||||||
|
Map<String, String> hbrvNameCache = new HashMap<>();
|
||||||
|
populateHourDayGroupKeyNames(groups, baseNameCache, hbrvNameCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void populateHourDayGroupKeyNames(List<Group> groups,
|
||||||
|
Map<String, String> baseNameCache,
|
||||||
|
Map<String, String> hbrvNameCache) {
|
||||||
|
for (Group group : groups) {
|
||||||
|
if (group == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (StrUtil.isBlank(group.getKeyName())) {
|
||||||
|
group.setKeyName(resolveHourDayGroupKeyName(group.getField(), group.getKey(), baseNameCache, hbrvNameCache));
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(group.getItems()) && group.getItems().get(0) instanceof Group) {
|
||||||
|
populateHourDayGroupKeyNames((List<Group>) group.getItems(), baseNameCache, hbrvNameCache);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveHourDayGroupKeyName(Object field,
|
||||||
|
Object key,
|
||||||
|
Map<String, String> baseNameCache,
|
||||||
|
Map<String, String> hbrvNameCache) {
|
||||||
|
if (field == null || key == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String fieldName = String.valueOf(field);
|
||||||
|
String keyValue = String.valueOf(key);
|
||||||
|
if (StrUtil.isBlank(keyValue)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (fieldName) {
|
||||||
|
case "stnm", "ennm", "titleName", "baseName", "hbrvcdName", "addvcdName" -> keyValue;
|
||||||
|
case "sttp", "sttpCode" -> "ENG".equalsIgnoreCase(keyValue) ? "电站" : keyValue;
|
||||||
|
case "baseId" -> StrUtil.blankToDefault(resolveBaseName(keyValue, baseNameCache), keyValue);
|
||||||
|
case "hbrvcd" -> StrUtil.blankToDefault(resolveHbrvName(keyValue, hbrvNameCache), keyValue);
|
||||||
|
case "dtin" -> resolveDtinName(keyValue);
|
||||||
|
case "dtinEnv" -> resolveDtinEnvName(keyValue);
|
||||||
|
case "prsc" -> resolvePrscName(keyValue);
|
||||||
|
case "bldstt", "bldsttCcode" -> resolveBldsttName(keyValue);
|
||||||
|
case "qecInterval", "mwrInterval", "avqInterval" -> resolveQecIntervalName(keyValue);
|
||||||
|
case "anchoPointState", "mwrPointState", "avqPointState" -> resolvePointStateName(keyValue);
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveBaseName(String baseId, Map<String, String> cache) {
|
||||||
|
if (StrUtil.isBlank(baseId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (cache.containsKey(baseId)) {
|
||||||
|
return cache.get(baseId);
|
||||||
|
}
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("code", baseId);
|
||||||
|
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null,
|
||||||
|
"SELECT hb.BASENAME AS name FROM SD_HYDROBASE hb " +
|
||||||
|
"WHERE hb.BASEID = #{map.code} AND NVL(hb.IS_DELETED, 0) = 0 AND ROWNUM = 1",
|
||||||
|
paramMap);
|
||||||
|
String name = extractName(rows);
|
||||||
|
cache.put(baseId, name);
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveHbrvName(String hbrvcd, Map<String, String> cache) {
|
||||||
|
if (StrUtil.isBlank(hbrvcd)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (cache.containsKey(hbrvcd)) {
|
||||||
|
return cache.get(hbrvcd);
|
||||||
|
}
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("code", hbrvcd);
|
||||||
|
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null,
|
||||||
|
"SELECT dic.HBRVNM AS name FROM SD_HBRV_DIC dic " +
|
||||||
|
"WHERE dic.HBRVCD = #{map.code} AND NVL(dic.IS_DELETED, 0) = 0 AND NVL(dic.ENABLED, 1) = 1 AND ROWNUM = 1",
|
||||||
|
paramMap);
|
||||||
|
String name = extractName(rows);
|
||||||
|
cache.put(hbrvcd, name);
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String extractName(List<Map<String, Object>> rows) {
|
||||||
|
if (CollUtil.isEmpty(rows)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Object name = rows.get(0).get("NAME");
|
||||||
|
if (name == null) {
|
||||||
|
name = rows.get(0).get("name");
|
||||||
|
}
|
||||||
|
return name == null ? null : String.valueOf(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveDtinName(String keyValue) {
|
||||||
|
return switch (keyValue) {
|
||||||
|
case "1" -> "是";
|
||||||
|
case "0" -> "否";
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveDtinEnvName(String keyValue) {
|
||||||
|
return switch (keyValue) {
|
||||||
|
case "2" -> "已全部接入";
|
||||||
|
case "1" -> "部分接入";
|
||||||
|
case "0" -> "未接入";
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolvePrscName(String keyValue) {
|
||||||
|
return switch (keyValue) {
|
||||||
|
case "1" -> "大型1";
|
||||||
|
case "2" -> "大型2";
|
||||||
|
case "3" -> "中型";
|
||||||
|
case "4" -> "小型";
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveBldsttName(String keyValue) {
|
||||||
|
return switch (keyValue) {
|
||||||
|
case "0" -> "未建/规划";
|
||||||
|
case "1" -> "在建";
|
||||||
|
case "2" -> "已建";
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveQecIntervalName(String keyValue) {
|
||||||
|
for (QecIntervalEnum item : QecIntervalEnum.values()) {
|
||||||
|
if (Objects.equals(item.getCode(), keyValue)) {
|
||||||
|
return item.getDesc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keyValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolvePointStateName(String keyValue) {
|
||||||
|
String prefix;
|
||||||
|
if (keyValue.startsWith("eef_1_")) {
|
||||||
|
prefix = "大型1";
|
||||||
|
} else if (keyValue.startsWith("eef_2_")) {
|
||||||
|
prefix = "大型2/中型";
|
||||||
|
} else {
|
||||||
|
return keyValue;
|
||||||
|
}
|
||||||
|
return switch (keyValue.substring("eef_".length())) {
|
||||||
|
case "1_none", "2_none" -> prefix + "_无生态流量数据或要求";
|
||||||
|
case "1_1", "2_1" -> prefix + "_>=95%";
|
||||||
|
case "1_2", "2_2" -> prefix + "_90%~95%";
|
||||||
|
case "1_3", "2_3" -> prefix + "_80%~90%";
|
||||||
|
case "1_4", "2_4" -> prefix + "_<80%";
|
||||||
|
default -> keyValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private String buildDayIntervalViewSql(DataSourceRequest.FilterDescriptor filter,
|
private String buildDayIntervalViewSql(DataSourceRequest.FilterDescriptor filter,
|
||||||
Map<String, Object> paramMap,
|
Map<String, Object> paramMap,
|
||||||
int[] indexHolder) {
|
int[] indexHolder) {
|
||||||
@ -1590,6 +1768,101 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private DataSourceResult<EngEqDrtpDataVo> queryDrtpDetailList(DataSourceRequest dataSourceRequest,
|
||||||
|
DataSourceLoadOptionsBase loadOptions) {
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append(buildDrtpDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
|
||||||
|
.append(" FROM (")
|
||||||
|
.append(buildDrtpViewSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
String filterSql = buildDrtpFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
|
||||||
|
if (StrUtil.isNotBlank(filterSql)) {
|
||||||
|
sql.append(" AND ").append(filterSql).append(" ");
|
||||||
|
}
|
||||||
|
sql.append(buildDrtpDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
|
List<EngEqDrtpDataVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EngEqDrtpDataVo.class);
|
||||||
|
DataSourceResult<EngEqDrtpDataVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(page != null ? page.getTotal() : list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataSourceResult<EngEqDrtpDataVo> queryDrtpGroupList(DataSourceRequest dataSourceRequest,
|
||||||
|
DataSourceLoadOptionsBase loadOptions) {
|
||||||
|
List<DataSourceRequest.GroupDescriptor> groups = dataSourceRequest.getGroup();
|
||||||
|
GroupingInfo[] groupInfos = loadOptions == null ? new GroupingInfo[0] : loadOptions.getGroup();
|
||||||
|
List<String> selectItems = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
|
||||||
|
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapDrtpColumn(descriptor.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
selectItems.add(column + " AS " + descriptor.getField().toUpperCase());
|
||||||
|
selectItems.add("COUNT(*) AS COUNT_" + descriptor.getField().toUpperCase());
|
||||||
|
if (CollUtil.isNotEmpty(descriptor.getAggregates())) {
|
||||||
|
for (DataSourceRequest.AggregateDescriptor aggregate : descriptor.getAggregates()) {
|
||||||
|
String aggregateColumn = mapDrtpColumn(aggregate.getField());
|
||||||
|
if (StrUtil.isBlank(aggregateColumn) || StrUtil.isBlank(aggregate.getAggregate())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
selectItems.add(buildAggregateSql(aggregate.getAggregate(), aggregateColumn, aggregate.getField()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (selectItems.isEmpty()) {
|
||||||
|
selectItems.add("t.STCD AS STCD");
|
||||||
|
selectItems.add("COUNT(*) AS COUNT_STCD");
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append(String.join(", ", selectItems))
|
||||||
|
.append(" FROM (")
|
||||||
|
.append(buildDrtpViewSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
String filterSql = buildDrtpFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
|
||||||
|
if (StrUtil.isNotBlank(filterSql)) {
|
||||||
|
sql.append(" AND ").append(filterSql).append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> groupByColumns = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
|
||||||
|
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapDrtpColumn(descriptor.getField());
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
groupByColumns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!groupByColumns.isEmpty()) {
|
||||||
|
sql.append(" GROUP BY ").append(String.join(", ", groupByColumns)).append(" ");
|
||||||
|
}
|
||||||
|
sql.append(buildDrtpGroupOrderBySql(groups));
|
||||||
|
|
||||||
|
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap);
|
||||||
|
DataSourceResult<EngEqDrtpDataVo> result = new DataSourceResult<>();
|
||||||
|
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
||||||
|
result.setData((List<EngEqDrtpDataVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
||||||
|
} else {
|
||||||
|
result.setData((List<EngEqDrtpDataVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
|
||||||
|
}
|
||||||
|
result.setTotal((long) rows.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private DataSourceResult<EngEqIntervalVo> queryIntervalDetailList(DataSourceRequest dataSourceRequest,
|
private DataSourceResult<EngEqIntervalVo> queryIntervalDetailList(DataSourceRequest dataSourceRequest,
|
||||||
DataSourceLoadOptionsBase loadOptions) {
|
DataSourceLoadOptionsBase loadOptions) {
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
@ -2683,6 +2956,75 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
"WHERE NVL(day.IS_DELETED, 0) = 0";
|
"WHERE NVL(day.IS_DELETED, 0) = 0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildDrtpViewSql() {
|
||||||
|
return "SELECT " +
|
||||||
|
"drtp.ID AS id, " +
|
||||||
|
"eng.STCD AS stcd, " +
|
||||||
|
"eng.ENNM AS stnm, " +
|
||||||
|
"eng.ENNM AS ennm, " +
|
||||||
|
"eng.BASE_ID AS baseId, " +
|
||||||
|
"hb.BASENAME AS baseName, " +
|
||||||
|
"eng.HBRVCD AS hbrvcd, " +
|
||||||
|
"hbrv.HBRVNM AS hbrvcdName, " +
|
||||||
|
"eng.RVCD AS rvcd, " +
|
||||||
|
"rv.RVNM AS rvcdName, " +
|
||||||
|
"addv.ADDVNM AS addvcdName, " +
|
||||||
|
"runDrtp.QI AS qi, " +
|
||||||
|
"runDrtp.QO AS qo, " +
|
||||||
|
"runDrtp.RZ AS rz, " +
|
||||||
|
"runDrtp.DZ AS dz, " +
|
||||||
|
"drtp.QEC_LIMIT AS qecLimit, " +
|
||||||
|
"drtp.QEC AS qec, " +
|
||||||
|
"drtp.MWR_LIMIT AS mwrLimit, " +
|
||||||
|
"drtp.AVQ_LIMIT AS avqLimit, " +
|
||||||
|
"drtp.QEC_C AS qecC, " +
|
||||||
|
"drtp.MWR_C AS mwrC, " +
|
||||||
|
"drtp.AVQ_C AS avqC, " +
|
||||||
|
"drtp.SFDB AS sfdb, " +
|
||||||
|
"CASE NVL(drtp.SFDB, -1) WHEN 0 THEN '不达标' WHEN 1 THEN '达标' WHEN 2 THEN '无生态流量数据' WHEN 3 THEN '无生态流量限值要求' ELSE NULL END AS sfdbName, " +
|
||||||
|
"drtp.SFDB AS qecSfdb, " +
|
||||||
|
"drtp.MWR_SFDB AS mwrSfdb, " +
|
||||||
|
"CASE NVL(drtp.MWR_SFDB, -1) WHEN 0 THEN '不达标' WHEN 1 THEN '达标' WHEN 2 THEN '无生态流量数据' WHEN 3 THEN '无生态流量限值要求' ELSE NULL END AS mwrSfdbName, " +
|
||||||
|
"drtp.AVQ_SFDB AS avqSfdb, " +
|
||||||
|
"CASE NVL(drtp.AVQ_SFDB, -1) WHEN 0 THEN '不达标' WHEN 1 THEN '达标' WHEN 2 THEN '无生态流量数据' WHEN 3 THEN '无生态流量限值要求' ELSE NULL END AS avqSfdbName, " +
|
||||||
|
"drtp.TM AS tm, " +
|
||||||
|
"drtp.YEAR AS year, " +
|
||||||
|
"drtp.MONTH AS month, " +
|
||||||
|
"drtp.DRTP AS drtp, " +
|
||||||
|
"drtp.DR AS dr, " +
|
||||||
|
"NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " +
|
||||||
|
"NVL(along.ORDER_INDEX, 999999) AS rvcdStepSort, " +
|
||||||
|
"NVL(rstSort.SORT, 999999) AS rstcdStepSort, " +
|
||||||
|
"NVL(siteSort.SORT, 999999) AS siteStepSort " +
|
||||||
|
"FROM SD_QECDRTP_S drtp " +
|
||||||
|
"INNER JOIN SD_ENGINFO_B_H eng ON eng.STCD = drtp.STCD AND NVL(eng.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " +
|
||||||
|
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
|
||||||
|
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
|
||||||
|
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
|
||||||
|
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN ( " +
|
||||||
|
" SELECT det.SORT, cfg.RVCD, det.STCD " +
|
||||||
|
" FROM MS_ALONGDET_B det " +
|
||||||
|
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
|
||||||
|
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
|
||||||
|
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " +
|
||||||
|
"LEFT JOIN ( " +
|
||||||
|
" SELECT det.SORT, cfg.RVCD, det.STCD " +
|
||||||
|
" FROM MS_ALONGDET_B det " +
|
||||||
|
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
|
||||||
|
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
|
||||||
|
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " +
|
||||||
|
"LEFT JOIN SD_HYDROPWDRTP_S runDrtp ON drtp.STCD = runDrtp.STCD " +
|
||||||
|
" AND drtp.DRTP = runDrtp.DRTP " +
|
||||||
|
" AND NVL(drtp.DR, -1) = NVL(runDrtp.DR, -1) " +
|
||||||
|
" AND NVL(drtp.MONTH, -1) = NVL(runDrtp.MONTH, -1) " +
|
||||||
|
" AND drtp.YEAR = runDrtp.YEAR " +
|
||||||
|
" AND NVL(runDrtp.IS_DELETED, 0) = 0 " +
|
||||||
|
"WHERE NVL(drtp.IS_DELETED, 0) = 0";
|
||||||
|
}
|
||||||
|
|
||||||
private String buildDayRunDaySql() {
|
private String buildDayRunDaySql() {
|
||||||
return "SELECT run.STCD, TRUNC(run.TM) AS DT, " +
|
return "SELECT run.STCD, TRUNC(run.TM) AS DT, " +
|
||||||
"AVG(run.QI) AS QI, AVG(run.QO) AS QO, AVG(run.RZ) AS RZ, AVG(run.DZ) AS DZ " +
|
"AVG(run.QI) AS QI, AVG(run.QO) AS QO, AVG(run.RZ) AS RZ, AVG(run.DZ) AS DZ " +
|
||||||
@ -2729,6 +3071,25 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return String.join(", ", selected);
|
return String.join(", ", selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildDrtpDetailSelectSql(List<String> selectFields) {
|
||||||
|
Map<String, String> columns = drtpFieldColumns();
|
||||||
|
List<String> selected = new ArrayList<>();
|
||||||
|
if (CollUtil.isEmpty(selectFields)) {
|
||||||
|
selected.addAll(columns.values());
|
||||||
|
} else {
|
||||||
|
for (String field : selectFields) {
|
||||||
|
String column = columns.get(field);
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
selected.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (selected.isEmpty()) {
|
||||||
|
selected.addAll(columns.values());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return String.join(", ", selected);
|
||||||
|
}
|
||||||
|
|
||||||
private Map<String, String> detailFieldColumns() {
|
private Map<String, String> detailFieldColumns() {
|
||||||
Map<String, String> columns = new LinkedHashMap<>();
|
Map<String, String> columns = new LinkedHashMap<>();
|
||||||
columns.put("id", "sqr.ID AS id");
|
columns.put("id", "sqr.ID AS id");
|
||||||
@ -2815,6 +3176,49 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return columns;
|
return columns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, String> drtpFieldColumns() {
|
||||||
|
Map<String, String> columns = new LinkedHashMap<>();
|
||||||
|
columns.put("id", "t.id AS id");
|
||||||
|
columns.put("stcd", "t.stcd AS stcd");
|
||||||
|
columns.put("stnm", "t.stnm AS stnm");
|
||||||
|
columns.put("ennm", "t.ennm AS ennm");
|
||||||
|
columns.put("baseId", "t.baseId AS baseId");
|
||||||
|
columns.put("baseName", "t.baseName AS baseName");
|
||||||
|
columns.put("hbrvcd", "t.hbrvcd AS hbrvcd");
|
||||||
|
columns.put("hbrvcdName", "t.hbrvcdName AS hbrvcdName");
|
||||||
|
columns.put("rvcd", "t.rvcd AS rvcd");
|
||||||
|
columns.put("rvcdName", "t.rvcdName AS rvcdName");
|
||||||
|
columns.put("addvcdName", "t.addvcdName AS addvcdName");
|
||||||
|
columns.put("qi", "t.qi AS qi");
|
||||||
|
columns.put("qo", "t.qo AS qo");
|
||||||
|
columns.put("rz", "t.rz AS rz");
|
||||||
|
columns.put("dz", "t.dz AS dz");
|
||||||
|
columns.put("qecLimit", "t.qecLimit AS qecLimit");
|
||||||
|
columns.put("qec", "t.qec AS qec");
|
||||||
|
columns.put("mwrLimit", "t.mwrLimit AS mwrLimit");
|
||||||
|
columns.put("avqLimit", "t.avqLimit AS avqLimit");
|
||||||
|
columns.put("qecC", "t.qecC AS qecC");
|
||||||
|
columns.put("mwrC", "t.mwrC AS mwrC");
|
||||||
|
columns.put("avqC", "t.avqC AS avqC");
|
||||||
|
columns.put("sfdb", "t.sfdb AS sfdb");
|
||||||
|
columns.put("sfdbName", "t.sfdbName AS sfdbName");
|
||||||
|
columns.put("qecSfdb", "t.qecSfdb AS qecSfdb");
|
||||||
|
columns.put("mwrSfdb", "t.mwrSfdb AS mwrSfdb");
|
||||||
|
columns.put("mwrSfdbName", "t.mwrSfdbName AS mwrSfdbName");
|
||||||
|
columns.put("avqSfdb", "t.avqSfdb AS avqSfdb");
|
||||||
|
columns.put("avqSfdbName", "t.avqSfdbName AS avqSfdbName");
|
||||||
|
columns.put("tm", "t.tm AS tm");
|
||||||
|
columns.put("year", "t.year AS year");
|
||||||
|
columns.put("month", "t.month AS month");
|
||||||
|
columns.put("drtp", "t.drtp AS drtp");
|
||||||
|
columns.put("dr", "t.dr AS dr");
|
||||||
|
columns.put("baseStepSort", "t.baseStepSort AS baseStepSort");
|
||||||
|
columns.put("rvcdStepSort", "t.rvcdStepSort AS rvcdStepSort");
|
||||||
|
columns.put("rstcdStepSort", "t.rstcdStepSort AS rstcdStepSort");
|
||||||
|
columns.put("siteStepSort", "t.siteStepSort AS siteStepSort");
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
private String buildDetailOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
private String buildDetailOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
||||||
if (CollUtil.isEmpty(sortList)) {
|
if (CollUtil.isEmpty(sortList)) {
|
||||||
return " ORDER BY baseStepSort ASC, rvcdStepSort ASC, rstcdStepSort ASC, siteStepSort ASC, tm DESC";
|
return " ORDER BY baseStepSort ASC, rvcdStepSort ASC, rstcdStepSort ASC, siteStepSort ASC, tm DESC";
|
||||||
@ -3596,6 +4000,10 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return "dt".equalsIgnoreCase(field) || "tm".equalsIgnoreCase(field);
|
return "dt".equalsIgnoreCase(field) || "tm".equalsIgnoreCase(field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isEqDrtpDateField(String field) {
|
||||||
|
return "tm".equalsIgnoreCase(field);
|
||||||
|
}
|
||||||
|
|
||||||
private String buildEqValueExpr(String paramKey, boolean dateField, Object value) {
|
private String buildEqValueExpr(String paramKey, boolean dateField, Object value) {
|
||||||
if (!dateField || value == null) {
|
if (!dateField || value == null) {
|
||||||
return "#{map." + paramKey + "}";
|
return "#{map." + paramKey + "}";
|
||||||
@ -3684,6 +4092,83 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildDrtpFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder) {
|
||||||
|
if (filter == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(filter.getField())) {
|
||||||
|
return buildDrtpLeafCondition(filter, paramMap, indexHolder);
|
||||||
|
}
|
||||||
|
if (CollUtil.isEmpty(filter.getFilters())) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
List<String> conditions = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
|
||||||
|
String childSql = buildDrtpFilterCondition(child, paramMap, indexHolder);
|
||||||
|
if (StrUtil.isNotBlank(childSql)) {
|
||||||
|
conditions.add("(" + childSql + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (conditions.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
String logic = "or".equalsIgnoreCase(filter.getLogic()) ? " OR " : " AND ";
|
||||||
|
return String.join(logic, conditions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildDrtpLeafCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder) {
|
||||||
|
String column = mapDrtpColumn(filter.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return buildGenericCondition(column, filter, paramMap, indexHolder, isEqDrtpDateField(filter.getField()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildDrtpDetailOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
||||||
|
if (CollUtil.isEmpty(sortList)) {
|
||||||
|
return " ORDER BY baseStepSort ASC, rvcdStepSort ASC, rstcdStepSort ASC, siteStepSort ASC, year DESC, month DESC, drtp ASC, dr ASC";
|
||||||
|
}
|
||||||
|
List<String> orders = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.SortDescriptor sort : sortList) {
|
||||||
|
if (sort == null || StrUtil.isBlank(sort.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapDrtpOrderColumn(sort.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String dir = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
|
||||||
|
orders.add(column + " " + dir);
|
||||||
|
}
|
||||||
|
if (orders.isEmpty()) {
|
||||||
|
return " ORDER BY baseStepSort ASC, rvcdStepSort ASC, rstcdStepSort ASC, siteStepSort ASC, year DESC, month DESC, drtp ASC, dr ASC";
|
||||||
|
}
|
||||||
|
return " ORDER BY " + String.join(", ", orders);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildDrtpGroupOrderBySql(List<DataSourceRequest.GroupDescriptor> groups) {
|
||||||
|
if (CollUtil.isEmpty(groups)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
List<String> orders = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
|
||||||
|
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapDrtpColumn(descriptor.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String dir = "desc".equalsIgnoreCase(descriptor.getDir()) || "des".equalsIgnoreCase(descriptor.getDir()) ? "DESC" : "ASC";
|
||||||
|
orders.add(column + " " + dir);
|
||||||
|
}
|
||||||
|
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4247,4 +4732,66 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
default -> null;
|
default -> null;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String mapDrtpColumn(String field) {
|
||||||
|
if (StrUtil.isBlank(field)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (field) {
|
||||||
|
case "id" -> "t.id";
|
||||||
|
case "stcd" -> "t.stcd";
|
||||||
|
case "stnm", "ennm" -> "t.ennm";
|
||||||
|
case "baseId" -> "t.baseId";
|
||||||
|
case "baseName" -> "t.baseName";
|
||||||
|
case "hbrvcd" -> "t.hbrvcd";
|
||||||
|
case "hbrvcdName" -> "t.hbrvcdName";
|
||||||
|
case "rvcd" -> "t.rvcd";
|
||||||
|
case "rvcdName" -> "t.rvcdName";
|
||||||
|
case "addvcdName" -> "t.addvcdName";
|
||||||
|
case "qi" -> "t.qi";
|
||||||
|
case "qo" -> "t.qo";
|
||||||
|
case "rz" -> "t.rz";
|
||||||
|
case "dz" -> "t.dz";
|
||||||
|
case "qecLimit" -> "t.qecLimit";
|
||||||
|
case "qec" -> "t.qec";
|
||||||
|
case "mwrLimit" -> "t.mwrLimit";
|
||||||
|
case "avqLimit" -> "t.avqLimit";
|
||||||
|
case "qecC" -> "t.qecC";
|
||||||
|
case "mwrC" -> "t.mwrC";
|
||||||
|
case "avqC" -> "t.avqC";
|
||||||
|
case "sfdb" -> "t.sfdb";
|
||||||
|
case "sfdbName" -> "t.sfdbName";
|
||||||
|
case "qecSfdb" -> "t.qecSfdb";
|
||||||
|
case "mwrSfdb" -> "t.mwrSfdb";
|
||||||
|
case "mwrSfdbName" -> "t.mwrSfdbName";
|
||||||
|
case "avqSfdb" -> "t.avqSfdb";
|
||||||
|
case "avqSfdbName" -> "t.avqSfdbName";
|
||||||
|
case "tm" -> "t.tm";
|
||||||
|
case "year" -> "t.year";
|
||||||
|
case "month" -> "t.month";
|
||||||
|
case "drtp" -> "t.drtp";
|
||||||
|
case "dr" -> "t.dr";
|
||||||
|
case "baseStepSort" -> "NVL(t.baseStepSort, 999999)";
|
||||||
|
case "rvcdStepSort" -> "NVL(t.rvcdStepSort, 999999)";
|
||||||
|
case "rstcdStepSort" -> "NVL(t.rstcdStepSort, 999999)";
|
||||||
|
case "siteStepSort" -> "NVL(t.siteStepSort, 999999)";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private String mapDrtpOrderColumn(String field) {
|
||||||
|
if (StrUtil.isBlank(field)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (field) {
|
||||||
|
case "id", "baseId", "hbrvcd", "rvcd", "qecC", "mwrC", "avqC",
|
||||||
|
"sfdbName", "qecSfdb", "mwrSfdb", "mwrSfdbName", "avqSfdb",
|
||||||
|
"avqSfdbName", "baseStepSort", "rvcdStepSort", "rstcdStepSort",
|
||||||
|
"siteStepSort", "tm", "year", "month", "drtp", "dr", "stcd",
|
||||||
|
"stnm", "ennm", "qi", "qo", "qec", "sfdb", "rz", "dz",
|
||||||
|
"qecLimit", "mwrLimit", "avqLimit", "baseName", "rvcdName",
|
||||||
|
"hbrvcdName", "addvcdName" -> field;
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.controller;
|
||||||
|
|
||||||
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_env.fb.service.FbStationService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/fb/bsmfr")
|
||||||
|
@Tag(name = "亲鱼选配与培育-亲鱼信息")
|
||||||
|
@Validated
|
||||||
|
public class FbBsmfrController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FbStationService fbStationService;
|
||||||
|
|
||||||
|
@PostMapping("/qgc/GetKendoListCust")
|
||||||
|
@Operation(summary = "(全过程)增殖站二级页面: 亲鱼选配与培育->亲鱼信息")
|
||||||
|
public ResponseResult getQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getQgcBsmfRKendoListCust(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/fish/GetKendoListCust")
|
||||||
|
@Operation(summary = "(全过程)增殖站二级页面: 过程图-亲鱼")
|
||||||
|
public ResponseResult getFishKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getBsmfRFishKendoListCust(dataSourceRequest));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.controller;
|
||||||
|
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_env.fb.service.FbStationService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/fb/fbrdmr")
|
||||||
|
@Tag(name = "鱼类增殖站年度鱼类标记数据")
|
||||||
|
@Validated
|
||||||
|
public class FbFbrdmrController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FbStationService fbStationService;
|
||||||
|
|
||||||
|
@GetMapping("/getFbRelatedYrByStcd")
|
||||||
|
@Operation(summary = "根据增殖站编码查询相关业务年份")
|
||||||
|
public ResponseResult getFbRelatedYrByStcd(@Parameter(description = "增殖站编码")
|
||||||
|
@RequestParam("stcd") String stcd) {
|
||||||
|
return ResponseResult.successData(fbStationService.getFbRelatedYrByStcd(stcd));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.controller;
|
||||||
|
|
||||||
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_env.fb.service.FbStationService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/fb/msfbrdm")
|
||||||
|
@Tag(name = "鱼类增殖站增殖情况")
|
||||||
|
@Validated
|
||||||
|
public class FbMsfbrdmController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FbStationService fbStationService;
|
||||||
|
|
||||||
|
@PostMapping("/fbFlData/GetKendoListCust")
|
||||||
|
@Operation(summary = "增殖站增殖情况(app)")
|
||||||
|
public ResponseResult getFbFlData(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getFbFlDataKendoListCust(dataSourceRequest));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.controller;
|
||||||
|
|
||||||
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_env.fb.service.FbStationService;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/fb/station")
|
||||||
|
@Tag(name = "鱼类增殖站概况")
|
||||||
|
@Validated
|
||||||
|
public class FbStationController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FbStationService fbStationService;
|
||||||
|
|
||||||
|
@PostMapping("/qgcoverview/getOverviewSecond")
|
||||||
|
@Operation(summary = "全流域增殖站概况二级页面")
|
||||||
|
public ResponseResult getQgcOverviewSecond(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getQgcOverviewSecond(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/overview/getOverviewSecond")
|
||||||
|
@Operation(summary = "增殖站概况二级页面")
|
||||||
|
public ResponseResult getOverviewSecond(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getOverviewSecond(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/overview/GetKendoListCust")
|
||||||
|
@Operation(summary = "全流域增殖站概况")
|
||||||
|
public ResponseResult getOverviewKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getOverviewKendoListCust(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/qgc/getFbStaticsData")
|
||||||
|
@Operation(summary = "增殖站放流数据统计")
|
||||||
|
public ResponseResult getQgcFbStaticsData(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fbStationService.getQgcFbStaticsData(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/msstbprpt/getStInfoByStcd")
|
||||||
|
@Operation(summary = "增殖站单站基础信息")
|
||||||
|
public ResponseResult getStInfoByStcd(@Parameter(description = "站点编码") @RequestParam("stcd") String stcd) {
|
||||||
|
return ResponseResult.successData(fbStationService.getStInfoByStcd(stcd));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/rpimnr/qgc/year/GetYearRpStatistics")
|
||||||
|
@Operation(summary = "全过程放流统计总数,根据基地流域分组")
|
||||||
|
public ResponseResult getYearRpStatistics(@Parameter(description = "年份") @RequestParam("year") String year) {
|
||||||
|
return ResponseResult.successData(fbStationService.getYearRpStatistics(year));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(description = "亲鱼过程图表头")
|
||||||
|
public class FbBsmfRFishHeadColumnVo {
|
||||||
|
|
||||||
|
@Schema(description = "字段名")
|
||||||
|
private String dataIndex;
|
||||||
|
|
||||||
|
@Schema(description = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@Schema(description = "是否展示")
|
||||||
|
private Boolean visible = true;
|
||||||
|
|
||||||
|
@Schema(description = "唯一键")
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
@Schema(description = "单位")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@Schema(description = "是否合并")
|
||||||
|
private boolean merge;
|
||||||
|
|
||||||
|
@Schema(description = "数据类型")
|
||||||
|
private String dataType;
|
||||||
|
|
||||||
|
@Schema(description = "数据格式")
|
||||||
|
private String dataFormat;
|
||||||
|
|
||||||
|
@Schema(description = "子节点")
|
||||||
|
private List<FbBsmfRFishHeadColumnVo> children;
|
||||||
|
|
||||||
|
public FbBsmfRFishHeadColumnVo(String title, String dataIndex) {
|
||||||
|
this.title = title;
|
||||||
|
this.dataIndex = dataIndex;
|
||||||
|
this.key = dataIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FbBsmfRFishHeadColumnVo(String title, String dataIndex, String key) {
|
||||||
|
this.title = title;
|
||||||
|
this.dataIndex = dataIndex;
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FbBsmfRFishHeadColumnVo(String dataIndex,
|
||||||
|
String title,
|
||||||
|
Boolean visible,
|
||||||
|
String key,
|
||||||
|
boolean merge,
|
||||||
|
List<FbBsmfRFishHeadColumnVo> children) {
|
||||||
|
this.title = title;
|
||||||
|
this.dataIndex = dataIndex;
|
||||||
|
this.visible = visible;
|
||||||
|
this.merge = merge;
|
||||||
|
this.children = children;
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class FbBsmfRFishSummaryVo {
|
||||||
|
|
||||||
|
private String tm;
|
||||||
|
|
||||||
|
private String ftp;
|
||||||
|
|
||||||
|
private String ftpName;
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(description = "亲鱼过程图表格")
|
||||||
|
public class FbBsmfRFishTableVo {
|
||||||
|
|
||||||
|
@Schema(description = "表头")
|
||||||
|
private List<FbBsmfRFishHeadColumnVo> columns;
|
||||||
|
|
||||||
|
@Schema(description = "表格数据")
|
||||||
|
private Object dataSource;
|
||||||
|
|
||||||
|
@Schema(description = "总数")
|
||||||
|
private Long total;
|
||||||
|
}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class FbBsmfRQgcVo {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
private Date tm;
|
||||||
|
|
||||||
|
private String ftp;
|
||||||
|
|
||||||
|
private String ftpName;
|
||||||
|
|
||||||
|
private String bssr;
|
||||||
|
|
||||||
|
private String bssrName;
|
||||||
|
|
||||||
|
private BigDecimal length;
|
||||||
|
|
||||||
|
private BigDecimal weight;
|
||||||
|
|
||||||
|
private BigDecimal age;
|
||||||
|
|
||||||
|
private Integer sex;
|
||||||
|
|
||||||
|
private String sexName;
|
||||||
|
|
||||||
|
private String signnum;
|
||||||
|
|
||||||
|
private String recorder;
|
||||||
|
|
||||||
|
private Long value;
|
||||||
|
|
||||||
|
private String fid;
|
||||||
|
|
||||||
|
private String recordUser;
|
||||||
|
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
|
private String modifyUser;
|
||||||
|
|
||||||
|
private Date modifyTime;
|
||||||
|
|
||||||
|
private Integer isDeleted;
|
||||||
|
|
||||||
|
private String deleteUser;
|
||||||
|
|
||||||
|
private Date deleteTime;
|
||||||
|
|
||||||
|
private String platformId;
|
||||||
|
|
||||||
|
private String departmentId;
|
||||||
|
|
||||||
|
private String taskId;
|
||||||
|
|
||||||
|
private String taskStatus;
|
||||||
|
|
||||||
|
private String rstcd;
|
||||||
|
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
private String baseName;
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "增殖站增殖情况")
|
||||||
|
public class FbFlDataVo {
|
||||||
|
|
||||||
|
@Schema(description = "增殖站编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "电站编码")
|
||||||
|
private String rstcd;
|
||||||
|
|
||||||
|
@Schema(description = "电站名称")
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "年份")
|
||||||
|
private String yr;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类名称")
|
||||||
|
private String ftpName;
|
||||||
|
|
||||||
|
@Schema(description = "目标放鱼数量")
|
||||||
|
private Long targetFcnt;
|
||||||
|
|
||||||
|
@Schema(description = "实际放鱼数量")
|
||||||
|
private Long realFcnt;
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "放流鱼种统计")
|
||||||
|
public class FbFtpStatisticsVo {
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类编码")
|
||||||
|
private String ftp;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类名称")
|
||||||
|
private String fishName;
|
||||||
|
|
||||||
|
@Schema(description = "数量")
|
||||||
|
private Integer fcnt;
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class FbRelatedYrVo {
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private String subType;
|
||||||
|
|
||||||
|
private String yr;
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "鱼类增殖站单站基础信息")
|
||||||
|
public class FbStBaseInfoVo {
|
||||||
|
|
||||||
|
@Schema(description = "站点编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "站点名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "站类编码")
|
||||||
|
private String sttpCode;
|
||||||
|
|
||||||
|
@Schema(description = "站类名称")
|
||||||
|
private String sttpName;
|
||||||
|
|
||||||
|
@Schema(description = "站类全路径")
|
||||||
|
private String sttpFullPath;
|
||||||
|
|
||||||
|
@Schema(description = "站类层级")
|
||||||
|
private Integer sttpTreeLevel;
|
||||||
|
|
||||||
|
@Schema(description = "关联站点编码")
|
||||||
|
private String stCode;
|
||||||
|
|
||||||
|
@Schema(description = "关联站点名称")
|
||||||
|
private String stName;
|
||||||
|
|
||||||
|
@Schema(description = "所属基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "所属基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "所属基地流域编码")
|
||||||
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "所属基地流域名称")
|
||||||
|
private String hbrvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "所属流域编码")
|
||||||
|
private String rvcd;
|
||||||
|
|
||||||
|
@Schema(description = "所属流域名称")
|
||||||
|
private String rvcdName;
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "鱼类增殖站详情返回")
|
||||||
|
public class FbStInfoResultVo {
|
||||||
|
|
||||||
|
@Schema(description = "主信息兼容对象")
|
||||||
|
private Map<String, Object> msStbprpT = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
@Schema(description = "测值列表")
|
||||||
|
private List<Object> stcdValVoList = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "关联列表")
|
||||||
|
private List<Object> relList = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "站点基础信息")
|
||||||
|
private FbStBaseInfoVo stBaseInfo;
|
||||||
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "全流域增殖站概况二级页面")
|
||||||
|
public class FbStationOverviewSecondVo {
|
||||||
|
|
||||||
|
@Schema(description = "增殖站编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "服务电站")
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站总数")
|
||||||
|
private Integer count;
|
||||||
|
|
||||||
|
@Schema(description = "鱼种类数")
|
||||||
|
private Integer ftpCount;
|
||||||
|
|
||||||
|
@Schema(description = "总投资")
|
||||||
|
private BigDecimal totalInv;
|
||||||
|
|
||||||
|
@Schema(description = "计划放流鱼种类")
|
||||||
|
private String planFtp;
|
||||||
|
|
||||||
|
@Schema(description = "计划放流尾数")
|
||||||
|
private BigDecimal fcntjh;
|
||||||
|
|
||||||
|
@Schema(description = "实际鱼种类数")
|
||||||
|
private Integer realftpCount;
|
||||||
|
|
||||||
|
@Schema(description = "实际鱼种类")
|
||||||
|
private String realftp;
|
||||||
|
|
||||||
|
@Schema(description = "实际放流尾数")
|
||||||
|
private BigDecimal realfcnt;
|
||||||
|
|
||||||
|
@Schema(description = "实际放流尾数字符串")
|
||||||
|
private String realfcntStr;
|
||||||
|
|
||||||
|
@Schema(description = "年份")
|
||||||
|
private String year;
|
||||||
|
|
||||||
|
@Schema(description = "累计放鱼数量")
|
||||||
|
private Long totalFtpCount;
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "增殖站放流统计结果")
|
||||||
|
public class FbStationStaticsDataVo {
|
||||||
|
|
||||||
|
@Schema(description = "流域编码")
|
||||||
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "流域名称")
|
||||||
|
private String hbrvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类种数")
|
||||||
|
private Integer ftp;
|
||||||
|
|
||||||
|
@Schema(description = "放流数量")
|
||||||
|
private Long fcnt;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站数量")
|
||||||
|
private Integer stcdCnt;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站编码列表")
|
||||||
|
private List<String> stcdList;
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "增殖站放流统计明细")
|
||||||
|
public class FbStationStaticsRawVo {
|
||||||
|
|
||||||
|
@Schema(description = "流域编码")
|
||||||
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "流域名称")
|
||||||
|
private String hbrvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "增殖站名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类编码")
|
||||||
|
private String ftp;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类名称")
|
||||||
|
private String ftpName;
|
||||||
|
|
||||||
|
@Schema(description = "放流数量")
|
||||||
|
private Long fcnt;
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "年度全过程放流统计")
|
||||||
|
public class YearRpStatisticsVo {
|
||||||
|
|
||||||
|
@Schema(description = "放流总数")
|
||||||
|
private Integer fpCount;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "鱼类分组统计")
|
||||||
|
private List<FbFtpStatisticsVo> fpFtpStatitcsVos;
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fb.service;
|
||||||
|
|
||||||
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRQgcVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRFishTableVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbFlDataVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbRelatedYrVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbStInfoResultVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbStationStaticsDataVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.YearRpStatisticsVo;
|
||||||
|
import com.yfd.platform.qgc_env.fb.entity.vo.FbStationOverviewSecondVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface FbStationService {
|
||||||
|
|
||||||
|
List<YearRpStatisticsVo> getYearRpStatistics(String year);
|
||||||
|
|
||||||
|
DataSourceResult<FbStationOverviewSecondVo> getOverviewKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbFlDataVo> getFbFlDataKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbBsmfRQgcVo> getQgcBsmfRKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbBsmfRFishTableVo> getBsmfRFishKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbRelatedYrVo> getFbRelatedYrByStcd(String stcd);
|
||||||
|
|
||||||
|
FbStInfoResultVo getStInfoByStcd(String stcd);
|
||||||
|
|
||||||
|
DataSourceResult<FbStationStaticsDataVo> getQgcFbStaticsData(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbStationOverviewSecondVo> getOverviewSecond(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FbStationOverviewSecondVo> getQgcOverviewSecond(DataSourceRequest dataSourceRequest);
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -278,8 +278,9 @@ public class FhHabitatServiceImpl implements FhHabitatService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sql.append(buildSdrvwtsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
sql.append(buildSdrvwtsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
PageInfo pageInfo = loadOptions == null ? null : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
// PageInfo pageInfo = loadOptions == null ? null : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
||||||
Page<?> page = pageInfo != null && pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
// Page<?> page = pageInfo != null && pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
||||||
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
List<FhSdrvwtsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhSdrvwtsVo.class);
|
List<FhSdrvwtsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhSdrvwtsVo.class);
|
||||||
|
|
||||||
DataSourceResult<FhSdrvwtsVo> result = new DataSourceResult<>();
|
DataSourceResult<FhSdrvwtsVo> result = new DataSourceResult<>();
|
||||||
@ -330,8 +331,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sql.append(buildSdriverdaysOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
sql.append(buildSdriverdaysOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
PageInfo pageInfo = loadOptions == null ? null : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo != null && pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
List<FhSdriverdayVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhSdriverdayVo.class);
|
List<FhSdriverdayVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhSdriverdayVo.class);
|
||||||
|
|
||||||
DataSourceResult<FhSdriverdayVo> result = new DataSourceResult<>();
|
DataSourceResult<FhSdriverdayVo> result = new DataSourceResult<>();
|
||||||
@ -1744,8 +1744,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
|
|||||||
sql.append(buildStTbYsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
sql.append(buildStTbYsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? null : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo != null && pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
List<StTbYsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, StTbYsVo.class);
|
List<StTbYsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, StTbYsVo.class);
|
||||||
|
|
||||||
DataSourceResult<StTbYsVo> result = new DataSourceResult<>();
|
DataSourceResult<StTbYsVo> result = new DataSourceResult<>();
|
||||||
|
|||||||
@ -70,6 +70,18 @@ public class FishPassageController {
|
|||||||
return ResponseResult.successData(fpBuildService.processKendoList(dataSourceRequest));
|
return ResponseResult.successData(fpBuildService.processKendoList(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/fishDic/GetKendoListCust")
|
||||||
|
@Operation(summary = "鱼类字典列表")
|
||||||
|
public ResponseResult getFishDicList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fpBuildService.getFishDicList(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/fishDic/stcd/GetKendoList")
|
||||||
|
@Operation(summary = "根据过鱼设施站点查询鱼类列表")
|
||||||
|
public ResponseResult getFishDicListByStcd(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(fpBuildService.getFishDicListByStcd(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/vmsstbprpt/GetKendoList")
|
@PostMapping("/vmsstbprpt/GetKendoList")
|
||||||
@Operation(summary = "根据条件查询过鱼设施基础列表")
|
@Operation(summary = "根据条件查询过鱼设施基础列表")
|
||||||
public ResponseResult getVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
|||||||
@ -0,0 +1,73 @@
|
|||||||
|
package com.yfd.platform.qgc_env.fp.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "过鱼设施模块鱼类字典信息")
|
||||||
|
public class FpFishDicVo {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String code;
|
||||||
|
private String name;
|
||||||
|
private String nameEn;
|
||||||
|
private String alias;
|
||||||
|
private String logo;
|
||||||
|
private String introduce;
|
||||||
|
private String inffile;
|
||||||
|
private String orders;
|
||||||
|
private String family;
|
||||||
|
private String genus;
|
||||||
|
private String species;
|
||||||
|
private Integer type;
|
||||||
|
private String typeName;
|
||||||
|
private String fsz;
|
||||||
|
private Integer rare;
|
||||||
|
private String rareName;
|
||||||
|
private Integer specOrigin;
|
||||||
|
private String specOriginName;
|
||||||
|
private Integer ptype;
|
||||||
|
private String ptypeName;
|
||||||
|
private String rvcd;
|
||||||
|
private String rvcdName;
|
||||||
|
private String habitMigrat;
|
||||||
|
private String feedingHabit;
|
||||||
|
private String spawnCharact;
|
||||||
|
private String food;
|
||||||
|
private String timeFeed;
|
||||||
|
private String orignDate;
|
||||||
|
private String pretemp;
|
||||||
|
private String flowRate;
|
||||||
|
private String depth;
|
||||||
|
private String botmMater;
|
||||||
|
private String wqtq;
|
||||||
|
private String wqtqName;
|
||||||
|
private Integer habitat;
|
||||||
|
private String habitatName;
|
||||||
|
private Integer situation;
|
||||||
|
private String situationName;
|
||||||
|
private Integer resourceType;
|
||||||
|
private String resourceTypeName;
|
||||||
|
private String shapedesc;
|
||||||
|
private String protectlvl;
|
||||||
|
private String habitation;
|
||||||
|
private String fid;
|
||||||
|
private String description;
|
||||||
|
private Integer enable;
|
||||||
|
private String enableName;
|
||||||
|
private Integer internal;
|
||||||
|
private String internalName;
|
||||||
|
private Integer orderIndex;
|
||||||
|
private String recordUser;
|
||||||
|
private Date recordTime;
|
||||||
|
private String modifyUser;
|
||||||
|
private Date modifyTime;
|
||||||
|
private Integer isDeleted;
|
||||||
|
private String deleteUser;
|
||||||
|
private Date deleteTime;
|
||||||
|
private String spawnMonth;
|
||||||
|
private String vlsr;
|
||||||
|
private Date vlsrTm;
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ package com.yfd.platform.qgc_env.fp.service;
|
|||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
import com.yfd.platform.qgc_env.fp.entity.vo.FpConstructionSituationVo;
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpConstructionSituationVo;
|
||||||
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpFishDicVo;
|
||||||
import com.yfd.platform.qgc_env.fp.entity.vo.FpVmsstbprptVo;
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpVmsstbprptVo;
|
||||||
|
|
||||||
public interface FpBuildService {
|
public interface FpBuildService {
|
||||||
@ -11,6 +12,10 @@ public interface FpBuildService {
|
|||||||
|
|
||||||
DataSourceResult<FpVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<FpVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FpFishDicVo> getFishDicList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<FpFishDicVo> getFishDicListByStcd(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<FpVmsstbprptVo> getFpqMsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<FpVmsstbprptVo> getFpqMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
FpVmsstbprptVo getStInfoByStcd(String stcd);
|
FpVmsstbprptVo getStInfoByStcd(String stcd);
|
||||||
|
|||||||
@ -1,21 +1,29 @@
|
|||||||
package com.yfd.platform.qgc_env.fp.service.impl;
|
package com.yfd.platform.qgc_env.fp.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.common.GroupHelper;
|
||||||
|
import com.yfd.platform.common.GroupingInfo;
|
||||||
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||||
import com.yfd.platform.common.PageInfo;
|
import com.yfd.platform.common.PageInfo;
|
||||||
|
import com.yfd.platform.common.exception.BizException;
|
||||||
import com.yfd.platform.qgc_env.fp.entity.vo.FpConstructionSituationVo;
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpConstructionSituationVo;
|
||||||
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpFishDicVo;
|
||||||
import com.yfd.platform.qgc_env.fp.entity.vo.FpVmsstbprptVo;
|
import com.yfd.platform.qgc_env.fp.entity.vo.FpVmsstbprptVo;
|
||||||
import com.yfd.platform.qgc_env.fp.service.FpBuildService;
|
import com.yfd.platform.qgc_env.fp.service.FpBuildService;
|
||||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -28,8 +36,7 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult<FpConstructionSituationVo> processKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<FpConstructionSituationVo> processKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
String sql = "SELECT t.STTP AS sttpCode, " +
|
String sql = "SELECT t.STTP AS sttpCode, " +
|
||||||
" SUM(CASE WHEN t.DTIN = 1 THEN 1 ELSE 0 END) AS bonusing, " +
|
" SUM(CASE WHEN t.DTIN = 1 THEN 1 ELSE 0 END) AS bonusing, " +
|
||||||
@ -61,6 +68,98 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return queryVmsstbprptList(dataSourceRequest, null);
|
return queryVmsstbprptList(dataSourceRequest, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<FpFishDicVo> getFishDicList(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
String filterSql = buildFishDicFilterCondition(
|
||||||
|
dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
|
||||||
|
paramMap,
|
||||||
|
new int[]{0}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
|
||||||
|
StringBuilder groupedBaseSql = new StringBuilder("SELECT * FROM (")
|
||||||
|
.append(buildFishDicBaseSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
if (StrUtil.isNotBlank(filterSql)) {
|
||||||
|
groupedBaseSql.append(" AND ").append(filterSql).append(" ");
|
||||||
|
}
|
||||||
|
GroupingInfo[] groupInfos = loadOptions == null ? null : loadOptions.getGroup();
|
||||||
|
String groupedSql = buildFishDicGroupSql(groupedBaseSql.toString(), groupInfos);
|
||||||
|
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, groupedSql, paramMap);
|
||||||
|
|
||||||
|
DataSourceResult result = new DataSourceResult();
|
||||||
|
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
||||||
|
result.setData(new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
||||||
|
} else {
|
||||||
|
result.setData(new GroupHelper().group(rows, Arrays.asList(groupInfos)));
|
||||||
|
}
|
||||||
|
result.setTotal((long) rows.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder("SELECT ")
|
||||||
|
.append(buildFishDicDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
|
||||||
|
.append(" FROM (")
|
||||||
|
.append(buildFishDicBaseSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
if (StrUtil.isNotBlank(filterSql)) {
|
||||||
|
sql.append(" AND ").append(filterSql).append(" ");
|
||||||
|
}
|
||||||
|
sql.append(buildFishDicOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
|
List<FpFishDicVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
|
||||||
|
page, sql.toString(), paramMap, FpFishDicVo.class
|
||||||
|
);
|
||||||
|
|
||||||
|
DataSourceResult<FpFishDicVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(page != null ? page.getTotal() : list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<FpFishDicVo> getFishDicListByStcd(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
String stcd = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd");
|
||||||
|
if (StrUtil.isBlank(stcd)) {
|
||||||
|
throw new BizException("过鱼设施站点编码(stcd)不能为空.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("stcd", StrUtil.trim(stcd));
|
||||||
|
|
||||||
|
String sql = "SELECT DISTINCT " +
|
||||||
|
" fish.ID AS id, " +
|
||||||
|
" fish.NAME AS name " +
|
||||||
|
"FROM SD_FPSS_B_H fp " +
|
||||||
|
"INNER JOIN SD_ENGINFO_B_H eng ON eng.STCD = fp.RSTCD " +
|
||||||
|
" AND NVL(eng.IS_DELETED, 0) = 0 " +
|
||||||
|
"INNER JOIN SD_FISHDICTORY_RLTN_B rel ON rel.RVCD = eng.HBRVCD " +
|
||||||
|
" AND NVL(rel.IS_DELETED, 0) = 0 " +
|
||||||
|
"INNER JOIN SD_FISHDICTORY_B fish ON fish.ID = NVL(rel.ZY_FISH_ID, rel.FISH_ID) " +
|
||||||
|
" AND NVL(fish.IS_DELETED, 0) = 0 " +
|
||||||
|
" AND NVL(fish.ENABLE, 1) = 1 " +
|
||||||
|
"WHERE fp.STCD = #{map.stcd} " +
|
||||||
|
"ORDER BY fish.NAME";
|
||||||
|
|
||||||
|
List<FpFishDicVo> list = microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
|
sql,
|
||||||
|
paramMap,
|
||||||
|
FpFishDicVo.class
|
||||||
|
);
|
||||||
|
|
||||||
|
DataSourceResult<FpFishDicVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(list == null ? 0L : list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult<FpVmsstbprptVo> getFpqMsstbprptList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<FpVmsstbprptVo> getFpqMsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||||
return queryVmsstbprptList(dataSourceRequest, "FPQ");
|
return queryVmsstbprptList(dataSourceRequest, "FPQ");
|
||||||
@ -113,6 +212,77 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return list.getFirst();
|
return list.getFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFishDicBaseSql() {
|
||||||
|
return "SELECT " +
|
||||||
|
"src.ID AS id, " +
|
||||||
|
"src.CODE AS code, " +
|
||||||
|
"src.NAME AS name, " +
|
||||||
|
"src.NAME_EN AS nameEn, " +
|
||||||
|
"src.ALIAS AS alias, " +
|
||||||
|
"src.LOGO AS logo, " +
|
||||||
|
"src.INTRODUCE AS introduce, " +
|
||||||
|
"src.INFFILE AS inffile, " +
|
||||||
|
"src.ORDERS AS orders, " +
|
||||||
|
"src.FAMILY AS family, " +
|
||||||
|
"src.GENUS AS genus, " +
|
||||||
|
"src.SPECIES AS species, " +
|
||||||
|
"src.TYPE AS type, " +
|
||||||
|
"CASE WHEN src.TYPE = 1 THEN '淡水' WHEN src.TYPE = 2 THEN '海水' ELSE NULL END AS typeName, " +
|
||||||
|
"src.FSZ AS fsz, " +
|
||||||
|
"src.RARE AS rare, " +
|
||||||
|
"CASE WHEN src.RARE = 1 THEN '是' WHEN src.RARE = 0 THEN '否' ELSE NULL END AS rareName, " +
|
||||||
|
"src.SPEC_ORIGIN AS specOrigin, " +
|
||||||
|
"CASE WHEN src.SPEC_ORIGIN = 1 THEN '本土物种' WHEN src.SPEC_ORIGIN = 2 THEN '外来物种' ELSE NULL END AS specOriginName, " +
|
||||||
|
"src.PTYPE AS ptype, " +
|
||||||
|
"CASE src.PTYPE " +
|
||||||
|
"WHEN 1 THEN '濒危' WHEN 2 THEN '极危' WHEN 3 THEN '近危' WHEN 4 THEN '易危' " +
|
||||||
|
"WHEN 5 THEN '重点保护' WHEN 6 THEN '无危' WHEN 7 THEN '国家二级' WHEN 8 THEN '市二级保护' ELSE NULL END AS ptypeName, " +
|
||||||
|
"src.RVCD AS rvcd, " +
|
||||||
|
"rv.RVNM AS rvcdName, " +
|
||||||
|
"src.HABIT_MIGRAT AS habitMigrat, " +
|
||||||
|
"src.FEEDING_HABIT AS feedingHabit, " +
|
||||||
|
"src.SPAWN_CHARACT AS spawnCharact, " +
|
||||||
|
"src.FOOD AS food, " +
|
||||||
|
"src.TIME_FEED AS timeFeed, " +
|
||||||
|
"src.ORIGN_DATE AS orignDate, " +
|
||||||
|
"src.PRETEMP AS pretemp, " +
|
||||||
|
"src.FLOW_RATE AS flowRate, " +
|
||||||
|
"src.DEPTH AS depth, " +
|
||||||
|
"src.BOTM_MATER AS botmMater, " +
|
||||||
|
"src.WQTQ AS wqtq, " +
|
||||||
|
"CASE src.WQTQ " +
|
||||||
|
"WHEN '1' THEN 'Ⅰ类' WHEN '2' THEN 'Ⅱ类' WHEN '3' THEN 'Ⅲ类' WHEN '4' THEN 'Ⅳ类' WHEN '5' THEN 'Ⅴ类' WHEN '6' THEN '劣V类' ELSE NULL END AS wqtqName, " +
|
||||||
|
"src.HABITAT AS habitat, " +
|
||||||
|
"CASE src.HABITAT WHEN 1 THEN '流水生境' WHEN 2 THEN '静缓流生境' WHEN 3 THEN '洞穴生境' ELSE NULL END AS habitatName, " +
|
||||||
|
"src.SITUATION AS situation, " +
|
||||||
|
"CASE src.SITUATION WHEN 1 THEN '优势种' WHEN 2 THEN '常见种' WHEN 3 THEN '少见种' WHEN 4 THEN '记录种' ELSE NULL END AS situationName, " +
|
||||||
|
"src.RESOURCE_TYPE AS resourceType, " +
|
||||||
|
"CASE src.RESOURCE_TYPE WHEN 1 THEN '保护鱼类' WHEN 2 THEN '特有鱼类' WHEN 3 THEN '重要经济鱼类' WHEN 4 THEN '濒危状况' ELSE NULL END AS resourceTypeName, " +
|
||||||
|
"src.SHAPEDESC AS shapedesc, " +
|
||||||
|
"src.PROTECTLVL AS protectlvl, " +
|
||||||
|
"src.HABITATION AS habitation, " +
|
||||||
|
"src.FID AS fid, " +
|
||||||
|
"src.DESCRIPTION AS description, " +
|
||||||
|
"src.ENABLE AS enable, " +
|
||||||
|
"CASE WHEN src.ENABLE = 1 THEN '启用' WHEN src.ENABLE = 0 THEN '禁用' ELSE NULL END AS enableName, " +
|
||||||
|
"src.INTERNAL AS internal, " +
|
||||||
|
"CASE WHEN src.INTERNAL = 1 THEN '是' WHEN src.INTERNAL = 0 THEN '否' ELSE NULL END AS internalName, " +
|
||||||
|
"src.ORDER_INDEX AS orderIndex, " +
|
||||||
|
"src.RECORD_USER AS recordUser, " +
|
||||||
|
"src.RECORD_TIME AS recordTime, " +
|
||||||
|
"src.MODIFY_USER AS modifyUser, " +
|
||||||
|
"src.MODIFY_TIME AS modifyTime, " +
|
||||||
|
"src.IS_DELETED AS isDeleted, " +
|
||||||
|
"src.DELETE_USER AS deleteUser, " +
|
||||||
|
"src.DELETE_TIME AS deleteTime, " +
|
||||||
|
"src.SPAWN_MONTH AS spawnMonth, " +
|
||||||
|
"src.VLSR AS vlsr, " +
|
||||||
|
"src.VLSR_TM AS vlsrTm " +
|
||||||
|
"FROM SD_FISHDICTORY_B src " +
|
||||||
|
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = src.RVCD " +
|
||||||
|
"WHERE NVL(src.IS_DELETED, 0) = 0 ";
|
||||||
|
}
|
||||||
|
|
||||||
private String buildVmsstbprptBaseSql() {
|
private String buildVmsstbprptBaseSql() {
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT ")
|
sql.append("SELECT ")
|
||||||
@ -319,6 +489,87 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return selectMap;
|
return selectMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFishDicDetailSelectSql(List<String> selectFields) {
|
||||||
|
LinkedHashMap<String, String> columnMap = buildFishDicSelectColumnMap();
|
||||||
|
if (CollUtil.isEmpty(selectFields)) {
|
||||||
|
return String.join(", ", columnMap.values());
|
||||||
|
}
|
||||||
|
List<String> selectColumns = new ArrayList<>();
|
||||||
|
for (String field : selectFields) {
|
||||||
|
String column = columnMap.get(field);
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
selectColumns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return selectColumns.isEmpty() ? String.join(", ", columnMap.values()) : String.join(", ", selectColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LinkedHashMap<String, String> buildFishDicSelectColumnMap() {
|
||||||
|
LinkedHashMap<String, String> columnMap = new LinkedHashMap<>();
|
||||||
|
columnMap.put("id", "t.id AS id");
|
||||||
|
columnMap.put("code", "t.code AS code");
|
||||||
|
columnMap.put("name", "t.name AS name");
|
||||||
|
columnMap.put("nameEn", "t.nameEn AS nameEn");
|
||||||
|
columnMap.put("alias", "t.alias AS alias");
|
||||||
|
columnMap.put("logo", "t.logo AS logo");
|
||||||
|
columnMap.put("introduce", "t.introduce AS introduce");
|
||||||
|
columnMap.put("inffile", "t.inffile AS inffile");
|
||||||
|
columnMap.put("orders", "t.orders AS orders");
|
||||||
|
columnMap.put("family", "t.family AS family");
|
||||||
|
columnMap.put("genus", "t.genus AS genus");
|
||||||
|
columnMap.put("species", "t.species AS species");
|
||||||
|
columnMap.put("type", "t.type AS type");
|
||||||
|
columnMap.put("typeName", "t.typeName AS typeName");
|
||||||
|
columnMap.put("fsz", "t.fsz AS fsz");
|
||||||
|
columnMap.put("rare", "t.rare AS rare");
|
||||||
|
columnMap.put("rareName", "t.rareName AS rareName");
|
||||||
|
columnMap.put("specOrigin", "t.specOrigin AS specOrigin");
|
||||||
|
columnMap.put("specOriginName", "t.specOriginName AS specOriginName");
|
||||||
|
columnMap.put("ptype", "t.ptype AS ptype");
|
||||||
|
columnMap.put("ptypeName", "t.ptypeName AS ptypeName");
|
||||||
|
columnMap.put("rvcd", "t.rvcd AS rvcd");
|
||||||
|
columnMap.put("rvcdName", "t.rvcdName AS rvcdName");
|
||||||
|
columnMap.put("habitMigrat", "t.habitMigrat AS habitMigrat");
|
||||||
|
columnMap.put("feedingHabit", "t.feedingHabit AS feedingHabit");
|
||||||
|
columnMap.put("spawnCharact", "t.spawnCharact AS spawnCharact");
|
||||||
|
columnMap.put("food", "t.food AS food");
|
||||||
|
columnMap.put("timeFeed", "t.timeFeed AS timeFeed");
|
||||||
|
columnMap.put("orignDate", "t.orignDate AS orignDate");
|
||||||
|
columnMap.put("pretemp", "t.pretemp AS pretemp");
|
||||||
|
columnMap.put("flowRate", "t.flowRate AS flowRate");
|
||||||
|
columnMap.put("depth", "t.depth AS depth");
|
||||||
|
columnMap.put("botmMater", "t.botmMater AS botmMater");
|
||||||
|
columnMap.put("wqtq", "t.wqtq AS wqtq");
|
||||||
|
columnMap.put("wqtqName", "t.wqtqName AS wqtqName");
|
||||||
|
columnMap.put("habitat", "t.habitat AS habitat");
|
||||||
|
columnMap.put("habitatName", "t.habitatName AS habitatName");
|
||||||
|
columnMap.put("situation", "t.situation AS situation");
|
||||||
|
columnMap.put("situationName", "t.situationName AS situationName");
|
||||||
|
columnMap.put("resourceType", "t.resourceType AS resourceType");
|
||||||
|
columnMap.put("resourceTypeName", "t.resourceTypeName AS resourceTypeName");
|
||||||
|
columnMap.put("shapedesc", "t.shapedesc AS shapedesc");
|
||||||
|
columnMap.put("protectlvl", "t.protectlvl AS protectlvl");
|
||||||
|
columnMap.put("habitation", "t.habitation AS habitation");
|
||||||
|
columnMap.put("fid", "t.fid AS fid");
|
||||||
|
columnMap.put("description", "t.description AS description");
|
||||||
|
columnMap.put("enable", "t.enable AS enable");
|
||||||
|
columnMap.put("enableName", "t.enableName AS enableName");
|
||||||
|
columnMap.put("internal", "t.internal AS internal");
|
||||||
|
columnMap.put("internalName", "t.internalName AS internalName");
|
||||||
|
columnMap.put("orderIndex", "t.orderIndex AS orderIndex");
|
||||||
|
columnMap.put("recordUser", "t.recordUser AS recordUser");
|
||||||
|
columnMap.put("recordTime", "t.recordTime AS recordTime");
|
||||||
|
columnMap.put("modifyUser", "t.modifyUser AS modifyUser");
|
||||||
|
columnMap.put("modifyTime", "t.modifyTime AS modifyTime");
|
||||||
|
columnMap.put("isDeleted", "t.isDeleted AS isDeleted");
|
||||||
|
columnMap.put("deleteUser", "t.deleteUser AS deleteUser");
|
||||||
|
columnMap.put("deleteTime", "t.deleteTime AS deleteTime");
|
||||||
|
columnMap.put("spawnMonth", "t.spawnMonth AS spawnMonth");
|
||||||
|
columnMap.put("vlsr", "t.vlsr AS vlsr");
|
||||||
|
columnMap.put("vlsrTm", "t.vlsrTm AS vlsrTm");
|
||||||
|
return columnMap;
|
||||||
|
}
|
||||||
|
|
||||||
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
Map<String, Object> paramMap,
|
Map<String, Object> paramMap,
|
||||||
int[] indexHolder) {
|
int[] indexHolder) {
|
||||||
@ -345,6 +596,32 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return String.join(logic, conditions);
|
return String.join(logic, conditions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFishDicFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder) {
|
||||||
|
if (filter == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (filter.getField() != null && !filter.getField().isBlank()) {
|
||||||
|
return buildFishDicLeafCondition(filter, paramMap, indexHolder);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isEmpty(filter.getFilters())) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
List<String> conditions = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
|
||||||
|
String childSql = buildFishDicFilterCondition(child, paramMap, indexHolder);
|
||||||
|
if (!childSql.isBlank()) {
|
||||||
|
conditions.add("(" + childSql + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (conditions.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
String logic = "or".equalsIgnoreCase(filter.getLogic()) ? " OR " : " AND ";
|
||||||
|
return String.join(logic, conditions);
|
||||||
|
}
|
||||||
|
|
||||||
private String buildVmsstbprptLeafCondition(DataSourceRequest.FilterDescriptor filter,
|
private String buildVmsstbprptLeafCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
Map<String, Object> paramMap,
|
Map<String, Object> paramMap,
|
||||||
int[] indexHolder) {
|
int[] indexHolder) {
|
||||||
@ -410,6 +687,96 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFishDicLeafCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder) {
|
||||||
|
String column = mapFishDicColumn(filter.getField());
|
||||||
|
if (column == null || column.isBlank()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
String operator = filter.getOperator() == null ? "eq" : filter.getOperator().toLowerCase();
|
||||||
|
Object value = filter.getValue();
|
||||||
|
if (isFishDicDateField(filter.getField())) {
|
||||||
|
return buildDateCondition(column, operator, value, paramMap, indexHolder, "fpFishDicP");
|
||||||
|
}
|
||||||
|
if ("isnull".equals(operator)) {
|
||||||
|
return column + " IS NULL";
|
||||||
|
}
|
||||||
|
if ("isnotnull".equals(operator)) {
|
||||||
|
return column + " IS NOT NULL";
|
||||||
|
}
|
||||||
|
if ("in".equals(operator)) {
|
||||||
|
List<Object> values = normalizeValues(value);
|
||||||
|
if (values.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
List<String> placeholders = new ArrayList<>();
|
||||||
|
for (Object item : values) {
|
||||||
|
String paramKey = "fpFishDicP" + indexHolder[0]++;
|
||||||
|
paramMap.put(paramKey, item);
|
||||||
|
placeholders.add("#{map." + paramKey + "}");
|
||||||
|
}
|
||||||
|
return column + " IN (" + String.join(", ", placeholders) + ")";
|
||||||
|
}
|
||||||
|
if (value == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
String paramKey = "fpFishDicP" + indexHolder[0]++;
|
||||||
|
switch (operator) {
|
||||||
|
case "eq":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " = #{map." + paramKey + "}";
|
||||||
|
case "neq":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " <> #{map." + paramKey + "}";
|
||||||
|
case "contains":
|
||||||
|
paramMap.put(paramKey, "%" + value + "%");
|
||||||
|
return column + " LIKE #{map." + paramKey + "}";
|
||||||
|
case "startswith":
|
||||||
|
paramMap.put(paramKey, value + "%");
|
||||||
|
return column + " LIKE #{map." + paramKey + "}";
|
||||||
|
case "endswith":
|
||||||
|
paramMap.put(paramKey, "%" + value);
|
||||||
|
return column + " LIKE #{map." + paramKey + "}";
|
||||||
|
case "gt":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " > #{map." + paramKey + "}";
|
||||||
|
case "gte":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " >= #{map." + paramKey + "}";
|
||||||
|
case "lt":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " < #{map." + paramKey + "}";
|
||||||
|
case "lte":
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return column + " <= #{map." + paramKey + "}";
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildDateCondition(String column,
|
||||||
|
String operator,
|
||||||
|
Object value,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder,
|
||||||
|
String prefix) {
|
||||||
|
if (value == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
String paramKey = prefix + indexHolder[0]++;
|
||||||
|
paramMap.put(paramKey, value);
|
||||||
|
return switch (operator) {
|
||||||
|
case "eq" -> "TRUNC(" + column + ") = TRUNC(#{map." + paramKey + "})";
|
||||||
|
case "neq" -> "TRUNC(" + column + ") <> TRUNC(#{map." + paramKey + "})";
|
||||||
|
case "gt" -> column + " > #{map." + paramKey + "}";
|
||||||
|
case "gte" -> column + " >= #{map." + paramKey + "}";
|
||||||
|
case "lt" -> column + " < #{map." + paramKey + "}";
|
||||||
|
case "lte" -> column + " <= #{map." + paramKey + "}";
|
||||||
|
default -> "";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private List<Object> normalizeValues(Object value) {
|
private List<Object> normalizeValues(Object value) {
|
||||||
List<Object> values = new ArrayList<>();
|
List<Object> values = new ArrayList<>();
|
||||||
if (value instanceof List<?> list) {
|
if (value instanceof List<?> list) {
|
||||||
@ -531,6 +898,76 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return columnMap.get(field);
|
return columnMap.get(field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String mapFishDicColumn(String field) {
|
||||||
|
if (StrUtil.isBlank(field)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (field) {
|
||||||
|
case "id" -> "t.id";
|
||||||
|
case "code" -> "t.code";
|
||||||
|
case "name" -> "t.name";
|
||||||
|
case "nameEn" -> "t.nameEn";
|
||||||
|
case "alias" -> "t.alias";
|
||||||
|
case "logo" -> "t.logo";
|
||||||
|
case "introduce" -> "t.introduce";
|
||||||
|
case "inffile" -> "t.inffile";
|
||||||
|
case "orders" -> "t.orders";
|
||||||
|
case "family" -> "t.family";
|
||||||
|
case "genus" -> "t.genus";
|
||||||
|
case "species" -> "t.species";
|
||||||
|
case "type" -> "t.type";
|
||||||
|
case "typeName" -> "t.typeName";
|
||||||
|
case "fsz" -> "t.fsz";
|
||||||
|
case "rare" -> "t.rare";
|
||||||
|
case "rareName" -> "t.rareName";
|
||||||
|
case "specOrigin" -> "t.specOrigin";
|
||||||
|
case "specOriginName" -> "t.specOriginName";
|
||||||
|
case "ptype" -> "t.ptype";
|
||||||
|
case "ptypeName" -> "t.ptypeName";
|
||||||
|
case "rvcd" -> "t.rvcd";
|
||||||
|
case "rvcdName" -> "t.rvcdName";
|
||||||
|
case "habitMigrat" -> "t.habitMigrat";
|
||||||
|
case "feedingHabit" -> "t.feedingHabit";
|
||||||
|
case "spawnCharact" -> "t.spawnCharact";
|
||||||
|
case "food" -> "t.food";
|
||||||
|
case "timeFeed" -> "t.timeFeed";
|
||||||
|
case "orignDate" -> "t.orignDate";
|
||||||
|
case "pretemp" -> "t.pretemp";
|
||||||
|
case "flowRate" -> "t.flowRate";
|
||||||
|
case "depth" -> "t.depth";
|
||||||
|
case "botmMater" -> "t.botmMater";
|
||||||
|
case "wqtq" -> "t.wqtq";
|
||||||
|
case "wqtqName" -> "t.wqtqName";
|
||||||
|
case "habitat" -> "t.habitat";
|
||||||
|
case "habitatName" -> "t.habitatName";
|
||||||
|
case "situation" -> "t.situation";
|
||||||
|
case "situationName" -> "t.situationName";
|
||||||
|
case "resourceType" -> "t.resourceType";
|
||||||
|
case "resourceTypeName" -> "t.resourceTypeName";
|
||||||
|
case "shapedesc" -> "t.shapedesc";
|
||||||
|
case "protectlvl" -> "t.protectlvl";
|
||||||
|
case "habitation" -> "t.habitation";
|
||||||
|
case "fid" -> "t.fid";
|
||||||
|
case "description" -> "t.description";
|
||||||
|
case "enable" -> "t.enable";
|
||||||
|
case "enableName" -> "t.enableName";
|
||||||
|
case "internal" -> "t.internal";
|
||||||
|
case "internalName" -> "t.internalName";
|
||||||
|
case "orderIndex" -> "t.orderIndex";
|
||||||
|
case "recordUser" -> "t.recordUser";
|
||||||
|
case "recordTime" -> "t.recordTime";
|
||||||
|
case "modifyUser" -> "t.modifyUser";
|
||||||
|
case "modifyTime" -> "t.modifyTime";
|
||||||
|
case "isDeleted" -> "t.isDeleted";
|
||||||
|
case "deleteUser" -> "t.deleteUser";
|
||||||
|
case "deleteTime" -> "t.deleteTime";
|
||||||
|
case "spawnMonth" -> "t.spawnMonth";
|
||||||
|
case "vlsr" -> "t.vlsr";
|
||||||
|
case "vlsrTm" -> "t.vlsrTm";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private String buildVmsstbprptOrderBySql(List<DataSourceRequest.SortDescriptor> sorts) {
|
private String buildVmsstbprptOrderBySql(List<DataSourceRequest.SortDescriptor> sorts) {
|
||||||
if (sorts == null || sorts.isEmpty()) {
|
if (sorts == null || sorts.isEmpty()) {
|
||||||
return " ORDER BY t.baseStepSort ASC NULLS LAST, t.rvcdStepSort ASC NULLS LAST, " +
|
return " ORDER BY t.baseStepSort ASC NULLS LAST, t.rvcdStepSort ASC NULLS LAST, " +
|
||||||
@ -555,6 +992,64 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
return " ORDER BY " + String.join(", ", orderItems);
|
return " ORDER BY " + String.join(", ", orderItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFishDicOrderBySql(List<DataSourceRequest.SortDescriptor> sorts) {
|
||||||
|
List<String> orderItems = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(sorts)) {
|
||||||
|
for (DataSourceRequest.SortDescriptor sort : sorts) {
|
||||||
|
if (sort == null || sort.getField() == null || sort.getField().isBlank()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapFishDicColumn(sort.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir())
|
||||||
|
? "DESC" : "ASC";
|
||||||
|
orderItems.add(column + " " + direction + " NULLS LAST");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (orderItems.isEmpty()) {
|
||||||
|
return " ORDER BY t.orderIndex ASC NULLS LAST, t.name ASC";
|
||||||
|
}
|
||||||
|
return " ORDER BY " + String.join(", ", orderItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildFishDicGroupSql(String detailSql, GroupingInfo[] groupInfos) {
|
||||||
|
if (groupInfos == null || groupInfos.length == 0) {
|
||||||
|
return detailSql;
|
||||||
|
}
|
||||||
|
List<String> groupFields = new ArrayList<>();
|
||||||
|
List<String> selectItems = new ArrayList<>();
|
||||||
|
List<String> orderItems = new ArrayList<>();
|
||||||
|
for (GroupingInfo item : groupInfos) {
|
||||||
|
if (item == null || StrUtil.isBlank(item.getSelector())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String selector = item.getSelector();
|
||||||
|
String column = mapFishDicColumn(selector);
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
groupFields.add(column);
|
||||||
|
selectItems.add(column + " AS " + selector);
|
||||||
|
selectItems.add("COUNT(*) AS count_" + selector);
|
||||||
|
orderItems.add(column + (item.getDesc() ? " DESC" : " ASC"));
|
||||||
|
}
|
||||||
|
if (groupFields.isEmpty()) {
|
||||||
|
return "SELECT * FROM (" + detailSql + ") t WHERE 1 = 0";
|
||||||
|
}
|
||||||
|
return "SELECT " + String.join(", ", selectItems) +
|
||||||
|
" FROM (" + detailSql + ") t GROUP BY " + String.join(", ", groupFields) +
|
||||||
|
" ORDER BY " + String.join(", ", orderItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isFishDicDateField(String field) {
|
||||||
|
return "recordTime".equals(field)
|
||||||
|
|| "modifyTime".equals(field)
|
||||||
|
|| "deleteTime".equals(field)
|
||||||
|
|| "vlsrTm".equals(field);
|
||||||
|
}
|
||||||
|
|
||||||
private String mapVmsstbprptOuterColumn(String field) {
|
private String mapVmsstbprptOuterColumn(String field) {
|
||||||
if (field == null || field.isBlank()) {
|
if (field == null || field.isBlank()) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -43,4 +43,6 @@ public class FprZyFishDicVo {
|
|||||||
private String logo;
|
private String logo;
|
||||||
private String inffile;
|
private String inffile;
|
||||||
private String spawnMonth;
|
private String spawnMonth;
|
||||||
|
private String orders;
|
||||||
|
private String vlsr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -201,7 +201,20 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
if (StrUtil.isNotBlank(filterSql)) {
|
if (StrUtil.isNotBlank(filterSql)) {
|
||||||
sql.append(" AND ").append(filterSql).append(" ");
|
sql.append(" AND ").append(filterSql).append(" ");
|
||||||
}
|
}
|
||||||
|
// 增加排序
|
||||||
|
if(dataSourceRequest.getSort() !=null && !dataSourceRequest.getSort().isEmpty()){
|
||||||
|
List<DataSourceRequest.SortDescriptor> sortDescriptors = dataSourceRequest.getSort();
|
||||||
|
StringBuilder orderSql = new StringBuilder();
|
||||||
|
orderSql.append(" order by ");
|
||||||
|
for (DataSourceRequest.SortDescriptor sort:sortDescriptors){
|
||||||
|
orderSql.append(sort.getField()).append(" ").append(sort.getDir()).append(",");
|
||||||
|
}
|
||||||
|
sql.append(orderSql, 0, orderSql.length()-1);
|
||||||
|
// String[] beans = SpringContextHolder.getApplicationContext().getBeanDefinitionNames();
|
||||||
|
sql.append(" nulls last ");
|
||||||
|
}else{
|
||||||
|
sql.append(" order by rvcd nulls last ");
|
||||||
|
}
|
||||||
List<FprZyFishDicVo> list = microservicDynamicSQLMapper.getAllListWithResultType(
|
List<FprZyFishDicVo> list = microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
sql.toString(),
|
sql.toString(),
|
||||||
paramMap,
|
paramMap,
|
||||||
@ -535,6 +548,8 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
"src.DESCRIPTION AS description, " +
|
"src.DESCRIPTION AS description, " +
|
||||||
"src.LOGO AS logo, " +
|
"src.LOGO AS logo, " +
|
||||||
"src.INFFILE AS inffile, " +
|
"src.INFFILE AS inffile, " +
|
||||||
|
"src.ORDERS, \n" +
|
||||||
|
"src.VLSR, \n"+
|
||||||
"src.SPAWN_MONTH AS spawnMonth " +
|
"src.SPAWN_MONTH AS spawnMonth " +
|
||||||
"FROM SD_FISHDICTORY_B src " +
|
"FROM SD_FISHDICTORY_B src " +
|
||||||
"LEFT JOIN SD_FISHDICTORY_RLTN_B rel ON src.ID = rel.ZY_FISH_ID " +
|
"LEFT JOIN SD_FISHDICTORY_RLTN_B rel ON src.ID = rel.ZY_FISH_ID " +
|
||||||
@ -1185,8 +1200,14 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
if (CollUtil.isEmpty(resultList) || loadOptions == null || loadOptions.getTake() == null || loadOptions.getTake() <= 0) {
|
if (CollUtil.isEmpty(resultList) || loadOptions == null || loadOptions.getTake() == null || loadOptions.getTake() <= 0) {
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
int start = Math.max(loadOptions.getSkip() == null ? 0 : loadOptions.getSkip(), 0);
|
int page = loadOptions.getSkip() == null ? 1 : loadOptions.getSkip(); // 页码从1开始,缺省为1
|
||||||
int end = Math.min(start + loadOptions.getTake(), resultList.size());
|
// 如果页码 ≤ 0,强制设为1(避免负值)
|
||||||
|
if (page < 1) {
|
||||||
|
page = 1;
|
||||||
|
}
|
||||||
|
int size = loadOptions.getTake();
|
||||||
|
int start = (page - 1) * size;
|
||||||
|
int end = Math.min(start + size, resultList.size());
|
||||||
if (start >= resultList.size()) {
|
if (start >= resultList.size()) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,8 +39,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult processKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult processKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? new PageInfo() : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
String isBotanicalGarden = loadOptions == null ? null
|
String isBotanicalGarden = loadOptions == null ? null
|
||||||
: QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "isBotanicalGarden");
|
: QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "isBotanicalGarden");
|
||||||
@ -90,8 +89,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult processVmsstbprptList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult processVmsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? new PageInfo() : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
StringBuilder sql = new StringBuilder(buildVmsstbprptBaseSql());
|
StringBuilder sql = new StringBuilder(buildVmsstbprptBaseSql());
|
||||||
@ -177,9 +175,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult<VpWvaRunVo> processWvaKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<VpWvaRunVo> processWvaKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? new PageInfo() : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
StringBuilder sql = new StringBuilder(buildWvaBaseSql());
|
StringBuilder sql = new StringBuilder(buildWvaBaseSql());
|
||||||
String filterSql = buildWvaFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
|
String filterSql = buildWvaFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
|
||||||
@ -218,8 +214,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult<VpVacVo> processVacKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<VpVacVo> processVacKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? new PageInfo() : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
String isZoo = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "isZoo");
|
String isZoo = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "isZoo");
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
@ -260,9 +255,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult<VpVarVo> processVarKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<VpVarVo> processVarKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? new PageInfo() : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
|
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
StringBuilder sql = new StringBuilder(buildVarBaseSql());
|
StringBuilder sql = new StringBuilder(buildVarBaseSql());
|
||||||
String filterSql = buildVarFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
|
String filterSql = buildVarFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
|
||||||
|
|||||||
@ -3501,8 +3501,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
|
|||||||
sql.append(buildStTbYsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
sql.append(buildStTbYsOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
PageInfo pageInfo = loadOptions == null ? null : QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
Page<?> page = pageInfo != null && pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
|
|
||||||
List<StTbYsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, StTbYsVo.class);
|
List<StTbYsVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, StTbYsVo.class);
|
||||||
|
|
||||||
DataSourceResult<StTbYsVo> result = new DataSourceResult<>();
|
DataSourceResult<StTbYsVo> result = new DataSourceResult<>();
|
||||||
|
|||||||
@ -85,4 +85,10 @@ public class SdWtBaseInfoVO implements Serializable {
|
|||||||
|
|
||||||
@Schema(description = "基地流域编码")
|
@Schema(description = "基地流域编码")
|
||||||
private String hbrvcd;
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "经度")
|
||||||
|
private Double lgtd;
|
||||||
|
|
||||||
|
@Schema(description = "纬度")
|
||||||
|
private Double lttd;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -667,6 +667,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
.append("eng.STCD AS rstcd, ")
|
.append("eng.STCD AS rstcd, ")
|
||||||
.append("NULL AS stCode, ")
|
.append("NULL AS stCode, ")
|
||||||
.append("NULL AS stName, ")
|
.append("NULL AS stName, ")
|
||||||
|
.append("eng.LGTD AS lgtd, ")
|
||||||
|
.append("eng.LTTD AS lttd, ")
|
||||||
.append("eng.DVTP AS dvtp, ")
|
.append("eng.DVTP AS dvtp, ")
|
||||||
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
||||||
.append("eng.HBRVCD AS hbrvcd, ")
|
.append("eng.HBRVCD AS hbrvcd, ")
|
||||||
@ -700,8 +702,10 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
.append("eng.DVTP AS dvtp, ")
|
.append("eng.DVTP AS dvtp, ")
|
||||||
.append("CASE WHEN NVL(dw.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END AS dtinName, ")
|
.append("CASE WHEN NVL(dw.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END AS dtinName, ")
|
||||||
.append("CASE ")
|
.append("CASE ")
|
||||||
.append("WHEN dw.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' ")
|
.append("WHEN dw.BLDSTT_CODE = 2 THEN '已建' ")
|
||||||
.append("WHEN dw.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ")
|
.append("WHEN dw.BLDSTT_CODE = 1 THEN '在建' ")
|
||||||
|
// .append("WHEN dw.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' ")
|
||||||
|
// .append("WHEN dw.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ")
|
||||||
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
||||||
.append("dw.BLDSTT_CODE AS bldsttCcode, ")
|
.append("dw.BLDSTT_CODE AS bldsttCcode, ")
|
||||||
.append("eng.HBRVCD AS hbrvcd ")
|
.append("eng.HBRVCD AS hbrvcd ")
|
||||||
@ -733,8 +737,10 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
.append("wt.STCD AS stcd, ")
|
.append("wt.STCD AS stcd, ")
|
||||||
.append("wt.RSTCD AS rstcd, ")
|
.append("wt.RSTCD AS rstcd, ")
|
||||||
.append("CASE ")
|
.append("CASE ")
|
||||||
.append("WHEN wt.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' ")
|
.append("WHEN wt.BLDSTT_CODE = 2 THEN '已建' ")
|
||||||
.append("WHEN wt.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ")
|
.append("WHEN wt.BLDSTT_CODE = 1 THEN '在建' ")
|
||||||
|
// .append("WHEN wt.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' ")
|
||||||
|
// .append("WHEN wt.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ")
|
||||||
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
||||||
.append("wt.BLDSTT_CODE AS bldsttCcode, ")
|
.append("wt.BLDSTT_CODE AS bldsttCcode, ")
|
||||||
.append("NULL AS stCode, ")
|
.append("NULL AS stCode, ")
|
||||||
@ -1929,7 +1935,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
if ("baseStepSort".equals(field)) {
|
if ("baseStepSort".equals(field)) {
|
||||||
orderColumns.add("NVL(baseStepSort, 999999) " + dir + " NULLS LAST");
|
orderColumns.add("NVL(baseStepSort, 999999) " + dir + " NULLS LAST");
|
||||||
} else if ("rvcdStepSort".equals(field)) {
|
} else if ("rvcdStepSort".equals(field)) {
|
||||||
orderColumns.add("NVL(rvcdStepSort, 999999) " + dir + " NULLS LAST");
|
// orderColumns.add("NVL(rvcdStepSort, 999999) " + dir + " NULLS LAST");
|
||||||
} else if ("rstcdStepSort".equals(field)) {
|
} else if ("rstcdStepSort".equals(field)) {
|
||||||
orderColumns.add("NVL(rstcdStepSort, 999999) " + dir + " NULLS LAST");
|
orderColumns.add("NVL(rstcdStepSort, 999999) " + dir + " NULLS LAST");
|
||||||
} else if ("siteStepSort".equals(field)) {
|
} else if ("siteStepSort".equals(field)) {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.yfd.platform.system.controller;
|
|||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.system.domain.SysConfig;
|
import com.yfd.platform.system.domain.SysConfig;
|
||||||
import com.yfd.platform.system.service.ISysConfigService;
|
import com.yfd.platform.system.service.ISysConfigService;
|
||||||
@ -38,16 +39,22 @@ public class SysConfigController {
|
|||||||
@PostMapping("/getOneById")
|
@PostMapping("/getOneById")
|
||||||
@Operation(summary = "根据id查询全局配置详情记录")
|
@Operation(summary = "根据id查询全局配置详情记录")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public SysConfig getOneById(String id){
|
public SysConfig getOneById(String id,
|
||||||
return configService.getById(id);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId){
|
||||||
|
LambdaQueryWrapper<SysConfig> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysConfig::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysConfig::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
return configService.getOne(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/addConfig")
|
@PostMapping("/addConfig")
|
||||||
@Operation(summary = "根据id查询全局配置详情记录")
|
@Operation(summary = "根据id查询全局配置详情记录")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult addConfig(@RequestBody SysConfig config ) throws IOException, UnsupportedAudioFileException {
|
public ResponseResult addConfig(@RequestBody SysConfig config,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException, UnsupportedAudioFileException {
|
||||||
if (StrUtil.isEmpty(config.getId())){
|
if (StrUtil.isEmpty(config.getId())){
|
||||||
config.setId(IdUtil.fastSimpleUUID()); }
|
config.setId(IdUtil.fastSimpleUUID()); }
|
||||||
|
config.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
config.setLastmodifier(userService.getUsername());
|
config.setLastmodifier(userService.getUsername());
|
||||||
config.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
config.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
||||||
boolean ok=configService.save(config);
|
boolean ok=configService.save(config);
|
||||||
@ -57,7 +64,15 @@ public class SysConfigController {
|
|||||||
@PostMapping("/updateById")
|
@PostMapping("/updateById")
|
||||||
@Operation(summary = "根据id修改全局配置记录")
|
@Operation(summary = "根据id修改全局配置记录")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult updateById(@RequestBody SysConfig config) throws IOException, UnsupportedAudioFileException {
|
public ResponseResult updateById(@RequestBody SysConfig config,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException, UnsupportedAudioFileException {
|
||||||
|
LambdaQueryWrapper<SysConfig> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysConfig::getId, config.getId())
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysConfig::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (configService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的配置记录");
|
||||||
|
}
|
||||||
|
config.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
config.setLastmodifier(userService.getUsername());
|
config.setLastmodifier(userService.getUsername());
|
||||||
config.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
config.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
||||||
boolean ok=configService.updateById(config);
|
boolean ok=configService.updateById(config);
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.yfd.platform.system.controller;
|
package com.yfd.platform.system.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.yfd.platform.annotation.Log;
|
import com.yfd.platform.annotation.Log;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
@ -42,10 +43,11 @@ public class SysLogController {
|
|||||||
@Operation(summary = "分页查询日志信息")
|
@Operation(summary = "分页查询日志信息")
|
||||||
public ResponseResult getLogList(String username, String optType,
|
public ResponseResult getLogList(String username, String optType,
|
||||||
String startDate,
|
String startDate,
|
||||||
String endDate, Page<SysLog> page) {
|
String endDate, Page<SysLog> page,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
tenantId=null;
|
||||||
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
|
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
|
||||||
startDate, endDate, page);
|
startDate, endDate, page, StrUtil.trimToNull(tenantId));
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
map.put("list", sysLogPage.getRecords());
|
map.put("list", sysLogPage.getRecords());
|
||||||
map.put("total", sysLogPage.getTotal());
|
map.put("total", sysLogPage.getTotal());
|
||||||
@ -65,10 +67,11 @@ public class SysLogController {
|
|||||||
public void exportExcel(String username, String optType,
|
public void exportExcel(String username, String optType,
|
||||||
String startDate,
|
String startDate,
|
||||||
String endDate, Page<SysLog> page,
|
String endDate, Page<SysLog> page,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException {
|
||||||
|
tenantId=null;
|
||||||
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
|
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
|
||||||
startDate, endDate, page);
|
startDate, endDate, page, StrUtil.trimToNull(tenantId));
|
||||||
sysLogService.exportExcel(sysLogPage.getRecords(), response);
|
sysLogService.exportExcel(sysLogPage.getRecords(), response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.yfd.platform.system.controller;
|
|||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.yfd.platform.annotation.Log;
|
import com.yfd.platform.annotation.Log;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
@ -58,8 +59,9 @@ public class SysMenuController {
|
|||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> getMenuButtonTree(String systemcode,
|
public List<Map<String, Object>> getMenuButtonTree(String systemcode,
|
||||||
String name,
|
String name,
|
||||||
String isdisplay) {
|
String isdisplay,
|
||||||
return sysMenuService.getMenuButtonTree(systemcode, name, isdisplay);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
return sysMenuService.getMenuButtonTree(systemcode, name, isdisplay, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -75,8 +77,9 @@ public class SysMenuController {
|
|||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> getMenuTree(String systemcode,
|
public List<Map<String, Object>> getMenuTree(String systemcode,
|
||||||
String name,
|
String name,
|
||||||
String isdisplay) {
|
String isdisplay,
|
||||||
return sysMenuService.getMenuTree(systemcode, name, isdisplay);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
return sysMenuService.getMenuTree(systemcode, name, isdisplay, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -90,11 +93,12 @@ public class SysMenuController {
|
|||||||
@PostMapping("/permissionAssignment")
|
@PostMapping("/permissionAssignment")
|
||||||
@Operation(summary = "获取分配权限(不含按钮)")
|
@Operation(summary = "获取分配权限(不含按钮)")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> permissionAssignment(String code, String roleId) {
|
public List<Map<String, Object>> permissionAssignment(String code, String roleId,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
if (StrUtil.isBlank(code)) {
|
if (StrUtil.isBlank(code)) {
|
||||||
code = "1";
|
code = "1";
|
||||||
}
|
}
|
||||||
return sysMenuService.permissionAssignment(code,roleId);
|
return sysMenuService.permissionAssignment(code, roleId, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************
|
/**********************************
|
||||||
@ -105,13 +109,13 @@ public class SysMenuController {
|
|||||||
@GetMapping("/treeRoutes")
|
@GetMapping("/treeRoutes")
|
||||||
@Operation(summary = "获取当前用户菜单结构树")
|
@Operation(summary = "获取当前用户菜单结构树")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> getMenuTreeByUser() {
|
public List<Map<String, Object>> getMenuTreeByUser(@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
SysUser userInfo = userService.getUserInfo();
|
SysUser userInfo = userService.getUserInfo();
|
||||||
String id = "";
|
String id = "";
|
||||||
if (0 != userInfo.getUsertype()) {
|
if (0 != userInfo.getUsertype()) {
|
||||||
id = userInfo.getId();
|
id = userInfo.getId();
|
||||||
}
|
}
|
||||||
return sysMenuService.getMenuTree(id);
|
return sysMenuService.getMenuTree(id, StrUtil.isNotBlank(tenantId) ? StrUtil.trimToNull(tenantId) : userInfo.getTenantId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -123,8 +127,12 @@ public class SysMenuController {
|
|||||||
@PostMapping("/getOneById")
|
@PostMapping("/getOneById")
|
||||||
@Operation(summary = "根据id查询菜单或按钮详情")
|
@Operation(summary = "根据id查询菜单或按钮详情")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult getOneById(String id) {
|
public ResponseResult getOneById(String id,
|
||||||
SysMenu sysMenu = sysMenuService.getById(id);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
SysMenu sysMenu = sysMenuService.getOne(queryWrapper);
|
||||||
return ResponseResult.successData(sysMenu);
|
return ResponseResult.successData(sysMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +146,9 @@ public class SysMenuController {
|
|||||||
@PostMapping("/addMenu")
|
@PostMapping("/addMenu")
|
||||||
@Operation(summary = "新增菜单及按钮")
|
@Operation(summary = "新增菜单及按钮")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult addMenu(@RequestBody SysMenu sysMenu) {
|
public ResponseResult addMenu(@RequestBody SysMenu sysMenu,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
sysMenu.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
boolean isOk = sysMenuService.addMenu(sysMenu);
|
boolean isOk = sysMenuService.addMenu(sysMenu);
|
||||||
if (isOk) {
|
if (isOk) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -157,7 +167,15 @@ public class SysMenuController {
|
|||||||
@PostMapping("/updateById")
|
@PostMapping("/updateById")
|
||||||
@Operation(summary = "修改菜单及按钮")
|
@Operation(summary = "修改菜单及按钮")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult updateById(@RequestBody SysMenu sysMenu) {
|
public ResponseResult updateById(@RequestBody SysMenu sysMenu,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, sysMenu.getId())
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (sysMenuService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的菜单");
|
||||||
|
}
|
||||||
|
sysMenu.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
sysMenu.setLastmodifier(userService.getUsername());
|
sysMenu.setLastmodifier(userService.getUsername());
|
||||||
sysMenu.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
sysMenu.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
|
||||||
boolean isOk = sysMenuService.updateById(sysMenu);
|
boolean isOk = sysMenuService.updateById(sysMenu);
|
||||||
@ -179,7 +197,14 @@ public class SysMenuController {
|
|||||||
@PostMapping("/deleteIcon")
|
@PostMapping("/deleteIcon")
|
||||||
@Operation(summary = "根据id删除单个图标")
|
@Operation(summary = "根据id删除单个图标")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult deleteIcon(@RequestParam String id) {
|
public ResponseResult deleteIcon(@RequestParam String id,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (sysMenuService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的菜单");
|
||||||
|
}
|
||||||
boolean ok = sysMenuService.deleteIcon(id);
|
boolean ok = sysMenuService.deleteIcon(id);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -199,10 +224,11 @@ public class SysMenuController {
|
|||||||
@PostMapping("/setIsDisplay")
|
@PostMapping("/setIsDisplay")
|
||||||
@Operation(summary = "更新菜单及按钮是否有效")
|
@Operation(summary = "更新菜单及按钮是否有效")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setIsDisplay(String id, String isdisplay) {
|
public ResponseResult setIsDisplay(String id, String isdisplay,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysMenu> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysMenu> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 修改是否显示 ,最近修改人,最近修改时间
|
//根据id 修改是否显示 ,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("isdisplay", isdisplay).set(
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isdisplay", isdisplay).set(
|
||||||
"lastmodifier", userService.getUsername()).set(
|
"lastmodifier", userService.getUsername()).set(
|
||||||
"lastmodifydate",
|
"lastmodifydate",
|
||||||
new Timestamp(System.currentTimeMillis()));
|
new Timestamp(System.currentTimeMillis()));
|
||||||
@ -227,8 +253,15 @@ public class SysMenuController {
|
|||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult moveOrderno(@RequestParam String parentid,
|
public ResponseResult moveOrderno(@RequestParam String parentid,
|
||||||
@RequestParam String id,
|
@RequestParam String id,
|
||||||
@RequestParam int orderno) {
|
@RequestParam int orderno,
|
||||||
boolean ok = sysMenuService.moveOrderno(parentid, id, orderno);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (sysMenuService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的菜单");
|
||||||
|
}
|
||||||
|
boolean ok = sysMenuService.moveOrderno(parentid, id, orderno, StrUtil.trimToNull(tenantId));
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
} else {
|
} else {
|
||||||
@ -246,7 +279,14 @@ public class SysMenuController {
|
|||||||
@PostMapping("/deleteById")
|
@PostMapping("/deleteById")
|
||||||
@Operation(summary = "根据id删除菜单或按钮")
|
@Operation(summary = "根据id删除菜单或按钮")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult deleteById(@RequestParam String id) {
|
public ResponseResult deleteById(@RequestParam String id,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (sysMenuService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的菜单");
|
||||||
|
}
|
||||||
boolean ok = sysMenuService.deleteById(id);
|
boolean ok = sysMenuService.deleteById(id);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -266,13 +306,23 @@ public class SysMenuController {
|
|||||||
@Operation(summary = "菜单或按钮切换")
|
@Operation(summary = "菜单或按钮切换")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult changeMenuOrder(@RequestParam String fromId,
|
public ResponseResult changeMenuOrder(@RequestParam String fromId,
|
||||||
@RequestParam String toId) {
|
@RequestParam String toId,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
if (StrUtil.isBlank(fromId) || StrUtil.isBlank(toId)) {
|
if (StrUtil.isBlank(fromId) || StrUtil.isBlank(toId)) {
|
||||||
return ResponseResult.error("参数为空!");
|
return ResponseResult.error("参数为空!");
|
||||||
}
|
}
|
||||||
if (fromId.equals(toId)) {
|
if (fromId.equals(toId)) {
|
||||||
return ResponseResult.error("切换失败!");
|
return ResponseResult.error("切换失败!");
|
||||||
}
|
}
|
||||||
|
LambdaQueryWrapper<SysMenu> fromWrapper = new LambdaQueryWrapper<>();
|
||||||
|
fromWrapper.eq(SysMenu::getId, fromId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
LambdaQueryWrapper<SysMenu> toWrapper = new LambdaQueryWrapper<>();
|
||||||
|
toWrapper.eq(SysMenu::getId, toId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (sysMenuService.getOne(fromWrapper) == null || sysMenuService.getOne(toWrapper) == null) {
|
||||||
|
return ResponseResult.error("存在不属于当前租户的菜单");
|
||||||
|
}
|
||||||
boolean ok = sysMenuService.changeOderNoById(fromId, toId);
|
boolean ok = sysMenuService.changeOderNoById(fromId, toId);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -290,9 +340,16 @@ public class SysMenuController {
|
|||||||
@PostMapping("/uploadIcon")
|
@PostMapping("/uploadIcon")
|
||||||
@Operation(summary = "上传单个图标")
|
@Operation(summary = "上传单个图标")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult uploadIcon(MultipartFile icon, String menuId) throws FileNotFoundException {
|
public ResponseResult uploadIcon(MultipartFile icon, String menuId,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) throws FileNotFoundException {
|
||||||
if (StrUtil.isNotBlank(menuId)) {
|
if (StrUtil.isNotBlank(menuId)) {
|
||||||
SysMenu sysMenu = sysMenuService.getById(menuId);
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysMenu::getId, menuId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
SysMenu sysMenu = sysMenuService.getOne(queryWrapper);
|
||||||
|
if (sysMenu == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的菜单");
|
||||||
|
}
|
||||||
//图片路径
|
//图片路径
|
||||||
String iconname =
|
String iconname =
|
||||||
System.getProperty("user.dir") + "\\src\\main" +
|
System.getProperty("user.dir") + "\\src\\main" +
|
||||||
|
|||||||
@ -51,8 +51,9 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/getOrgScopeTree")
|
@PostMapping("/getOrgScopeTree")
|
||||||
@Operation(summary = "获取组织范围树结构")
|
@Operation(summary = "获取组织范围树结构")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> getOrgScopeTree(String roleId) {
|
public List<Map<String, Object>> getOrgScopeTree(String roleId,
|
||||||
return organizationService.getOrgScopeTree(roleId);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
return organizationService.getOrgScopeTree(roleId, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -64,8 +65,9 @@ public class SysOrganizationController {
|
|||||||
@Operation(summary = "获取组织结构树")
|
@Operation(summary = "获取组织结构树")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map<String, Object>> getOrgTree(String parentid,
|
public List<Map<String, Object>> getOrgTree(String parentid,
|
||||||
String params) {
|
String params,
|
||||||
return organizationService.getOrgTree(parentid, params);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
return organizationService.getOrgTree(parentid, params, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -77,12 +79,13 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/getOrganizationById")
|
@PostMapping("/getOrganizationById")
|
||||||
@Operation(summary = "根据企业ID查询组织信息")
|
@Operation(summary = "根据企业ID查询组织信息")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult getOrganizationById(String id, String orgName) {
|
public ResponseResult getOrganizationById(String id, String orgName,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
if (StrUtil.isBlank(id)) {
|
if (StrUtil.isBlank(id)) {
|
||||||
return ResponseResult.error("查询失败!");
|
return ResponseResult.error("查询失败!");
|
||||||
}
|
}
|
||||||
List<SysOrganization> sysOrganizations =
|
List<SysOrganization> sysOrganizations =
|
||||||
organizationService.getOrganizationById(id, orgName);
|
organizationService.getOrganizationById(id, orgName, StrUtil.trimToNull(tenantId));
|
||||||
return ResponseResult.successData(sysOrganizations);
|
return ResponseResult.successData(sysOrganizations);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,8 +98,13 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/getOneById")
|
@PostMapping("/getOneById")
|
||||||
@Operation(summary = "根据ID查询组织详情")
|
@Operation(summary = "根据ID查询组织详情")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult getOneById(String id) {
|
public ResponseResult getOneById(String id,
|
||||||
SysOrganization sysOrganization = organizationService.getById(id);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysOrganization> queryWrapper =
|
||||||
|
new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysOrganization::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
SysOrganization sysOrganization = organizationService.getOne(queryWrapper);
|
||||||
return ResponseResult.successData(sysOrganization);
|
return ResponseResult.successData(sysOrganization);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +118,8 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/addOrg")
|
@PostMapping("/addOrg")
|
||||||
@Operation(summary = "新增系统组织框架")
|
@Operation(summary = "新增系统组织框架")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult addOrg(@RequestBody SysOrganization sysOrganization) {
|
public ResponseResult addOrg(@RequestBody SysOrganization sysOrganization,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
//判断是否是否填写 有效 否则默认为 1
|
//判断是否是否填写 有效 否则默认为 1
|
||||||
if (StrUtil.isEmpty(sysOrganization.getIsvaild())) {
|
if (StrUtil.isEmpty(sysOrganization.getIsvaild())) {
|
||||||
sysOrganization.setIsvaild("1");
|
sysOrganization.setIsvaild("1");
|
||||||
@ -118,6 +127,7 @@ public class SysOrganizationController {
|
|||||||
if("".equals(sysOrganization.getId())){
|
if("".equals(sysOrganization.getId())){
|
||||||
sysOrganization.setId(null);
|
sysOrganization.setId(null);
|
||||||
}
|
}
|
||||||
|
sysOrganization.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
//填写 当前用户名称
|
//填写 当前用户名称
|
||||||
sysOrganization.setLastmodifier(userService.getUsername());
|
sysOrganization.setLastmodifier(userService.getUsername());
|
||||||
//填写 当前日期
|
//填写 当前日期
|
||||||
@ -141,7 +151,16 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/updateById")
|
@PostMapping("/updateById")
|
||||||
@Operation(summary = "修改系统组织框架")
|
@Operation(summary = "修改系统组织框架")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult updateById(@RequestBody SysOrganization sysOrganization) {
|
public ResponseResult updateById(@RequestBody SysOrganization sysOrganization,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysOrganization> queryWrapper =
|
||||||
|
new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysOrganization::getId, sysOrganization.getId())
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (organizationService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的组织");
|
||||||
|
}
|
||||||
|
sysOrganization.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
//填写 当前用户名称
|
//填写 当前用户名称
|
||||||
sysOrganization.setLastmodifier(userService.getUsername());
|
sysOrganization.setLastmodifier(userService.getUsername());
|
||||||
//填写 当前日期
|
//填写 当前日期
|
||||||
@ -166,10 +185,11 @@ public class SysOrganizationController {
|
|||||||
@Operation(summary = "设置组织是否有效")
|
@Operation(summary = "设置组织是否有效")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setIsValid(@RequestParam String id,
|
public ResponseResult setIsValid(@RequestParam String id,
|
||||||
@RequestParam String isvaild) {
|
@RequestParam String isvaild,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysOrganization> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysOrganization> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 修改是否有效,最近修改人,最近修改时间
|
//根据id 修改是否有效,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("isvaild", isvaild).set("lastmodifier"
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isvaild", isvaild).set("lastmodifier"
|
||||||
, userService.getUsername()).set("lastmodifydate",
|
, userService.getUsername()).set("lastmodifydate",
|
||||||
new Timestamp(System.currentTimeMillis()));
|
new Timestamp(System.currentTimeMillis()));
|
||||||
boolean isOk = organizationService.update(updateWrapper);
|
boolean isOk = organizationService.update(updateWrapper);
|
||||||
@ -190,21 +210,34 @@ public class SysOrganizationController {
|
|||||||
@PostMapping("/deleteById")
|
@PostMapping("/deleteById")
|
||||||
@Operation(summary = "根据id删除系统组织框架")
|
@Operation(summary = "根据id删除系统组织框架")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult deleteById(@RequestParam String id) {
|
public ResponseResult deleteById(@RequestParam String id,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
String[] orgIds = id.split(",");
|
String[] orgIds = id.split(",");
|
||||||
for (String orgId : orgIds) {
|
for (String orgId : orgIds) {
|
||||||
|
LambdaQueryWrapper<SysOrganization> currentWrapper =
|
||||||
|
new LambdaQueryWrapper<>();
|
||||||
|
currentWrapper.eq(SysOrganization::getId, orgId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (organizationService.getOne(currentWrapper) == null) {
|
||||||
|
return ResponseResult.error("存在不属于当前租户的组织");
|
||||||
|
}
|
||||||
LambdaQueryWrapper<SysOrganization> queryWrapper =
|
LambdaQueryWrapper<SysOrganization> queryWrapper =
|
||||||
new LambdaQueryWrapper<>();
|
new LambdaQueryWrapper<>();
|
||||||
List<SysOrganization> list =
|
List<SysOrganization> list =
|
||||||
organizationService.list(queryWrapper.eq(SysOrganization::getParentid, orgId));
|
organizationService.list(queryWrapper.eq(SysOrganization::getParentid, orgId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)));
|
||||||
List<String> ids =
|
List<String> ids =
|
||||||
list.stream().map(SysOrganization::getId).collect(Collectors.toList());
|
list.stream().map(SysOrganization::getId).collect(Collectors.toList());
|
||||||
boolean isOk = organizationService.removeById(orgId);
|
boolean isOk = organizationService.remove(new LambdaQueryWrapper<SysOrganization>()
|
||||||
|
.eq(SysOrganization::getId, orgId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)));
|
||||||
if (!isOk) {
|
if (!isOk) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (String oid : ids) {
|
for (String oid : ids) {
|
||||||
organizationService.removeById(oid);
|
organizationService.remove(new LambdaQueryWrapper<SysOrganization>()
|
||||||
|
.eq(SysOrganization::getId, oid)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
|
|||||||
@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.yfd.platform.annotation.Log;
|
import com.yfd.platform.annotation.Log;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.system.domain.SysMenu;
|
||||||
import com.yfd.platform.system.domain.SysRole;
|
import com.yfd.platform.system.domain.SysRole;
|
||||||
|
import com.yfd.platform.system.service.ISysMenuService;
|
||||||
import com.yfd.platform.system.service.ISysRoleService;
|
import com.yfd.platform.system.service.ISysRoleService;
|
||||||
import com.yfd.platform.system.service.IUserService;
|
import com.yfd.platform.system.service.IUserService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -38,6 +41,9 @@ public class SysRoleController {
|
|||||||
@Resource
|
@Resource
|
||||||
private IUserService userService;
|
private IUserService userService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysMenuService sysMenuService;
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:查询所有角色
|
* 用途说明:查询所有角色
|
||||||
* 参数说明
|
* 参数说明
|
||||||
@ -47,8 +53,9 @@ public class SysRoleController {
|
|||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@Operation(summary = "查询所有角色")
|
@Operation(summary = "查询所有角色")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<SysRole> list(@RequestParam(required = false) String rolename) {
|
public List<SysRole> list(@RequestParam(required = false) String rolename,
|
||||||
return roleService.selectRoleList(rolename);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
return roleService.selectRoleList(rolename, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -60,8 +67,12 @@ public class SysRoleController {
|
|||||||
@PostMapping("/getOneById")
|
@PostMapping("/getOneById")
|
||||||
@Operation(summary = "根据Id获取当个角色")
|
@Operation(summary = "根据Id获取当个角色")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult getOneById(String id) {
|
public ResponseResult getOneById(String id,
|
||||||
SysRole sysRole = roleService.getById(id);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysRole::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
SysRole sysRole = roleService.getOne(queryWrapper);
|
||||||
return ResponseResult.successData(sysRole);
|
return ResponseResult.successData(sysRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +86,9 @@ public class SysRoleController {
|
|||||||
@PostMapping("/addRole")
|
@PostMapping("/addRole")
|
||||||
@Operation(summary = "新增角色")
|
@Operation(summary = "新增角色")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult addRole(@RequestBody SysRole sysRole) {
|
public ResponseResult addRole(@RequestBody SysRole sysRole,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
sysRole.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
boolean isOk = roleService.addRole(sysRole);
|
boolean isOk = roleService.addRole(sysRole);
|
||||||
if (isOk) {
|
if (isOk) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -96,10 +109,11 @@ public class SysRoleController {
|
|||||||
@Operation(summary = "分配操作权限")
|
@Operation(summary = "分配操作权限")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setOptScope(@RequestParam String id,
|
public ResponseResult setOptScope(@RequestParam String id,
|
||||||
@RequestParam String optscope) {
|
@RequestParam String optscope,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 更新权限,最近修改人,最近修改时间
|
//根据id 更新权限,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("optscope", optscope).set(
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("optscope", optscope).set(
|
||||||
"lastmodifier", userService.getUsername()).set(
|
"lastmodifier", userService.getUsername()).set(
|
||||||
"lastmodifydate", LocalDateTime.now());
|
"lastmodifydate", LocalDateTime.now());
|
||||||
boolean ok = roleService.update(updateWrapper);
|
boolean ok = roleService.update(updateWrapper);
|
||||||
@ -121,13 +135,34 @@ public class SysRoleController {
|
|||||||
@PostMapping("/setMenuById")
|
@PostMapping("/setMenuById")
|
||||||
@Operation(summary = "角色菜单权限")
|
@Operation(summary = "角色菜单权限")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setMenuById(String id, String menuIds) {
|
public ResponseResult setMenuById(String id, String menuIds,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
if (StrUtil.isBlank(id)) {
|
if (StrUtil.isBlank(id)) {
|
||||||
return ResponseResult.error("参数为空");
|
return ResponseResult.error("参数为空");
|
||||||
}
|
}
|
||||||
|
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysRole::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (roleService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的角色");
|
||||||
|
}
|
||||||
if (StrUtil.isBlank(menuIds)) {
|
if (StrUtil.isBlank(menuIds)) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
List<String> menuIdList = Arrays.stream(menuIds.split(","))
|
||||||
|
.map(StrUtil::trim)
|
||||||
|
.filter(StrUtil::isNotBlank)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
if (menuIdList.isEmpty()) {
|
||||||
|
return ResponseResult.success();
|
||||||
|
}
|
||||||
|
long menuCount = sysMenuService.count(new LambdaQueryWrapper<SysMenu>()
|
||||||
|
.in(SysMenu::getId, menuIdList)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)));
|
||||||
|
if (menuCount != menuIdList.size()) {
|
||||||
|
return ResponseResult.error("存在不属于当前租户的菜单");
|
||||||
|
}
|
||||||
boolean ok = roleService.setMenuById(id, menuIds);
|
boolean ok = roleService.setMenuById(id, menuIds);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@ -149,10 +184,11 @@ public class SysRoleController {
|
|||||||
@Operation(summary = "设置组织范围")
|
@Operation(summary = "设置组织范围")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setOrgscope(@RequestParam String id,
|
public ResponseResult setOrgscope(@RequestParam String id,
|
||||||
@RequestParam String orgscope) {
|
@RequestParam String orgscope,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 更新组织范围,最近修改人,最近修改时间
|
//根据id 更新组织范围,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("orgscope", orgscope).set(
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("orgscope", orgscope).set(
|
||||||
"lastmodifier", userService.getUsername()).set(
|
"lastmodifier", userService.getUsername()).set(
|
||||||
"lastmodifydate", LocalDateTime.now());
|
"lastmodifydate", LocalDateTime.now());
|
||||||
boolean ok = roleService.update(updateWrapper);
|
boolean ok = roleService.update(updateWrapper);
|
||||||
@ -175,10 +211,11 @@ public class SysRoleController {
|
|||||||
@Operation(summary = "设置业务范围")
|
@Operation(summary = "设置业务范围")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setBusscope(@RequestParam String id,
|
public ResponseResult setBusscope(@RequestParam String id,
|
||||||
@RequestParam String busscope) {
|
@RequestParam String busscope,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 更新业务范围,最近修改人,最近修改时间
|
//根据id 更新业务范围,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("busscope", busscope).set(
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("busscope", busscope).set(
|
||||||
"lastmodifier", userService.getUsername()).set(
|
"lastmodifier", userService.getUsername()).set(
|
||||||
"lastmodifydate", LocalDateTime.now());
|
"lastmodifydate", LocalDateTime.now());
|
||||||
boolean ok = roleService.update(updateWrapper);
|
boolean ok = roleService.update(updateWrapper);
|
||||||
@ -200,7 +237,14 @@ public class SysRoleController {
|
|||||||
@PostMapping("/setRoleUsers")
|
@PostMapping("/setRoleUsers")
|
||||||
@Operation(summary = "角色添加用户")
|
@Operation(summary = "角色添加用户")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setRoleUsers(String roleid, String userids) {
|
public ResponseResult setRoleUsers(String roleid, String userids,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysRole> roleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
roleWrapper.eq(SysRole::getId, roleid)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (roleService.getOne(roleWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的角色");
|
||||||
|
}
|
||||||
boolean isOk = true;
|
boolean isOk = true;
|
||||||
String[] temp = userids.split(",");
|
String[] temp = userids.split(",");
|
||||||
for (String userid : temp) {
|
for (String userid : temp) {
|
||||||
@ -223,7 +267,14 @@ public class SysRoleController {
|
|||||||
@Operation(summary = "删除角色用户")
|
@Operation(summary = "删除角色用户")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult deleteRoleUsers(@RequestParam String roleid,
|
public ResponseResult deleteRoleUsers(@RequestParam String roleid,
|
||||||
@RequestParam String userids) {
|
@RequestParam String userids,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysRole> roleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
roleWrapper.eq(SysRole::getId, roleid)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (roleService.getOne(roleWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的角色");
|
||||||
|
}
|
||||||
//根据角色id、用户id删除
|
//根据角色id、用户id删除
|
||||||
boolean ok = roleService.deleteRoleUsers(roleid, userids);
|
boolean ok = roleService.deleteRoleUsers(roleid, userids);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
@ -243,10 +294,11 @@ public class SysRoleController {
|
|||||||
@PostMapping("/setIsvaild")
|
@PostMapping("/setIsvaild")
|
||||||
@Operation(summary = "设置角色是否有效")
|
@Operation(summary = "设置角色是否有效")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult setIsvaild(String id, String isvaild) {
|
public ResponseResult setIsvaild(String id, String isvaild,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysRole> updateWrapper = new UpdateWrapper<>();
|
||||||
//根据id 更新业务范围,最近修改人,最近修改时间
|
//根据id 更新业务范围,最近修改人,最近修改时间
|
||||||
updateWrapper.eq("id", id).set("isvaild", isvaild).set("lastmodifier"
|
updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isvaild", isvaild).set("lastmodifier"
|
||||||
, userService.getUsername()).set("lastmodifydate",
|
, userService.getUsername()).set("lastmodifydate",
|
||||||
LocalDateTime.now());
|
LocalDateTime.now());
|
||||||
boolean ok = roleService.update(updateWrapper);
|
boolean ok = roleService.update(updateWrapper);
|
||||||
@ -266,7 +318,15 @@ public class SysRoleController {
|
|||||||
@PostMapping("/updateById")
|
@PostMapping("/updateById")
|
||||||
@Operation(summary = "更新角色信息")
|
@Operation(summary = "更新角色信息")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult updateById(@RequestBody SysRole sysRole) {
|
public ResponseResult updateById(@RequestBody SysRole sysRole,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysRole::getId, sysRole.getId())
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (roleService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("未找到对应租户的角色");
|
||||||
|
}
|
||||||
|
sysRole.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
//更新最近修改人
|
//更新最近修改人
|
||||||
sysRole.setLastmodifier(userService.getUsername());
|
sysRole.setLastmodifier(userService.getUsername());
|
||||||
//更新最近修改时间
|
//更新最近修改时间
|
||||||
@ -289,7 +349,17 @@ public class SysRoleController {
|
|||||||
@PostMapping("/deleteById")
|
@PostMapping("/deleteById")
|
||||||
@Operation(summary = "根据id删除角色")
|
@Operation(summary = "根据id删除角色")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult deleteById(@RequestParam String id) {
|
public ResponseResult deleteById(@RequestParam String id,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
String[] roleIds = id.split(",");
|
||||||
|
for (String roleId : roleIds) {
|
||||||
|
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysRole::getId, roleId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
if (roleService.getOne(queryWrapper) == null) {
|
||||||
|
return ResponseResult.error("存在不属于当前租户的角色");
|
||||||
|
}
|
||||||
|
}
|
||||||
roleService.deleteById(id);
|
roleService.deleteById(id);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
@ -310,9 +380,10 @@ public class SysRoleController {
|
|||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Map> listRoleUsers(String orgid, String username,
|
public List<Map> listRoleUsers(String orgid, String username,
|
||||||
String status, String level,
|
String status, String level,
|
||||||
String rolename, String isvaild) {
|
String rolename, String isvaild,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
return roleService.listRoleUsers(orgid, username, status, level,
|
return roleService.listRoleUsers(orgid, username, status, level,
|
||||||
rolename, isvaild);
|
rolename, isvaild, StrUtil.trimToNull(tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.yfd.platform.system.controller;
|
package com.yfd.platform.system.controller;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.yfd.platform.annotation.Log;
|
import com.yfd.platform.annotation.Log;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
@ -41,7 +42,10 @@ public class UserController {
|
|||||||
@PostMapping("/addUser")
|
@PostMapping("/addUser")
|
||||||
@Operation(summary = "新增系统用户")
|
@Operation(summary = "新增系统用户")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult addUser(@RequestBody SysUser user, String roleids) {
|
public ResponseResult addUser(@RequestBody SysUser user,
|
||||||
|
String roleids,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
user.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
Map reslut = userService.addUser(user, roleids);
|
Map reslut = userService.addUser(user, roleids);
|
||||||
return ResponseResult.successData(reslut);
|
return ResponseResult.successData(reslut);
|
||||||
}
|
}
|
||||||
@ -51,10 +55,12 @@ public class UserController {
|
|||||||
@Operation(summary = "修改用户信息")
|
@Operation(summary = "修改用户信息")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult updateUser(@RequestBody SysUser user,
|
public ResponseResult updateUser(@RequestBody SysUser user,
|
||||||
String roleids) {
|
String roleids,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
if (StrUtil.isEmpty(user.getId())) {
|
if (StrUtil.isEmpty(user.getId())) {
|
||||||
return ResponseResult.error("没有用户ID");
|
return ResponseResult.error("没有用户ID");
|
||||||
}
|
}
|
||||||
|
user.setTenantId(StrUtil.trimToNull(tenantId));
|
||||||
//填写 当前用户名称
|
//填写 当前用户名称
|
||||||
user.setLastmodifier(userService.getUsername());
|
user.setLastmodifier(userService.getUsername());
|
||||||
//填写 当前日期
|
//填写 当前日期
|
||||||
@ -68,10 +74,12 @@ public class UserController {
|
|||||||
@Operation(summary = "查询用户信息")
|
@Operation(summary = "查询用户信息")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult queryUsers(String orgid,
|
public ResponseResult queryUsers(String orgid,
|
||||||
String username, Page<SysUser> page) {
|
String username,
|
||||||
|
Page<SysUser> page,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
|
||||||
Page<SysUser> mapPage = userService.queryUsers(orgid,
|
Page<SysUser> mapPage = userService.queryUsers(orgid,
|
||||||
username, page);
|
username, StrUtil.trimToNull(tenantId), page);
|
||||||
return ResponseResult.successData(mapPage);
|
return ResponseResult.successData(mapPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,8 +112,12 @@ public class UserController {
|
|||||||
@GetMapping("/queryUserById")
|
@GetMapping("/queryUserById")
|
||||||
@Operation(summary = "根据id查询用户信息")
|
@Operation(summary = "根据id查询用户信息")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult queryUserById(String id) {
|
public ResponseResult queryUserById(String id,
|
||||||
SysUser user = userService.getById(id);
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysUser::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysUser::getTenantId, StrUtil.trim(tenantId));
|
||||||
|
SysUser user = userService.getOne(queryWrapper);
|
||||||
return ResponseResult.successData(user);
|
return ResponseResult.successData(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,8 +244,11 @@ public class UserController {
|
|||||||
@GetMapping("/queryPendingAuditUsers")
|
@GetMapping("/queryPendingAuditUsers")
|
||||||
@Operation(summary = "查询待审核用户列表")
|
@Operation(summary = "查询待审核用户列表")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseResult queryPendingAuditUsers(Page<SysUser> page,String name,String regStatus) {
|
public ResponseResult queryPendingAuditUsers(Page<SysUser> page,
|
||||||
Page<SysUser> result = userService.queryPendingAuditUsers(page,name,regStatus);
|
String name,
|
||||||
|
String regStatus,
|
||||||
|
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
|
||||||
|
Page<SysUser> result = userService.queryPendingAuditUsers(page, name, regStatus, StrUtil.trimToNull(tenantId));
|
||||||
return ResponseResult.successData(result);
|
return ResponseResult.successData(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,6 +48,12 @@ public class SysConfig implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近修改者
|
* 最近修改者
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -83,6 +83,12 @@ public class SysLog implements Serializable {
|
|||||||
@TableField("REQUESTIP")
|
@TableField("REQUESTIP")
|
||||||
private String requestip;
|
private String requestip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 浏览器类型
|
* 浏览器类型
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -85,6 +85,12 @@ public class SysMenu implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String isdisplay;
|
private String isdisplay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近修改者
|
* 最近修改者
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -63,6 +63,12 @@ public class SysOrganization implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近修改者
|
* 最近修改者
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -69,6 +69,12 @@ public class SysRole implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String isvaild;
|
private String isvaild;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近修改者
|
* 最近修改者
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -79,6 +79,12 @@ public class SysUser implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String orgid;
|
private String orgid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
@TableField("TENANT_ID")
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 密码重置时间
|
* 密码重置时间
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -25,7 +25,10 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||||||
*upOrderno 大于等于序号(更改的序号加一)
|
*upOrderno 大于等于序号(更改的序号加一)
|
||||||
* 返回值说明: 是否更新成功
|
* 返回值说明: 是否更新成功
|
||||||
***********************************/
|
***********************************/
|
||||||
boolean upMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("upOrderno") int upOrderno);
|
boolean upMoveOrderno(@Param("parentid") String parentid,
|
||||||
|
@Param("Orderno") int Orderno,
|
||||||
|
@Param("upOrderno") int upOrderno,
|
||||||
|
@Param("tenantId") String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:菜单及按钮序号向下移动
|
* 用途说明:菜单及按钮序号向下移动
|
||||||
@ -35,13 +38,16 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||||||
*downOrderno 小于等于序号(更改的序号减一)
|
*downOrderno 小于等于序号(更改的序号减一)
|
||||||
* 返回值说明: 是否更新成功
|
* 返回值说明: 是否更新成功
|
||||||
***********************************/
|
***********************************/
|
||||||
boolean downMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("downOrderno") int downOrderno);
|
boolean downMoveOrderno(@Param("parentid") String parentid,
|
||||||
|
@Param("Orderno") int Orderno,
|
||||||
|
@Param("downOrderno") int downOrderno,
|
||||||
|
@Param("tenantId") String tenantId);
|
||||||
|
|
||||||
|
|
||||||
List<String> selectPermsByUserId(String userId);
|
List<String> selectPermsByUserId(String userId);
|
||||||
|
|
||||||
//List<SysMenu> selectMenuByUserId(String userId);
|
//List<SysMenu> selectMenuByUserId(String userId);
|
||||||
List<SysMenu> selectMenuByUserId(String userId);
|
List<SysMenu> selectMenuByUserId(@Param("userId") String userId, @Param("tenantId") String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:根据权限id查找系统类型
|
* 用途说明:根据权限id查找系统类型
|
||||||
@ -55,5 +61,5 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||||||
* 参数说明 id 权限id
|
* 参数说明 id 权限id
|
||||||
* 返回值说明: 返回权限集合
|
* 返回值说明: 返回权限集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<String> selectMenuByRoleId(String id);
|
List<String> selectMenuByRoleId(@Param("id") String id, @Param("tenantId") String tenantId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,8 +44,13 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
|||||||
* isvaild 角色是否有效
|
* isvaild 角色是否有效
|
||||||
* 返回值说明: 系统用户角色数据集合
|
* 返回值说明: 系统用户角色数据集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map> listRoleUsers(String orgid, String username, String status,
|
List<Map> listRoleUsers(@Param("orgid") String orgid,
|
||||||
String level, String rolename, String isvaild);
|
@Param("username") String username,
|
||||||
|
@Param("status") String status,
|
||||||
|
@Param("level") String level,
|
||||||
|
@Param("rolename") String rolename,
|
||||||
|
@Param("isvaild") String isvaild,
|
||||||
|
@Param("tenantId") String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:根据 角色id和用户id 删除 (admin除外)
|
* 用途说明:根据 角色id和用户id 删除 (admin除外)
|
||||||
@ -113,6 +118,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
|||||||
* 参数说明:rolename - 角色名称
|
* 参数说明:rolename - 角色名称
|
||||||
* 返回值说明:角色列表
|
* 返回值说明:角色列表
|
||||||
***********************************/
|
***********************************/
|
||||||
List<SysRole> selectRoleList(@Param("rolename") String rolename);
|
List<SysRole> selectRoleList(@Param("rolename") String rolename, @Param("tenantId") String tenantId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,9 +81,10 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
|||||||
************************************/
|
************************************/
|
||||||
boolean delInRoleUsersByUserid(@Param("userid") String userid,@Param("roleids")String[] roleids);
|
boolean delInRoleUsersByUserid(@Param("userid") String userid,@Param("roleids")String[] roleids);
|
||||||
|
|
||||||
Page<SysUser> queryUsers(String orgid,
|
Page<SysUser> queryUsers(@Param("orgid") String orgid,
|
||||||
String username,
|
@Param("username") String username,
|
||||||
Page<SysUser> page);
|
@Param("tenantId") String tenantId,
|
||||||
|
Page<SysUser> page);
|
||||||
|
|
||||||
Map<String, String> getOrganizationByid(String id);
|
Map<String, String> getOrganizationByid(String id);
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public interface ISysLogService extends IService<SysLog> {
|
|||||||
***********************************/
|
***********************************/
|
||||||
Page<SysLog> getLogList(String username, String optType,
|
Page<SysLog> getLogList(String username, String optType,
|
||||||
String startDate,
|
String startDate,
|
||||||
String endDate, Page<SysLog> page);
|
String endDate, Page<SysLog> page, String tenantId);
|
||||||
|
|
||||||
|
|
||||||
/**********************************
|
/**********************************
|
||||||
|
|||||||
@ -27,7 +27,7 @@ public interface ISysMenuService extends IService<SysMenu> {
|
|||||||
* isdisplay 是否显示
|
* isdisplay 是否显示
|
||||||
* 返回值说明: 菜单结构树集合
|
* 返回值说明: 菜单结构树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map<String,Object>> getMenuButtonTree(String systemcode, String name, String isdisplay);
|
List<Map<String,Object>> getMenuButtonTree(String systemcode, String name, String isdisplay, String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:获取菜单结构树(不含按钮)
|
* 用途说明:获取菜单结构树(不含按钮)
|
||||||
@ -37,7 +37,7 @@ public interface ISysMenuService extends IService<SysMenu> {
|
|||||||
* isdisplay 是否显示
|
* isdisplay 是否显示
|
||||||
* 返回值说明: 菜单结构树集合
|
* 返回值说明: 菜单结构树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map<String,Object>> getMenuTree(String systemcode, String name, String isdisplay);
|
List<Map<String,Object>> getMenuTree(String systemcode, String name, String isdisplay, String tenantId);
|
||||||
|
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -73,7 +73,7 @@ public interface ISysMenuService extends IService<SysMenu> {
|
|||||||
* orderMap map<菜单及按钮表id,排列序号>
|
* orderMap map<菜单及按钮表id,排列序号>
|
||||||
* 返回值说明: 是否更新成功
|
* 返回值说明: 是否更新成功
|
||||||
***********************************/
|
***********************************/
|
||||||
boolean moveOrderno(String parentid, String id, int orderno);
|
boolean moveOrderno(String parentid, String id, int orderno, String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:根据id删除菜单或按钮
|
* 用途说明:根据id删除菜单或按钮
|
||||||
@ -85,7 +85,7 @@ public interface ISysMenuService extends IService<SysMenu> {
|
|||||||
|
|
||||||
boolean changeOderNoById(String fromId, String toId);
|
boolean changeOderNoById(String fromId, String toId);
|
||||||
|
|
||||||
List<Map<String, Object>> getMenuTree(String id);
|
List<Map<String, Object>> getMenuTree(String id, String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:权限分配
|
* 用途说明:权限分配
|
||||||
@ -95,7 +95,7 @@ public interface ISysMenuService extends IService<SysMenu> {
|
|||||||
* isdisplay 是否显示
|
* isdisplay 是否显示
|
||||||
* 返回值说明: 菜单结构树集合
|
* 返回值说明: 菜单结构树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map<String, Object>> permissionAssignment(String code,String roleId);
|
List<Map<String, Object>> permissionAssignment(String code, String roleId, String tenantId);
|
||||||
|
|
||||||
String uploadIcon(MultipartFile icon) throws FileNotFoundException;
|
String uploadIcon(MultipartFile icon) throws FileNotFoundException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
|
|||||||
* params 名称(根据名称查询二级)
|
* params 名称(根据名称查询二级)
|
||||||
* 返回值说明: 组织树集合
|
* 返回值说明: 组织树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map<String, Object>> getOrgTree(String parentid, String params);
|
List<Map<String, Object>> getOrgTree(String parentid, String params, String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:新增系统组织框架
|
* 用途说明:新增系统组织框架
|
||||||
@ -40,7 +40,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
|
|||||||
* id 企业id
|
* id 企业id
|
||||||
* 返回值说明: 系统组织框架对象
|
* 返回值说明: 系统组织框架对象
|
||||||
***********************************/
|
***********************************/
|
||||||
List<SysOrganization> getOrganizationById(String id,String orgName);
|
List<SysOrganization> getOrganizationById(String id, String orgName, String tenantId);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:获取组织范围树结构
|
* 用途说明:获取组织范围树结构
|
||||||
@ -48,7 +48,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
|
|||||||
*roleId 角色id
|
*roleId 角色id
|
||||||
* 返回值说明: 组织树集合
|
* 返回值说明: 组织树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map<String, Object>> getOrgScopeTree(String roleId);
|
List<Map<String, Object>> getOrgScopeTree(String roleId, String tenantId);
|
||||||
|
|
||||||
/**********************************
|
/**********************************
|
||||||
* 用途说明: 修改角色组织范围
|
* 用途说明: 修改角色组织范围
|
||||||
|
|||||||
@ -52,7 +52,7 @@ public interface ISysRoleService extends IService<SysRole> {
|
|||||||
* isvaild 角色是否有效
|
* isvaild 角色是否有效
|
||||||
* 返回值说明: 系统用户角色数据集合
|
* 返回值说明: 系统用户角色数据集合
|
||||||
***********************************/
|
***********************************/
|
||||||
List<Map> listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild);
|
List<Map> listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild, String tenantId);
|
||||||
|
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -64,5 +64,5 @@ public interface ISysRoleService extends IService<SysRole> {
|
|||||||
***********************************/
|
***********************************/
|
||||||
boolean setMenuById(String id, String menuIds);
|
boolean setMenuById(String id, String menuIds);
|
||||||
|
|
||||||
List<SysRole> selectRoleList(String rolename);
|
List<SysRole> selectRoleList(String rolename, String tenantId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -132,7 +132,7 @@ public interface IUserService extends IService<SysUser> {
|
|||||||
boolean addUserRoles(String roleid, String userid);
|
boolean addUserRoles(String roleid, String userid);
|
||||||
|
|
||||||
//Page<SysUser> queryUsers(String orgid, String username, Page<SysUser> page);
|
//Page<SysUser> queryUsers(String orgid, String username, Page<SysUser> page);
|
||||||
Page<SysUser> queryUsers(String orgid, String username, Page<SysUser> page);
|
Page<SysUser> queryUsers(String orgid, String username, String tenantId, Page<SysUser> page);
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
* 用途说明:根据ID批量删除用户
|
* 用途说明:根据ID批量删除用户
|
||||||
@ -174,6 +174,6 @@ public interface IUserService extends IService<SysUser> {
|
|||||||
*page 分页参数
|
*page 分页参数
|
||||||
* 返回值说明: 待审核用户分页列表
|
* 返回值说明: 待审核用户分页列表
|
||||||
************************************/
|
************************************/
|
||||||
Page<SysUser> queryPendingAuditUsers(Page<SysUser> page,String name, String regStatus);
|
Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus, String tenantId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,10 +17,13 @@ import com.yfd.platform.utils.StringUtils;
|
|||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
import org.aspectj.lang.reflect.MethodSignature;
|
import org.aspectj.lang.reflect.MethodSignature;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
@ -55,7 +58,7 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
|||||||
@Override
|
@Override
|
||||||
public Page<SysLog> getLogList(String username, String optType,
|
public Page<SysLog> getLogList(String username, String optType,
|
||||||
String startDate,
|
String startDate,
|
||||||
String endDate, Page<SysLog> page) {
|
String endDate, Page<SysLog> page, String tenantId) {
|
||||||
|
|
||||||
LambdaQueryWrapper<SysLog> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysLog> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
// 没有传username就不按此条件查询
|
// 没有传username就不按此条件查询
|
||||||
@ -72,6 +75,9 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
|||||||
if (parseStartDate != null && parseEndDate != null) {
|
if (parseStartDate != null && parseEndDate != null) {
|
||||||
queryWrapper.ge(SysLog::getLogtime, parseStartDate).lt(SysLog::getLogtime, dateTime);
|
queryWrapper.ge(SysLog::getLogtime, parseStartDate).lt(SysLog::getLogtime, dateTime);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(tenantId)) {
|
||||||
|
queryWrapper.eq(SysLog::getTenantId, tenantId);
|
||||||
|
}
|
||||||
|
|
||||||
queryWrapper.orderByDesc(SysLog::getLogtime);
|
queryWrapper.orderByDesc(SysLog::getLogtime);
|
||||||
return sysLogMapper.selectPage(page, queryWrapper);
|
return sysLogMapper.selectPage(page, queryWrapper);
|
||||||
@ -152,6 +158,11 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
|||||||
log.setUsername(nickname);
|
log.setUsername(nickname);
|
||||||
log.setParams(getParameter(method, joinPoint.getArgs()));
|
log.setParams(getParameter(method, joinPoint.getArgs()));
|
||||||
log.setBrowser(browser);
|
log.setBrowser(browser);
|
||||||
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
if (attributes != null) {
|
||||||
|
HttpServletRequest request = attributes.getRequest();
|
||||||
|
log.setTenantId(StrUtil.trimToNull(request.getHeader("tenant_id")));
|
||||||
|
}
|
||||||
String operationtype = getOperationtype(signature.getName());
|
String operationtype = getOperationtype(signature.getName());
|
||||||
log.setOpttype(operationtype);
|
log.setOpttype(operationtype);
|
||||||
log.setLogtime(new Timestamp(System.currentTimeMillis()));
|
log.setLogtime(new Timestamp(System.currentTimeMillis()));
|
||||||
|
|||||||
@ -64,23 +64,28 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getMenuButtonTree(String systemcode,
|
public List<Map<String, Object>> getMenuButtonTree(String systemcode,
|
||||||
String name,
|
String name,
|
||||||
String isdisplay) {
|
String isdisplay,
|
||||||
|
String tenantId) {
|
||||||
List<Map<String, Object>> mapList=null;
|
List<Map<String, Object>> mapList=null;
|
||||||
List<Map<String, Object>> listMap =new ArrayList<>();
|
List<Map<String, Object>> listMap =new ArrayList<>();
|
||||||
if(StrUtil.isEmpty(name)){//不带名称查询,返回树结构
|
if(StrUtil.isEmpty(name)){//不带名称查询,返回树结构
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("parentid", "0").eq("systemcode", systemcode).orderByAsc("orderno");
|
queryWrapper.eq("parentid", "0").eq("systemcode", systemcode)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId)
|
||||||
|
.orderByAsc("orderno");
|
||||||
mapList = this.listMaps(queryWrapper);
|
mapList = this.listMaps(queryWrapper);
|
||||||
listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList));
|
listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList));
|
||||||
for (int i = 0; i < listMap.size(); i++) {
|
for (int i = 0; i < listMap.size(); i++) {
|
||||||
//查询下一子集
|
//查询下一子集
|
||||||
List<Map<String, Object>> childList = child(listMap.get(i).get(
|
List<Map<String, Object>> childList = child(listMap.get(i).get(
|
||||||
"id").toString(), systemcode, name, null, null);
|
"id").toString(), systemcode, name, null, null, tenantId);
|
||||||
listMap.get(i).put("children", childList); //添加新列 子集
|
listMap.get(i).put("children", childList); //添加新列 子集
|
||||||
}
|
}
|
||||||
}else{ //根据菜单名称查询,直接返回类别
|
}else{ //根据菜单名称查询,直接返回类别
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.like("name", name).eq("systemcode", systemcode).orderByAsc("name");
|
queryWrapper.like("name", name).eq("systemcode", systemcode)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId)
|
||||||
|
.orderByAsc("name");
|
||||||
mapList = this.listMaps(queryWrapper);
|
mapList = this.listMaps(queryWrapper);
|
||||||
listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList));
|
listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList));
|
||||||
}
|
}
|
||||||
@ -97,7 +102,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getMenuTree(String systemcode,
|
public List<Map<String, Object>> getMenuTree(String systemcode,
|
||||||
String name,
|
String name,
|
||||||
String isdisplay) {
|
String isdisplay,
|
||||||
|
String tenantId) {
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
if (StrUtil.isNotEmpty(isdisplay)) {
|
if (StrUtil.isNotEmpty(isdisplay)) {
|
||||||
queryWrapper.eq("isdisplay", isdisplay);
|
queryWrapper.eq("isdisplay", isdisplay);
|
||||||
@ -107,11 +113,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
|
|
||||||
//根据系统 ,类型不为2 显示,序号 正序排序
|
//根据系统 ,类型不为2 显示,序号 正序排序
|
||||||
queryWrapper.eq("parentid", "0").eq("systemcode", systemcode).ne(
|
queryWrapper.eq("parentid", "0").eq("systemcode", systemcode).ne(
|
||||||
"type", "2").orderByAsc("orderno");
|
"type", "2").eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId).orderByAsc("orderno");
|
||||||
List<Map<String, Object>> listMap = this.listMaps(queryWrapper);
|
List<Map<String, Object>> listMap = this.listMaps(queryWrapper);
|
||||||
for (int i = 0; i < listMap.size(); i++) {
|
for (int i = 0; i < listMap.size(); i++) {
|
||||||
List<Map<String, Object>> childList = child(listMap.get(i).get(
|
List<Map<String, Object>> childList = child(listMap.get(i).get(
|
||||||
"id").toString(), systemcode, name, isdisplay, "2");//查询下一子集
|
"id").toString(), systemcode, name, isdisplay, "2", tenantId);//查询下一子集
|
||||||
listMap.get(i).put("children", childList); //添加新列 子集
|
listMap.get(i).put("children", childList); //添加新列 子集
|
||||||
}
|
}
|
||||||
return listMap;
|
return listMap;
|
||||||
@ -128,10 +134,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
***********************************/
|
***********************************/
|
||||||
private List<Map<String, Object>> child(String parentid,
|
private List<Map<String, Object>> child(String parentid,
|
||||||
String systemcode, String name,
|
String systemcode, String name,
|
||||||
String isdisplay, String type) {
|
String isdisplay, String type, String tenantId) {
|
||||||
List<Map<String, Object>> mapList;
|
List<Map<String, Object>> mapList;
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("parentid", parentid).eq("systemcode", systemcode);
|
queryWrapper.eq("parentid", parentid).eq("systemcode", systemcode);
|
||||||
|
queryWrapper.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId);
|
||||||
//根据上级id 系统 查询
|
//根据上级id 系统 查询
|
||||||
if (StrUtil.isNotEmpty(type)) {
|
if (StrUtil.isNotEmpty(type)) {
|
||||||
queryWrapper.ne("type", type);
|
queryWrapper.ne("type", type);
|
||||||
@ -146,7 +153,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
for (int i = 0; i < listMap.size(); i++) { //遍历表数据
|
for (int i = 0; i < listMap.size(); i++) { //遍历表数据
|
||||||
List<Map<String, Object>> childList =
|
List<Map<String, Object>> childList =
|
||||||
child(listMap.get(i).get("id").toString(), systemcode
|
child(listMap.get(i).get("id").toString(), systemcode
|
||||||
, name, isdisplay, type); //循环获取下一子集
|
, name, isdisplay, type, tenantId); //循环获取下一子集
|
||||||
listMap.get(i).put("children", childList); //添加新列 子集
|
listMap.get(i).put("children", childList); //添加新列 子集
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,20 +172,24 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
String parentId = sysMenu.getParentid();
|
String parentId = sysMenu.getParentid();
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
//根据上级id 查询到总数 并累加
|
//根据上级id 查询到总数 并累加
|
||||||
long orderno = this.count(queryWrapper.eq("parentid",
|
queryWrapper.eq("parentid", parentId)
|
||||||
parentId)) + 1L;
|
.eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId());
|
||||||
|
long orderno = this.count(queryWrapper) + 1L;
|
||||||
// 生成排序号
|
// 生成排序号
|
||||||
sysMenu.setOrderno((int) orderno);
|
sysMenu.setOrderno((int) orderno);
|
||||||
// 生成编号
|
// 生成编号
|
||||||
QueryWrapper<SysMenu> queryMaxCode = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryMaxCode = new QueryWrapper<>();
|
||||||
queryMaxCode.eq("parentid", parentId);
|
queryMaxCode.eq("parentid", parentId)
|
||||||
|
.eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId());
|
||||||
|
|
||||||
// 使用 Oracle 兼容的 NVL 函数处理空值
|
// 使用 Oracle 兼容的 NVL 函数处理空值
|
||||||
List<Object> maxList = this.listObjs(
|
List<Object> maxList = this.listObjs(
|
||||||
queryMaxCode.select("NVL(MAX(code), '0') as code")
|
queryMaxCode.select("NVL(MAX(code), '0') as code")
|
||||||
.eq("systemcode", sysMenu.getSystemcode())
|
.eq("systemcode", sysMenu.getSystemcode())
|
||||||
);
|
);
|
||||||
SysMenu parentMenu = sysMenuMapper.selectById(parentId);
|
SysMenu parentMenu = "0".equals(parentId) ? null : this.getOne(new LambdaQueryWrapper<SysMenu>()
|
||||||
|
.eq(SysMenu::getId, parentId)
|
||||||
|
.eq(StrUtil.isNotBlank(sysMenu.getTenantId()), SysMenu::getTenantId, sysMenu.getTenantId()));
|
||||||
// 最大编号转换成int类型
|
// 最大编号转换成int类型
|
||||||
String maxCode = !maxList.isEmpty() ? maxList.getFirst().toString() : "0";
|
String maxCode = !maxList.isEmpty() ? maxList.getFirst().toString() : "0";
|
||||||
int max = ObjectUtil.isEmpty(maxList) ? 0 :
|
int max = ObjectUtil.isEmpty(maxList) ? 0 :
|
||||||
@ -302,18 +313,25 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
* 返回值说明: 是否更新成功
|
* 返回值说明: 是否更新成功
|
||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public boolean moveOrderno(String parentid, String id, int orderno) {
|
public boolean moveOrderno(String parentid, String id, int orderno, String tenantId) {
|
||||||
boolean ok = true;
|
boolean ok = true;
|
||||||
SysMenu sysMenu = this.getById(id); //根据id查询原顺序号
|
SysMenu sysMenu = this.getOne(new LambdaQueryWrapper<SysMenu>()
|
||||||
|
.eq(SysMenu::getId, id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId)); //根据id查询原顺序号
|
||||||
|
if (sysMenu == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (sysMenu.getOrderno() > orderno) {
|
if (sysMenu.getOrderno() > orderno) {
|
||||||
ok = sysMenuMapper.upMoveOrderno(parentid, sysMenu.getOrderno(),
|
ok = sysMenuMapper.upMoveOrderno(parentid, sysMenu.getOrderno(),
|
||||||
orderno); //根据 父级id 小于原序号 大于等于更改序号
|
orderno, tenantId); //根据 父级id 小于原序号 大于等于更改序号
|
||||||
} else {
|
} else {
|
||||||
ok = sysMenuMapper.downMoveOrderno(parentid, sysMenu.getOrderno()
|
ok = sysMenuMapper.downMoveOrderno(parentid, sysMenu.getOrderno()
|
||||||
, orderno); //根据 父级id 大于原序号 小于等于更改序号
|
, orderno, tenantId); //根据 父级id 大于原序号 小于等于更改序号
|
||||||
}
|
}
|
||||||
UpdateWrapper<SysMenu> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<SysMenu> updateWrapper = new UpdateWrapper<>();
|
||||||
ok = ok && this.update(updateWrapper.eq("id", id).set("orderno",
|
ok = ok && this.update(updateWrapper.eq("id", id)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId)
|
||||||
|
.set("orderno",
|
||||||
orderno)); //根据 id修改序号
|
orderno)); //根据 id修改序号
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
@ -345,8 +363,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
}
|
}
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
||||||
//根据上级id 查询 根据 orderno 正序排序
|
//根据上级id 查询 根据 orderno 正序排序
|
||||||
queryWrapper.eq("parentid", sysMenu.getParentid()).orderByAsc(
|
queryWrapper.eq("parentid", sysMenu.getParentid())
|
||||||
"orderno");
|
.eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId())
|
||||||
|
.orderByAsc("orderno");
|
||||||
List<SysMenu> list = this.list(queryWrapper);
|
List<SysMenu> list = this.list(queryWrapper);
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
SysMenu menu = list.get(i);
|
SysMenu menu = list.get(i);
|
||||||
@ -409,16 +428,20 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
* 返回值说明: 返回菜单树
|
* 返回值说明: 返回菜单树
|
||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getMenuTree(String id) {
|
public List<Map<String, Object>> getMenuTree(String id, String tenantId) {
|
||||||
// 根据id获取菜单
|
// 根据id获取菜单
|
||||||
//List<SysMenu> sysMenus = sysMenuMapper.selectMenuByUserId(id);
|
//List<SysMenu> sysMenus = sysMenuMapper.selectMenuByUserId(id);
|
||||||
List<SysMenu> sysMenuList;
|
List<SysMenu> sysMenuList;
|
||||||
if (StrUtil.isBlank(id)) {
|
if (StrUtil.isBlank(id)) {
|
||||||
LambdaQueryWrapper<SysMenu> queryWrapper =
|
LambdaQueryWrapper<SysMenu> queryWrapper =
|
||||||
new LambdaQueryWrapper<>();
|
new LambdaQueryWrapper<>();
|
||||||
sysMenuList = this.list(queryWrapper.eq(SysMenu::getIsdisplay, "1").ne(SysMenu::getType, "2").eq(SysMenu::getSystemcode, "1").orderByAsc(SysMenu::getOrderno));
|
sysMenuList = this.list(queryWrapper.eq(SysMenu::getIsdisplay, "1")
|
||||||
|
.ne(SysMenu::getType, "2")
|
||||||
|
// .eq(SysMenu::getSystemcode, "1")
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId)
|
||||||
|
.orderByAsc(SysMenu::getOrderno));
|
||||||
} else {
|
} else {
|
||||||
sysMenuList = sysMenuMapper.selectMenuByUserId(id);
|
sysMenuList = sysMenuMapper.selectMenuByUserId(id, tenantId);
|
||||||
}
|
}
|
||||||
// 将 SysMenu 转换为 Map 并构建树
|
// 将 SysMenu 转换为 Map 并构建树
|
||||||
List<Map<String, Object>> list = sysMenuList.stream()
|
List<Map<String, Object>> list = sysMenuList.stream()
|
||||||
@ -451,7 +474,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
* 返回值说明: 菜单结构树集合
|
* 返回值说明: 菜单结构树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> permissionAssignment(String code,String roleId) {
|
public List<Map<String, Object>> permissionAssignment(String code, String roleId, String tenantId) {
|
||||||
|
|
||||||
// String code = sysMenuMapper.getSystemCodeById(roleId);
|
// String code = sysMenuMapper.getSystemCodeById(roleId);
|
||||||
// if (code == null) {
|
// if (code == null) {
|
||||||
@ -459,13 +482,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||||||
// }
|
// }
|
||||||
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(SysMenu::getSystemcode, code).select(SysMenu::getId,
|
queryWrapper.eq(SysMenu::getSystemcode, code).select(SysMenu::getId,
|
||||||
SysMenu::getParentid, SysMenu::getName).orderByAsc
|
SysMenu::getParentid, SysMenu::getName).eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId).orderByAsc
|
||||||
(SysMenu::getOrderno);
|
(SysMenu::getOrderno);
|
||||||
List<Map<String, Object>> mapList =
|
List<Map<String, Object>> mapList =
|
||||||
sysMenuMapper.selectMaps(queryWrapper);
|
sysMenuMapper.selectMaps(queryWrapper);
|
||||||
List<Map<String, Object>> listAll = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList);
|
List<Map<String, Object>> listAll = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList);
|
||||||
List<String> listRole =
|
List<String> listRole =
|
||||||
sysMenuMapper.selectMenuByRoleId(roleId);
|
sysMenuMapper.selectMenuByRoleId(roleId, tenantId);
|
||||||
for (Map<String, Object> map : listAll) {
|
for (Map<String, Object> map : listAll) {
|
||||||
String id = (String) map.get("id");
|
String id = (String) map.get("id");
|
||||||
if (listRole.contains(id)) {
|
if (listRole.contains(id)) {
|
||||||
|
|||||||
@ -56,7 +56,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getOrgTree(String parentid,
|
public List<Map<String, Object>> getOrgTree(String parentid,
|
||||||
String params) {
|
String params,
|
||||||
|
String tenantId) {
|
||||||
SysUser userInfo = userService.getUserInfo();
|
SysUser userInfo = userService.getUserInfo();
|
||||||
|
|
||||||
// 构建权限过滤条件
|
// 构建权限过滤条件
|
||||||
@ -75,7 +76,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
allowedOrgIds.addAll(stringList);
|
allowedOrgIds.addAll(stringList);
|
||||||
// 查询这些组织的父级ID
|
// 查询这些组织的父级ID
|
||||||
List<SysOrganization> list = sysOrganizationMapper.selectList(
|
List<SysOrganization> list = sysOrganizationMapper.selectList(
|
||||||
new LambdaQueryWrapper<SysOrganization>().in(SysOrganization::getId, stringList));
|
new LambdaQueryWrapper<SysOrganization>()
|
||||||
|
.in(SysOrganization::getId, stringList)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId));
|
||||||
for (SysOrganization org : list) {
|
for (SysOrganization org : list) {
|
||||||
if (org.getParentid() != null) {
|
if (org.getParentid() != null) {
|
||||||
allowedOrgIds.add(org.getParentid());
|
allowedOrgIds.add(org.getParentid());
|
||||||
@ -90,6 +93,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
if (!allowedOrgIds.isEmpty()) {
|
if (!allowedOrgIds.isEmpty()) {
|
||||||
queryWrapper.in("id", allowedOrgIds);
|
queryWrapper.in("id", allowedOrgIds);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(tenantId)) {
|
||||||
|
queryWrapper.eq("tenant_id", tenantId);
|
||||||
|
}
|
||||||
if (StrUtil.isNotEmpty(params)) {
|
if (StrUtil.isNotEmpty(params)) {
|
||||||
queryWrapper.like("orgname", params);
|
queryWrapper.like("orgname", params);
|
||||||
}
|
}
|
||||||
@ -189,13 +195,18 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
queryWrapper.select("max(orgcode)");
|
queryWrapper.select("max(orgcode)");
|
||||||
if (StrUtil.isNotEmpty(sysOrganization.getParentid())) {
|
if (StrUtil.isNotEmpty(sysOrganization.getParentid())) {
|
||||||
//根据父级id查询父级信息
|
//根据父级id查询父级信息
|
||||||
parent = this.getById(sysOrganization.getParentid());
|
parent = this.getOne(new LambdaQueryWrapper<SysOrganization>()
|
||||||
|
.eq(SysOrganization::getId, sysOrganization.getParentid())
|
||||||
|
.eq(StrUtil.isNotBlank(sysOrganization.getTenantId()), SysOrganization::getTenantId, sysOrganization.getTenantId()));
|
||||||
queryWrapper.eq("parentid", sysOrganization.getParentid());
|
queryWrapper.eq("parentid", sysOrganization.getParentid());
|
||||||
} else {
|
} else {
|
||||||
//默认 填写父级id为0
|
//默认 填写父级id为0
|
||||||
sysOrganization.setParentid("0");
|
sysOrganization.setParentid("0");
|
||||||
queryWrapper.eq("parentid", "0");
|
queryWrapper.eq("parentid", "0");
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(sysOrganization.getTenantId())) {
|
||||||
|
queryWrapper.eq("tenant_id", sysOrganization.getTenantId());
|
||||||
|
}
|
||||||
List<Object> max = this.listObjs(queryWrapper);
|
List<Object> max = this.listObjs(queryWrapper);
|
||||||
//判断查询是否存在 存在转换成 int 类型并给 codeMax 替换值
|
//判断查询是否存在 存在转换成 int 类型并给 codeMax 替换值
|
||||||
if (!max.isEmpty() && max.getFirst() != null) {
|
if (!max.isEmpty() && max.getFirst() != null) {
|
||||||
@ -233,7 +244,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public List<SysOrganization> getOrganizationById(String id,
|
public List<SysOrganization> getOrganizationById(String id,
|
||||||
String orgName) {
|
String orgName,
|
||||||
|
String tenantId) {
|
||||||
SysUser userInfo = userService.getUserInfo();
|
SysUser userInfo = userService.getUserInfo();
|
||||||
|
|
||||||
// 收集所有允许的组织ID
|
// 收集所有允许的组织ID
|
||||||
@ -258,6 +270,7 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
LambdaQueryWrapper<SysOrganization> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysOrganization> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(SysOrganization::getParentid, id);
|
queryWrapper.eq(SysOrganization::getParentid, id);
|
||||||
|
queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId);
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(orgName)) {
|
if (StrUtil.isNotBlank(orgName)) {
|
||||||
queryWrapper.like(SysOrganization::getOrgname, orgName);
|
queryWrapper.like(SysOrganization::getOrgname, orgName);
|
||||||
@ -281,7 +294,7 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
* 返回值说明: 组织树集合
|
* 返回值说明: 组织树集合
|
||||||
***********************************/
|
***********************************/
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getOrgScopeTree(String roleId) {
|
public List<Map<String, Object>> getOrgScopeTree(String roleId, String tenantId) {
|
||||||
|
|
||||||
LambdaQueryWrapper<SysOrganization> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysOrganization> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
if(!"admin".equals(SecurityUtils.getCurrentUsername())){
|
if(!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
@ -300,11 +313,17 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
|
|||||||
queryWrapper.in(SysOrganization::getId, ids);
|
queryWrapper.in(SysOrganization::getId, ids);
|
||||||
}
|
}
|
||||||
queryWrapper.eq(SysOrganization::getIsvaild, '1');
|
queryWrapper.eq(SysOrganization::getIsvaild, '1');
|
||||||
|
queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId);
|
||||||
queryWrapper.orderByAsc(SysOrganization::getOrgcode);
|
queryWrapper.orderByAsc(SysOrganization::getOrgcode);
|
||||||
List<Map<String, Object>> mapList = this.listMaps(queryWrapper);
|
List<Map<String, Object>> mapList = this.listMaps(queryWrapper);
|
||||||
List<Map<String, Object>> listMaps = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysOrganization.class, mapList);
|
List<Map<String, Object>> listMaps = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysOrganization.class, mapList);
|
||||||
// 获取当前角色
|
// 获取当前角色
|
||||||
SysRole sysRole = sysRoleMapper.selectById(roleId);
|
SysRole sysRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>()
|
||||||
|
.eq("id", roleId)
|
||||||
|
.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId));
|
||||||
|
if (sysRole == null) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
String orgscope = sysRole.getOrgscope();
|
String orgscope = sysRole.getOrgscope();
|
||||||
List<String> ids = new ArrayList<>();
|
List<String> ids = new ArrayList<>();
|
||||||
if (StrUtil.isNotBlank(orgscope)) {
|
if (StrUtil.isNotBlank(orgscope)) {
|
||||||
|
|||||||
@ -47,6 +47,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||||||
int codeMax = 0;
|
int codeMax = 0;
|
||||||
DecimalFormat df = new DecimalFormat("000");//四位数字编号
|
DecimalFormat df = new DecimalFormat("000");//四位数字编号
|
||||||
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq(StringUtils.isNotBlank(sysRole.getTenantId()), "tenant_id", sysRole.getTenantId());
|
||||||
List<Object> max = this.listObjs(queryWrapper.select("MAX(rolecode) " +
|
List<Object> max = this.listObjs(queryWrapper.select("MAX(rolecode) " +
|
||||||
"rolecode"));// 查询最大的编号
|
"rolecode"));// 查询最大的编号
|
||||||
// 存在转换成 int 类型并给 codeMax 替换值
|
// 存在转换成 int 类型并给 codeMax 替换值
|
||||||
@ -140,9 +141,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||||||
@Override
|
@Override
|
||||||
public List<Map> listRoleUsers(String orgid, String username,
|
public List<Map> listRoleUsers(String orgid, String username,
|
||||||
String status, String level,
|
String status, String level,
|
||||||
String rolename, String isvaild) {
|
String rolename, String isvaild, String tenantId) {
|
||||||
return roleMapper.listRoleUsers(orgid, username, status, level,
|
return roleMapper.listRoleUsers(orgid, username, status, level,
|
||||||
rolename, isvaild);
|
rolename, isvaild, tenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@ -167,8 +168,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysRole> selectRoleList(String rolename) {
|
public List<SysRole> selectRoleList(String rolename, String tenantId) {
|
||||||
return roleMapper.selectRoleList(rolename);
|
return roleMapper.selectRoleList(rolename, tenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -567,9 +567,10 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
|
|||||||
@Override
|
@Override
|
||||||
public Page<SysUser> queryUsers(String orgid,
|
public Page<SysUser> queryUsers(String orgid,
|
||||||
String username,
|
String username,
|
||||||
|
String tenantId,
|
||||||
Page<SysUser> page) {
|
Page<SysUser> page) {
|
||||||
Page<SysUser> mapPage = sysUserMapper.queryUsers(orgid,
|
Page<SysUser> mapPage = sysUserMapper.queryUsers(orgid,
|
||||||
username, page);
|
username, tenantId, page);
|
||||||
mapPage.getRecords().forEach(record -> {
|
mapPage.getRecords().forEach(record -> {
|
||||||
String id = record.getId();
|
String id = record.getId();
|
||||||
List<SysRole> sysRoles = sysRoleMapper.getRoleByUserId(id);
|
List<SysRole> sysRoles = sysRoleMapper.getRoleByUserId(id);
|
||||||
@ -651,10 +652,11 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus) {
|
public Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus, String tenantId) {
|
||||||
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.in(SysUser::getRegStatus, "PENDING", "APPROVED", "REJECTED");
|
queryWrapper.in(SysUser::getRegStatus, "PENDING", "APPROVED", "REJECTED");
|
||||||
queryWrapper.eq(ObjectUtil.isNotEmpty(regStatus), SysUser::getRegStatus, regStatus);
|
queryWrapper.eq(ObjectUtil.isNotEmpty(regStatus), SysUser::getRegStatus, regStatus);
|
||||||
|
queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysUser::getTenantId, tenantId);
|
||||||
queryWrapper.and(StrUtil.isNotBlank(name), wrapper ->
|
queryWrapper.and(StrUtil.isNotBlank(name), wrapper ->
|
||||||
wrapper.like(SysUser::getNickname, name)
|
wrapper.like(SysUser::getNickname, name)
|
||||||
.or()
|
.or()
|
||||||
|
|||||||
@ -4,12 +4,26 @@
|
|||||||
<mapper namespace="com.yfd.platform.system.mapper.SysMenuMapper">
|
<mapper namespace="com.yfd.platform.system.mapper.SysMenuMapper">
|
||||||
<!-- 向上调整序号 根据父级id 序号小于原序号 并且 大于等于替换序号-->
|
<!-- 向上调整序号 根据父级id 序号小于原序号 并且 大于等于替换序号-->
|
||||||
<update id="upMoveOrderno">
|
<update id="upMoveOrderno">
|
||||||
update sys_menu set orderno=orderno+1 where parentid=#{parentid} and orderno < #{Orderno} and orderno >= #{upOrderno}
|
update sys_menu
|
||||||
|
set orderno=orderno+1
|
||||||
|
where parentid=#{parentid}
|
||||||
|
and orderno < #{Orderno}
|
||||||
|
and orderno >= #{upOrderno}
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
and tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 向下调整序号 根据父级id 序号大于原序号 并且 小于等于替换序号-->
|
<!-- 向下调整序号 根据父级id 序号大于原序号 并且 小于等于替换序号-->
|
||||||
<update id="downMoveOrderno">
|
<update id="downMoveOrderno">
|
||||||
update sys_menu SET orderno=orderno-1 where parentid=#{parentid} and orderno > #{Orderno} and orderno <= #{downOrderno}
|
update sys_menu
|
||||||
|
SET orderno=orderno-1
|
||||||
|
where parentid=#{parentid}
|
||||||
|
and orderno > #{Orderno}
|
||||||
|
and orderno <= #{downOrderno}
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
and tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="selectPermsByUserId" resultType="java.lang.String">
|
<select id="selectPermsByUserId" resultType="java.lang.String">
|
||||||
@ -47,6 +61,10 @@
|
|||||||
WHERE
|
WHERE
|
||||||
r.isvaild = 1
|
r.isvaild = 1
|
||||||
AND ru.userid = #{userId}
|
AND ru.userid = #{userId}
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
AND m.tenant_id = #{tenantId}
|
||||||
|
AND r.tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
AND m.isdisplay=1
|
AND m.isdisplay=1
|
||||||
AND m.type != 2
|
AND m.type != 2
|
||||||
ORDER BY
|
ORDER BY
|
||||||
@ -63,6 +81,9 @@
|
|||||||
WHERE
|
WHERE
|
||||||
m.isdisplay = 1
|
m.isdisplay = 1
|
||||||
AND rm.roleid= #{id}
|
AND rm.roleid= #{id}
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
AND m.tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
ORDER BY
|
ORDER BY
|
||||||
m.orderno ASC
|
m.orderno ASC
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@ -86,6 +86,10 @@
|
|||||||
<if test="isvaild != null">
|
<if test="isvaild != null">
|
||||||
and c.isvaild=#{isvaild}
|
and c.isvaild=#{isvaild}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
and b.tenant_id = #{tenantId}
|
||||||
|
and c.tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
ORDER BY c.level,b.orgid,b.code
|
ORDER BY c.level,b.orgid,b.code
|
||||||
</select>
|
</select>
|
||||||
<!--根据用户id获取角色信息-->
|
<!--根据用户id获取角色信息-->
|
||||||
@ -129,6 +133,9 @@
|
|||||||
<if test="rolename != null and rolename != ''">
|
<if test="rolename != null and rolename != ''">
|
||||||
AND r.rolename LIKE '%' || #{rolename} || '%'
|
AND r.rolename LIKE '%' || #{rolename} || '%'
|
||||||
</if>
|
</if>
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
AND r.tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
AND r."LEVEL" != '1'
|
AND r."LEVEL" != '1'
|
||||||
</where>
|
</where>
|
||||||
ORDER BY r."LEVEL" ASC, lastmodifydate ASC
|
ORDER BY r."LEVEL" ASC, lastmodifydate ASC
|
||||||
|
|||||||
@ -67,6 +67,7 @@
|
|||||||
u.phone,
|
u.phone,
|
||||||
u.avatar,
|
u.avatar,
|
||||||
u.orgid,
|
u.orgid,
|
||||||
|
u.tenant_id AS tenantId,
|
||||||
u.status,
|
u.status,
|
||||||
u.lastmodifier,
|
u.lastmodifier,
|
||||||
u.lastmodifydate
|
u.lastmodifydate
|
||||||
@ -82,6 +83,9 @@
|
|||||||
<if test="username != null">
|
<if test="username != null">
|
||||||
and u.username LIKE '%' || #{username} || '%'
|
and u.username LIKE '%' || #{username} || '%'
|
||||||
</if>
|
</if>
|
||||||
|
<if test="tenantId != null and tenantId != ''">
|
||||||
|
and u.tenant_id = #{tenantId}
|
||||||
|
</if>
|
||||||
ORDER BY u.lastmodifydate DESC
|
ORDER BY u.lastmodifydate DESC
|
||||||
</select>
|
</select>
|
||||||
<select id="getOrganizationByid" resultType="java.util.Map">
|
<select id="getOrganizationByid" resultType="java.util.Map">
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>front-process</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app"></div>
|
|
||||||
<script type="module" src="/src/main.ts"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
1170
frontend-process/package-lock.json
generated
1170
frontend-process/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "front-process",
|
|
||||||
"private": true,
|
|
||||||
"version": "0.1.0",
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite --port 5174 --strictPort",
|
|
||||||
"build": "vue-tsc --noEmit && vite build",
|
|
||||||
"preview": "vite preview --port 5174 --strictPort"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ant-design-vue": "^4.2.6",
|
|
||||||
"vue": "^3.2.40",
|
|
||||||
"vue-router": "^4.1.6"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^16.11.7",
|
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
|
||||||
"typescript": "^4.7.4",
|
|
||||||
"vite": "^4.0.3",
|
|
||||||
"vue-tsc": "^0.35.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,794 +0,0 @@
|
|||||||
lockfileVersion: '9.0'
|
|
||||||
|
|
||||||
settings:
|
|
||||||
autoInstallPeers: true
|
|
||||||
excludeLinksFromLockfile: false
|
|
||||||
|
|
||||||
importers:
|
|
||||||
|
|
||||||
.:
|
|
||||||
dependencies:
|
|
||||||
ant-design-vue:
|
|
||||||
specifier: ^4.2.6
|
|
||||||
version: 4.2.6(vue@3.5.30(typescript@4.9.5))
|
|
||||||
vue:
|
|
||||||
specifier: ^3.2.40
|
|
||||||
version: 3.5.30(typescript@4.9.5)
|
|
||||||
vue-router:
|
|
||||||
specifier: ^4.1.6
|
|
||||||
version: 4.6.4(vue@3.5.30(typescript@4.9.5))
|
|
||||||
devDependencies:
|
|
||||||
'@types/node':
|
|
||||||
specifier: ^16.11.7
|
|
||||||
version: 16.18.126
|
|
||||||
'@vitejs/plugin-vue':
|
|
||||||
specifier: ^4.0.0
|
|
||||||
version: 4.6.2(vite@4.5.14(@types/node@16.18.126))(vue@3.5.30(typescript@4.9.5))
|
|
||||||
typescript:
|
|
||||||
specifier: ^4.7.4
|
|
||||||
version: 4.9.5
|
|
||||||
vite:
|
|
||||||
specifier: ^4.0.3
|
|
||||||
version: 4.5.14(@types/node@16.18.126)
|
|
||||||
vue-tsc:
|
|
||||||
specifier: ^0.35.0
|
|
||||||
version: 0.35.2(typescript@4.9.5)
|
|
||||||
|
|
||||||
packages:
|
|
||||||
|
|
||||||
'@ant-design/colors@6.0.0':
|
|
||||||
resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
|
|
||||||
|
|
||||||
'@ant-design/icons-svg@4.4.2':
|
|
||||||
resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
|
|
||||||
|
|
||||||
'@ant-design/icons-vue@7.0.1':
|
|
||||||
resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
|
|
||||||
peerDependencies:
|
|
||||||
vue: '>=3.0.3'
|
|
||||||
|
|
||||||
'@babel/helper-string-parser@7.27.1':
|
|
||||||
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
'@babel/helper-validator-identifier@7.28.5':
|
|
||||||
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
'@babel/parser@7.29.2':
|
|
||||||
resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
|
|
||||||
engines: {node: '>=6.0.0'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
'@babel/runtime@7.29.2':
|
|
||||||
resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
'@babel/types@7.29.0':
|
|
||||||
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
'@ctrl/tinycolor@3.6.1':
|
|
||||||
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
|
|
||||||
'@emotion/hash@0.9.2':
|
|
||||||
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
|
|
||||||
|
|
||||||
'@emotion/unitless@0.8.1':
|
|
||||||
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
|
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/android-arm@0.18.20':
|
|
||||||
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/android-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [freebsd]
|
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [freebsd]
|
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.18.20':
|
|
||||||
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.18.20':
|
|
||||||
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [loong64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.18.20':
|
|
||||||
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [mips64el]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [riscv64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.18.20':
|
|
||||||
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [netbsd]
|
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [openbsd]
|
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [sunos]
|
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.18.20':
|
|
||||||
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.18.20':
|
|
||||||
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@jridgewell/sourcemap-codec@1.5.5':
|
|
||||||
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
|
||||||
|
|
||||||
'@simonwep/pickr@1.8.2':
|
|
||||||
resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
|
|
||||||
|
|
||||||
'@types/node@16.18.126':
|
|
||||||
resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==}
|
|
||||||
|
|
||||||
'@vitejs/plugin-vue@4.6.2':
|
|
||||||
resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
|
|
||||||
engines: {node: ^14.18.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
vite: ^4.0.0 || ^5.0.0
|
|
||||||
vue: ^3.2.25
|
|
||||||
|
|
||||||
'@volar/code-gen@0.35.2':
|
|
||||||
resolution: {integrity: sha512-MoZHuNnPfUWnCNkQUI5+U+gvLTxrU+XlCTusdNOTFYUUAa+M68MH0RxFIS9Ybj4uAUWTcZx0Ow1q5t/PZozo+Q==}
|
|
||||||
|
|
||||||
'@volar/source-map@0.35.2':
|
|
||||||
resolution: {integrity: sha512-PFHh9wN/qMkOWYyvmB8ckvIzolrpNOvK5EBdxxdTpiPJhfYjW82rMDBnYf6RxCe7yQxrUrmve6BWVO7flxWNVQ==}
|
|
||||||
|
|
||||||
'@volar/vue-code-gen@0.35.2':
|
|
||||||
resolution: {integrity: sha512-8H6P8EtN06eSVGjtcJhGqZzFIg6/nWoHVOlnhc5vKqC7tXwpqPbyMQae0tO7pLBd5qSb/dYU5GQcBAHsi2jgyA==}
|
|
||||||
deprecated: 'WARNING: This project has been renamed to @vue/language-core. Install using @vue/language-core instead.'
|
|
||||||
|
|
||||||
'@volar/vue-typescript@0.35.2':
|
|
||||||
resolution: {integrity: sha512-PZI6Urb+Vr5Dvgf9xysM8X7TP09inWDy1wjDtprBoBhxS7r0Dg3V0qZuJa7sSGz7M0QMa5R/CBaZPhlxFCfJBw==}
|
|
||||||
deprecated: 'WARNING: This project has been renamed to @vue/typescript. Install using @vue/typescript instead.'
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.30':
|
|
||||||
resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==}
|
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.30':
|
|
||||||
resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==}
|
|
||||||
|
|
||||||
'@vue/compiler-sfc@3.5.30':
|
|
||||||
resolution: {integrity: sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==}
|
|
||||||
|
|
||||||
'@vue/compiler-ssr@3.5.30':
|
|
||||||
resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==}
|
|
||||||
|
|
||||||
'@vue/devtools-api@6.6.4':
|
|
||||||
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
|
|
||||||
|
|
||||||
'@vue/reactivity@3.5.30':
|
|
||||||
resolution: {integrity: sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==}
|
|
||||||
|
|
||||||
'@vue/runtime-core@3.5.30':
|
|
||||||
resolution: {integrity: sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==}
|
|
||||||
|
|
||||||
'@vue/runtime-dom@3.5.30':
|
|
||||||
resolution: {integrity: sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==}
|
|
||||||
|
|
||||||
'@vue/server-renderer@3.5.30':
|
|
||||||
resolution: {integrity: sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==}
|
|
||||||
peerDependencies:
|
|
||||||
vue: 3.5.30
|
|
||||||
|
|
||||||
'@vue/shared@3.5.30':
|
|
||||||
resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==}
|
|
||||||
|
|
||||||
ant-design-vue@4.2.6:
|
|
||||||
resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==}
|
|
||||||
engines: {node: '>=12.22.0'}
|
|
||||||
peerDependencies:
|
|
||||||
vue: '>=3.2.0'
|
|
||||||
|
|
||||||
array-tree-filter@2.1.0:
|
|
||||||
resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
|
|
||||||
|
|
||||||
async-validator@4.2.5:
|
|
||||||
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
|
|
||||||
|
|
||||||
compute-scroll-into-view@1.0.20:
|
|
||||||
resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
|
|
||||||
|
|
||||||
core-js@3.49.0:
|
|
||||||
resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==}
|
|
||||||
|
|
||||||
csstype@3.2.3:
|
|
||||||
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
|
|
||||||
|
|
||||||
dayjs@1.11.20:
|
|
||||||
resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==}
|
|
||||||
|
|
||||||
dom-align@1.12.4:
|
|
||||||
resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
|
|
||||||
|
|
||||||
dom-scroll-into-view@2.0.1:
|
|
||||||
resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
|
|
||||||
|
|
||||||
entities@7.0.1:
|
|
||||||
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
|
|
||||||
engines: {node: '>=0.12'}
|
|
||||||
|
|
||||||
esbuild@0.18.20:
|
|
||||||
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
estree-walker@2.0.2:
|
|
||||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
|
||||||
|
|
||||||
fsevents@2.3.3:
|
|
||||||
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
|
||||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
||||||
os: [darwin]
|
|
||||||
|
|
||||||
is-plain-object@3.0.1:
|
|
||||||
resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
|
|
||||||
js-tokens@4.0.0:
|
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
|
||||||
|
|
||||||
lodash-es@4.17.23:
|
|
||||||
resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==}
|
|
||||||
|
|
||||||
lodash@4.17.23:
|
|
||||||
resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
|
|
||||||
|
|
||||||
loose-envify@1.4.0:
|
|
||||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
magic-string@0.30.21:
|
|
||||||
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
|
||||||
|
|
||||||
nanoid@3.3.11:
|
|
||||||
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
|
|
||||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
nanopop@2.4.2:
|
|
||||||
resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
|
|
||||||
|
|
||||||
picocolors@1.1.1:
|
|
||||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
|
||||||
|
|
||||||
postcss@8.5.8:
|
|
||||||
resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==}
|
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
|
||||||
|
|
||||||
resize-observer-polyfill@1.5.1:
|
|
||||||
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
|
|
||||||
|
|
||||||
rollup@3.30.0:
|
|
||||||
resolution: {integrity: sha512-kQvGasUgN+AlWGliFn2POSajRQEsULVYFGTvOZmK06d7vCD+YhZztt70kGk3qaeAXeWYL5eO7zx+rAubBc55eA==}
|
|
||||||
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
scroll-into-view-if-needed@2.2.31:
|
|
||||||
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
|
|
||||||
|
|
||||||
shallow-equal@1.2.1:
|
|
||||||
resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
|
|
||||||
|
|
||||||
source-map-js@1.2.1:
|
|
||||||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
|
|
||||||
stylis@4.3.6:
|
|
||||||
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
|
|
||||||
|
|
||||||
throttle-debounce@5.0.2:
|
|
||||||
resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
|
|
||||||
engines: {node: '>=12.22'}
|
|
||||||
|
|
||||||
typescript@4.9.5:
|
|
||||||
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
|
|
||||||
engines: {node: '>=4.2.0'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
vite@4.5.14:
|
|
||||||
resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==}
|
|
||||||
engines: {node: ^14.18.0 || >=16.0.0}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
'@types/node': '>= 14'
|
|
||||||
less: '*'
|
|
||||||
lightningcss: ^1.21.0
|
|
||||||
sass: '*'
|
|
||||||
stylus: '*'
|
|
||||||
sugarss: '*'
|
|
||||||
terser: ^5.4.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/node':
|
|
||||||
optional: true
|
|
||||||
less:
|
|
||||||
optional: true
|
|
||||||
lightningcss:
|
|
||||||
optional: true
|
|
||||||
sass:
|
|
||||||
optional: true
|
|
||||||
stylus:
|
|
||||||
optional: true
|
|
||||||
sugarss:
|
|
||||||
optional: true
|
|
||||||
terser:
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
vue-router@4.6.4:
|
|
||||||
resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==}
|
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.5.0
|
|
||||||
|
|
||||||
vue-tsc@0.35.2:
|
|
||||||
resolution: {integrity: sha512-aqY16VlODHzqtKGUkqdumNpH+s5ABCkufRyvMKQlL/mua+N2DfSVnHufzSNNUMr7vmOO0YsNg27jsspBMq4iGA==}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
|
|
||||||
vue-types@3.0.2:
|
|
||||||
resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
|
|
||||||
engines: {node: '>=10.15.0'}
|
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.0.0
|
|
||||||
|
|
||||||
vue@3.5.30:
|
|
||||||
resolution: {integrity: sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
warning@4.0.3:
|
|
||||||
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
|
|
||||||
|
|
||||||
snapshots:
|
|
||||||
|
|
||||||
'@ant-design/colors@6.0.0':
|
|
||||||
dependencies:
|
|
||||||
'@ctrl/tinycolor': 3.6.1
|
|
||||||
|
|
||||||
'@ant-design/icons-svg@4.4.2': {}
|
|
||||||
|
|
||||||
'@ant-design/icons-vue@7.0.1(vue@3.5.30(typescript@4.9.5))':
|
|
||||||
dependencies:
|
|
||||||
'@ant-design/colors': 6.0.0
|
|
||||||
'@ant-design/icons-svg': 4.4.2
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
|
|
||||||
'@babel/helper-string-parser@7.27.1': {}
|
|
||||||
|
|
||||||
'@babel/helper-validator-identifier@7.28.5': {}
|
|
||||||
|
|
||||||
'@babel/parser@7.29.2':
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.29.0
|
|
||||||
|
|
||||||
'@babel/runtime@7.29.2': {}
|
|
||||||
|
|
||||||
'@babel/types@7.29.0':
|
|
||||||
dependencies:
|
|
||||||
'@babel/helper-string-parser': 7.27.1
|
|
||||||
'@babel/helper-validator-identifier': 7.28.5
|
|
||||||
|
|
||||||
'@ctrl/tinycolor@3.6.1': {}
|
|
||||||
|
|
||||||
'@emotion/hash@0.9.2': {}
|
|
||||||
|
|
||||||
'@emotion/unitless@0.8.1': {}
|
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/android-arm@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/android-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.18.20':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@jridgewell/sourcemap-codec@1.5.5': {}
|
|
||||||
|
|
||||||
'@simonwep/pickr@1.8.2':
|
|
||||||
dependencies:
|
|
||||||
core-js: 3.49.0
|
|
||||||
nanopop: 2.4.2
|
|
||||||
|
|
||||||
'@types/node@16.18.126': {}
|
|
||||||
|
|
||||||
'@vitejs/plugin-vue@4.6.2(vite@4.5.14(@types/node@16.18.126))(vue@3.5.30(typescript@4.9.5))':
|
|
||||||
dependencies:
|
|
||||||
vite: 4.5.14(@types/node@16.18.126)
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
|
|
||||||
'@volar/code-gen@0.35.2':
|
|
||||||
dependencies:
|
|
||||||
'@volar/source-map': 0.35.2
|
|
||||||
|
|
||||||
'@volar/source-map@0.35.2': {}
|
|
||||||
|
|
||||||
'@volar/vue-code-gen@0.35.2':
|
|
||||||
dependencies:
|
|
||||||
'@volar/code-gen': 0.35.2
|
|
||||||
'@volar/source-map': 0.35.2
|
|
||||||
'@vue/compiler-core': 3.5.30
|
|
||||||
'@vue/compiler-dom': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
|
|
||||||
'@volar/vue-typescript@0.35.2':
|
|
||||||
dependencies:
|
|
||||||
'@volar/code-gen': 0.35.2
|
|
||||||
'@volar/source-map': 0.35.2
|
|
||||||
'@volar/vue-code-gen': 0.35.2
|
|
||||||
'@vue/compiler-sfc': 3.5.30
|
|
||||||
'@vue/reactivity': 3.5.30
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.29.2
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
entities: 7.0.1
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-core': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
|
|
||||||
'@vue/compiler-sfc@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.29.2
|
|
||||||
'@vue/compiler-core': 3.5.30
|
|
||||||
'@vue/compiler-dom': 3.5.30
|
|
||||||
'@vue/compiler-ssr': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
magic-string: 0.30.21
|
|
||||||
postcss: 8.5.8
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
'@vue/compiler-ssr@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-dom': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
|
|
||||||
'@vue/devtools-api@6.6.4': {}
|
|
||||||
|
|
||||||
'@vue/reactivity@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
|
|
||||||
'@vue/runtime-core@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@vue/reactivity': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
|
|
||||||
'@vue/runtime-dom@3.5.30':
|
|
||||||
dependencies:
|
|
||||||
'@vue/reactivity': 3.5.30
|
|
||||||
'@vue/runtime-core': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
csstype: 3.2.3
|
|
||||||
|
|
||||||
'@vue/server-renderer@3.5.30(vue@3.5.30(typescript@4.9.5))':
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-ssr': 3.5.30
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
|
|
||||||
'@vue/shared@3.5.30': {}
|
|
||||||
|
|
||||||
ant-design-vue@4.2.6(vue@3.5.30(typescript@4.9.5)):
|
|
||||||
dependencies:
|
|
||||||
'@ant-design/colors': 6.0.0
|
|
||||||
'@ant-design/icons-vue': 7.0.1(vue@3.5.30(typescript@4.9.5))
|
|
||||||
'@babel/runtime': 7.29.2
|
|
||||||
'@ctrl/tinycolor': 3.6.1
|
|
||||||
'@emotion/hash': 0.9.2
|
|
||||||
'@emotion/unitless': 0.8.1
|
|
||||||
'@simonwep/pickr': 1.8.2
|
|
||||||
array-tree-filter: 2.1.0
|
|
||||||
async-validator: 4.2.5
|
|
||||||
csstype: 3.2.3
|
|
||||||
dayjs: 1.11.20
|
|
||||||
dom-align: 1.12.4
|
|
||||||
dom-scroll-into-view: 2.0.1
|
|
||||||
lodash: 4.17.23
|
|
||||||
lodash-es: 4.17.23
|
|
||||||
resize-observer-polyfill: 1.5.1
|
|
||||||
scroll-into-view-if-needed: 2.2.31
|
|
||||||
shallow-equal: 1.2.1
|
|
||||||
stylis: 4.3.6
|
|
||||||
throttle-debounce: 5.0.2
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
vue-types: 3.0.2(vue@3.5.30(typescript@4.9.5))
|
|
||||||
warning: 4.0.3
|
|
||||||
|
|
||||||
array-tree-filter@2.1.0: {}
|
|
||||||
|
|
||||||
async-validator@4.2.5: {}
|
|
||||||
|
|
||||||
compute-scroll-into-view@1.0.20: {}
|
|
||||||
|
|
||||||
core-js@3.49.0: {}
|
|
||||||
|
|
||||||
csstype@3.2.3: {}
|
|
||||||
|
|
||||||
dayjs@1.11.20: {}
|
|
||||||
|
|
||||||
dom-align@1.12.4: {}
|
|
||||||
|
|
||||||
dom-scroll-into-view@2.0.1: {}
|
|
||||||
|
|
||||||
entities@7.0.1: {}
|
|
||||||
|
|
||||||
esbuild@0.18.20:
|
|
||||||
optionalDependencies:
|
|
||||||
'@esbuild/android-arm': 0.18.20
|
|
||||||
'@esbuild/android-arm64': 0.18.20
|
|
||||||
'@esbuild/android-x64': 0.18.20
|
|
||||||
'@esbuild/darwin-arm64': 0.18.20
|
|
||||||
'@esbuild/darwin-x64': 0.18.20
|
|
||||||
'@esbuild/freebsd-arm64': 0.18.20
|
|
||||||
'@esbuild/freebsd-x64': 0.18.20
|
|
||||||
'@esbuild/linux-arm': 0.18.20
|
|
||||||
'@esbuild/linux-arm64': 0.18.20
|
|
||||||
'@esbuild/linux-ia32': 0.18.20
|
|
||||||
'@esbuild/linux-loong64': 0.18.20
|
|
||||||
'@esbuild/linux-mips64el': 0.18.20
|
|
||||||
'@esbuild/linux-ppc64': 0.18.20
|
|
||||||
'@esbuild/linux-riscv64': 0.18.20
|
|
||||||
'@esbuild/linux-s390x': 0.18.20
|
|
||||||
'@esbuild/linux-x64': 0.18.20
|
|
||||||
'@esbuild/netbsd-x64': 0.18.20
|
|
||||||
'@esbuild/openbsd-x64': 0.18.20
|
|
||||||
'@esbuild/sunos-x64': 0.18.20
|
|
||||||
'@esbuild/win32-arm64': 0.18.20
|
|
||||||
'@esbuild/win32-ia32': 0.18.20
|
|
||||||
'@esbuild/win32-x64': 0.18.20
|
|
||||||
|
|
||||||
estree-walker@2.0.2: {}
|
|
||||||
|
|
||||||
fsevents@2.3.3:
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
is-plain-object@3.0.1: {}
|
|
||||||
|
|
||||||
js-tokens@4.0.0: {}
|
|
||||||
|
|
||||||
lodash-es@4.17.23: {}
|
|
||||||
|
|
||||||
lodash@4.17.23: {}
|
|
||||||
|
|
||||||
loose-envify@1.4.0:
|
|
||||||
dependencies:
|
|
||||||
js-tokens: 4.0.0
|
|
||||||
|
|
||||||
magic-string@0.30.21:
|
|
||||||
dependencies:
|
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
|
||||||
|
|
||||||
nanoid@3.3.11: {}
|
|
||||||
|
|
||||||
nanopop@2.4.2: {}
|
|
||||||
|
|
||||||
picocolors@1.1.1: {}
|
|
||||||
|
|
||||||
postcss@8.5.8:
|
|
||||||
dependencies:
|
|
||||||
nanoid: 3.3.11
|
|
||||||
picocolors: 1.1.1
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
resize-observer-polyfill@1.5.1: {}
|
|
||||||
|
|
||||||
rollup@3.30.0:
|
|
||||||
optionalDependencies:
|
|
||||||
fsevents: 2.3.3
|
|
||||||
|
|
||||||
scroll-into-view-if-needed@2.2.31:
|
|
||||||
dependencies:
|
|
||||||
compute-scroll-into-view: 1.0.20
|
|
||||||
|
|
||||||
shallow-equal@1.2.1: {}
|
|
||||||
|
|
||||||
source-map-js@1.2.1: {}
|
|
||||||
|
|
||||||
stylis@4.3.6: {}
|
|
||||||
|
|
||||||
throttle-debounce@5.0.2: {}
|
|
||||||
|
|
||||||
typescript@4.9.5: {}
|
|
||||||
|
|
||||||
vite@4.5.14(@types/node@16.18.126):
|
|
||||||
dependencies:
|
|
||||||
esbuild: 0.18.20
|
|
||||||
postcss: 8.5.8
|
|
||||||
rollup: 3.30.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/node': 16.18.126
|
|
||||||
fsevents: 2.3.3
|
|
||||||
|
|
||||||
vue-router@4.6.4(vue@3.5.30(typescript@4.9.5)):
|
|
||||||
dependencies:
|
|
||||||
'@vue/devtools-api': 6.6.4
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
|
|
||||||
vue-tsc@0.35.2(typescript@4.9.5):
|
|
||||||
dependencies:
|
|
||||||
'@volar/vue-typescript': 0.35.2
|
|
||||||
typescript: 4.9.5
|
|
||||||
|
|
||||||
vue-types@3.0.2(vue@3.5.30(typescript@4.9.5)):
|
|
||||||
dependencies:
|
|
||||||
is-plain-object: 3.0.1
|
|
||||||
vue: 3.5.30(typescript@4.9.5)
|
|
||||||
|
|
||||||
vue@3.5.30(typescript@4.9.5):
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-dom': 3.5.30
|
|
||||||
'@vue/compiler-sfc': 3.5.30
|
|
||||||
'@vue/runtime-dom': 3.5.30
|
|
||||||
'@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@4.9.5))
|
|
||||||
'@vue/shared': 3.5.30
|
|
||||||
optionalDependencies:
|
|
||||||
typescript: 4.9.5
|
|
||||||
|
|
||||||
warning@4.0.3:
|
|
||||||
dependencies:
|
|
||||||
loose-envify: 1.4.0
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "process",
|
|
||||||
"version": "0.1.0",
|
|
||||||
"entry": "/process/",
|
|
||||||
"routeBase": "/process",
|
|
||||||
"routes": [
|
|
||||||
{
|
|
||||||
"path": "/process/antd-demo",
|
|
||||||
"title": "AntD Demo",
|
|
||||||
"perm": "process:demo:view"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<template>
|
|
||||||
<router-view />
|
|
||||||
</template>
|
|
||||||
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
import { createApp } from 'vue';
|
|
||||||
import App from './App.vue';
|
|
||||||
import router from './router';
|
|
||||||
import Antd from 'ant-design-vue';
|
|
||||||
import 'ant-design-vue/dist/reset.css';
|
|
||||||
|
|
||||||
createApp(App).use(router).use(Antd).mount('#app');
|
|
||||||
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
|
|
||||||
import Demo from '../views/Demo.vue';
|
|
||||||
|
|
||||||
const routes: RouteRecordRaw[] = [
|
|
||||||
{
|
|
||||||
path: '/',
|
|
||||||
redirect: '/antd-demo'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/antd-demo',
|
|
||||||
component: Demo
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
export default createRouter({
|
|
||||||
history: createWebHistory('/process/'),
|
|
||||||
routes
|
|
||||||
});
|
|
||||||
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div style="padding: 24px">
|
|
||||||
<a-typography-title :level="3" style="margin: 0 0 12px 0">
|
|
||||||
Ant Design Vue Demo(front-process)
|
|
||||||
</a-typography-title>
|
|
||||||
|
|
||||||
<a-alert
|
|
||||||
message="该页面由 front-system 通过 Wujie 挂载展示"
|
|
||||||
type="success"
|
|
||||||
show-icon
|
|
||||||
style="margin-bottom: 16px"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<a-space>
|
|
||||||
<a-button type="primary" @click="onClick">AntD 按钮</a-button>
|
|
||||||
<a-tag color="blue">Vue3 + Vite</a-tag>
|
|
||||||
<a-tag color="green">Ant Design Vue</a-tag>
|
|
||||||
</a-space>
|
|
||||||
|
|
||||||
<a-divider />
|
|
||||||
|
|
||||||
<a-card title="示例表格" :bordered="false">
|
|
||||||
<a-table :columns="columns" :data-source="data" :pagination="false" row-key="id" />
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import type { TableColumnsType } from 'ant-design-vue';
|
|
||||||
import { message } from 'ant-design-vue';
|
|
||||||
|
|
||||||
type Row = { id: number; name: string; status: string };
|
|
||||||
|
|
||||||
const columns: TableColumnsType<Row> = [
|
|
||||||
{ title: 'ID', dataIndex: 'id', key: 'id', width: 80 },
|
|
||||||
{ title: '名称', dataIndex: 'name', key: 'name' },
|
|
||||||
{ title: '状态', dataIndex: 'status', key: 'status', width: 120 }
|
|
||||||
];
|
|
||||||
|
|
||||||
const data: Row[] = [
|
|
||||||
{ id: 1, name: '流程A', status: '启用' },
|
|
||||||
{ id: 2, name: '流程B', status: '停用' }
|
|
||||||
];
|
|
||||||
|
|
||||||
function onClick() {
|
|
||||||
message.success('Ant Design Vue 组件工作正常');
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2020",
|
|
||||||
"useDefineForClassFields": true,
|
|
||||||
"module": "ESNext",
|
|
||||||
"moduleResolution": "Bundler",
|
|
||||||
"strict": true,
|
|
||||||
"jsx": "preserve",
|
|
||||||
"resolveJsonModule": true,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"types": ["vite/client"],
|
|
||||||
"noEmit": true
|
|
||||||
},
|
|
||||||
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
import { defineConfig } from 'vite';
|
|
||||||
import vue from '@vitejs/plugin-vue';
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
base: '/process/',
|
|
||||||
plugins: [vue()],
|
|
||||||
server: {
|
|
||||||
host: '0.0.0.0',
|
|
||||||
port: 5174,
|
|
||||||
strictPort: true
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
15
frontend-sjtb/.editorconfig
Normal file
15
frontend-sjtb/.editorconfig
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# http://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*] # 表示所有文件适用
|
||||||
|
charset = utf-8 # 设置文件字符集为 utf-8
|
||||||
|
indent_style = space # 缩进风格(tab | space)
|
||||||
|
indent_size = 2 # 缩进大小
|
||||||
|
end_of_line = lf # 控制换行类型(lf | cr | crlf)
|
||||||
|
trim_trailing_whitespace = true # 去除行首的任意空白字符
|
||||||
|
insert_final_newline = true # 始终在文件末尾插入一个新行
|
||||||
|
|
||||||
|
[*.md] # 表示仅 md 文件适用以下规则
|
||||||
|
max_line_length = off
|
||||||
|
trim_trailing_whitespace = false
|
||||||
32
frontend-sjtb/.env.development
Normal file
32
frontend-sjtb/.env.development
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
## 开发环境
|
||||||
|
|
||||||
|
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
|
||||||
|
NODE_ENV='development'
|
||||||
|
|
||||||
|
VITE_APP_TITLE = '水电水利建设项目全过程环境管理信息平台'
|
||||||
|
VITE_APP_PORT = 3000
|
||||||
|
VITE_APP_BASE_API = '/dev-api'
|
||||||
|
# 本地环境
|
||||||
|
VITE_APP_BASE_URL = 'http://10.84.121.127:8093'
|
||||||
|
# 测试环境
|
||||||
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
|
||||||
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8096'
|
||||||
|
# 汤伟
|
||||||
|
# VITE_APP_BASE_URL = 'http://10.84.121.21:8093'
|
||||||
|
# VITE_APP_BASE_URL = 'http://192.168.1.162:8093'
|
||||||
|
|
||||||
|
# 测试环境线上10.84.121.122:
|
||||||
|
VITE_APP_TEST_ONLINE_URL = 'https://211.99.26.225:12122'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 开发环境导入预览地址
|
||||||
|
VITE_APP_BASE_API_URL = 'http://10.84.121.21:8093'
|
||||||
|
## 开发环境 附件服务地址
|
||||||
|
VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
|
||||||
|
attachment
|
||||||
|
|
||||||
|
# 地图服务地址
|
||||||
|
VITE_APP_MAP_URL = 'https://211.99.26.225:18085'
|
||||||
|
# ?menu=systemManageMenu&page=disposeManage
|
||||||
19
frontend-sjtb/.env.production
Normal file
19
frontend-sjtb/.env.production
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
## 生产环境
|
||||||
|
NODE_ENV='production'
|
||||||
|
|
||||||
|
VITE_APP_TITLE = 'qgc-buji-web'
|
||||||
|
VITE_APP_PORT = 3000
|
||||||
|
VITE_APP_BASE_API = '/prod-api'
|
||||||
|
## 生产环境API地址
|
||||||
|
VITE_APP_BASE_URL = 'http://localhost:8093'
|
||||||
|
## 生产环境导入预览地址
|
||||||
|
VITE_APP_BASE_API_URL = 'https://211.99.26.225:12130/prod-api'
|
||||||
|
## 生产环境预览 图片视频地址
|
||||||
|
VITE_APP_PREVIEW_URL = 'https://211.99.26.225:12125'
|
||||||
|
|
||||||
|
## 开发环境 附件服务地址
|
||||||
|
VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
|
||||||
|
attachment
|
||||||
|
|
||||||
|
# 地图服务地址
|
||||||
|
VITE_APP_MAP_URL = 'https://211.99.26.225:18085'
|
||||||
6
frontend-sjtb/.env.staging
Normal file
6
frontend-sjtb/.env.staging
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## 模拟环境
|
||||||
|
NODE_ENV='staging'
|
||||||
|
|
||||||
|
VITE_APP_TITLE = 'qgc-buji-web'
|
||||||
|
VITE_APP_PORT = 3000
|
||||||
|
VITE_APP_BASE_API = '/prod--api'
|
||||||
16
frontend-sjtb/.eslintignore
Normal file
16
frontend-sjtb/.eslintignore
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
*.sh
|
||||||
|
node_modules
|
||||||
|
*.md
|
||||||
|
*.woff
|
||||||
|
*.ttf
|
||||||
|
.vscode
|
||||||
|
.idea
|
||||||
|
dist
|
||||||
|
/public
|
||||||
|
/docs
|
||||||
|
.husky
|
||||||
|
.local
|
||||||
|
/bin
|
||||||
|
.eslintrc.js
|
||||||
|
prettier.config.js
|
||||||
|
src/assets
|
||||||
32
frontend-sjtb/.eslintrc.js
Normal file
32
frontend-sjtb/.eslintrc.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
es2021: true,
|
||||||
|
node: true
|
||||||
|
},
|
||||||
|
globals: {
|
||||||
|
defineProps: 'readonly',
|
||||||
|
defineEmits: 'readonly',
|
||||||
|
defineExpose: 'readonly',
|
||||||
|
DialogType: "readonly",
|
||||||
|
OptionType: "readonly",
|
||||||
|
},
|
||||||
|
parser: 'vue-eslint-parser',
|
||||||
|
extends: [
|
||||||
|
'eslint:recommended',
|
||||||
|
'plugin:vue/vue3-essential',
|
||||||
|
'plugin:@typescript-eslint/recommended'
|
||||||
|
],
|
||||||
|
parserOptions: {
|
||||||
|
ecmaVersion: 'latest',
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
sourceType: 'module'
|
||||||
|
},
|
||||||
|
plugins: ['vue', '@typescript-eslint'],
|
||||||
|
rules: {
|
||||||
|
'vue/multi-word-component-names': 'off',
|
||||||
|
'@typescript-eslint/no-empty-function': 'off', // 关闭空方法检查
|
||||||
|
'@typescript-eslint/no-explicit-any': 'off', // 关闭any类型的警告
|
||||||
|
'vue/no-v-model-argument': 'off'
|
||||||
|
}
|
||||||
|
};
|
||||||
17
frontend-sjtb/.gitignore
vendored
Normal file
17
frontend-sjtb/.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.local
|
||||||
|
|
||||||
|
package-lock.json
|
||||||
|
yarn.lock
|
||||||
4
frontend-sjtb/.lingma/settings.local.json
Normal file
4
frontend-sjtb/.lingma/settings.local.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"permissions": {},
|
||||||
|
"outputStyle": "Vibe"
|
||||||
|
}
|
||||||
9
frontend-sjtb/.prettierignore
Normal file
9
frontend-sjtb/.prettierignore
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/dist/*
|
||||||
|
.local
|
||||||
|
.output.js
|
||||||
|
/node_modules/**
|
||||||
|
|
||||||
|
**/*.svg
|
||||||
|
**/*.sh
|
||||||
|
|
||||||
|
/public/*
|
||||||
36
frontend-sjtb/.prettierrc.js
Normal file
36
frontend-sjtb/.prettierrc.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* 代码格式化配置
|
||||||
|
*/
|
||||||
|
module.exports = {
|
||||||
|
// 指定每个缩进级别的空格数
|
||||||
|
tabWidth: 2,
|
||||||
|
// 使用制表符而不是空格缩进行
|
||||||
|
useTabs: false,
|
||||||
|
// 在语句末尾打印分号
|
||||||
|
semi: true,
|
||||||
|
// 使用单引号而不是双引号
|
||||||
|
singleQuote: true,
|
||||||
|
// 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"
|
||||||
|
quoteProps: 'as-needed',
|
||||||
|
// 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>",默认none
|
||||||
|
trailingComma: 'none',
|
||||||
|
// 在对象文字中的括号之间打印空格
|
||||||
|
bracketSpacing: true,
|
||||||
|
// 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x
|
||||||
|
arrowParens: 'avoid',
|
||||||
|
// 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
|
||||||
|
rangeStart: 0,
|
||||||
|
rangeEnd: Infinity,
|
||||||
|
// 指定要使用的解析器,不需要写文件开头的 @prettier
|
||||||
|
requirePragma: false,
|
||||||
|
// 不需要自动在文件开头插入 @prettier
|
||||||
|
insertPragma: false,
|
||||||
|
// 换行设置 always\never\preserve
|
||||||
|
proseWrap: 'never',
|
||||||
|
// 指定HTML文件的全局空格敏感度 css\strict\ignore
|
||||||
|
htmlWhitespaceSensitivity: 'css',
|
||||||
|
// Vue文件脚本和样式标签缩进
|
||||||
|
vueIndentScriptAndStyle: false,
|
||||||
|
// 换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr>"
|
||||||
|
endOfLine: 'lf',
|
||||||
|
};
|
||||||
21
frontend-sjtb/LICENSE
Normal file
21
frontend-sjtb/LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 有来开源组织
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
26
frontend-sjtb/commitlint.config.js
Normal file
26
frontend-sjtb/commitlint.config.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
module.exports = {
|
||||||
|
// 继承的规则
|
||||||
|
extends: ['@commitlint/config-conventional'],
|
||||||
|
// 定义规则类型
|
||||||
|
rules: {
|
||||||
|
// type 类型定义,表示 git 提交的 type 必须在以下类型范围内
|
||||||
|
'type-enum': [
|
||||||
|
2,
|
||||||
|
'always',
|
||||||
|
[
|
||||||
|
'feat', // 新功能 feature
|
||||||
|
'fix', // 修复 bug
|
||||||
|
'docs', // 文档注释
|
||||||
|
'style', // 代码格式(不影响代码运行的变动)
|
||||||
|
'refactor', // 重构(既不增加新功能,也不是修复bug)
|
||||||
|
'perf', // 性能优化
|
||||||
|
'test', // 增加测试
|
||||||
|
'chore', // 构建过程或辅助工具的变动
|
||||||
|
'revert', // 回退
|
||||||
|
'build' // 打包
|
||||||
|
]
|
||||||
|
],
|
||||||
|
// subject 大小写不做校验
|
||||||
|
'subject-case': [0]
|
||||||
|
}
|
||||||
|
};
|
||||||
15
frontend-sjtb/index.html
Normal file
15
frontend-sjtb/index.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" href="/logo.png" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="description" content="qgc-buji-web" />
|
||||||
|
<meta name="keywords" content="qgc-buji-web" />
|
||||||
|
<title>水电水利建设项目全过程环境管理信息平台数据填报子系统</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
85
frontend-sjtb/package.json
Normal file
85
frontend-sjtb/package.json
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"name": "qgc-buji-web",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite serve --mode development",
|
||||||
|
"build": "vite build --mode production",
|
||||||
|
"build:mvn": "vite build --mode production",
|
||||||
|
"serve": "vite preview",
|
||||||
|
"lint": "eslint src/**/*.{ts,js,vue} --fix",
|
||||||
|
"prettier": "prettier --write ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@ant-design/icons-vue": "^7.0.1",
|
||||||
|
"@element-plus/icons-vue": "^2.0.10",
|
||||||
|
"@types/js-cookie": "^3.0.2",
|
||||||
|
"@vueuse/core": "^9.1.1",
|
||||||
|
"@wangeditor/editor": "^5.0.0",
|
||||||
|
"@wangeditor/editor-for-vue": "^5.1.10",
|
||||||
|
"ant-design-vue": "latest",
|
||||||
|
"axios": "^1.2.0",
|
||||||
|
"better-scroll": "^2.4.2",
|
||||||
|
"cesium": "^1.141.0",
|
||||||
|
"dayjs": "^1.11.20",
|
||||||
|
"default-passive-events": "^2.0.0",
|
||||||
|
"dom-to-image": "^2.6.0",
|
||||||
|
"echarts": "^5.2.2",
|
||||||
|
"element-plus": "^2.2.27",
|
||||||
|
"esri-leaflet": "^3.0.19",
|
||||||
|
"js-base64": "^3.7.5",
|
||||||
|
"js-cookie": "^3.0.1",
|
||||||
|
"jsencrypt": "^3.3.2",
|
||||||
|
"jszip": "^3.10.1",
|
||||||
|
"leaflet": "^1.9.4",
|
||||||
|
"lodash": "^4.18.1",
|
||||||
|
"moment": "^2.30.1",
|
||||||
|
"nprogress": "^0.2.0",
|
||||||
|
"ol": "^10.8.0",
|
||||||
|
"path-browserify": "^1.0.1",
|
||||||
|
"path-to-regexp": "^6.2.0",
|
||||||
|
"pdfjs-dist": "^6.0.227",
|
||||||
|
"pinia": "^2.0.12",
|
||||||
|
"screenfull": "^6.0.0",
|
||||||
|
"sortablejs": "^1.14.0",
|
||||||
|
"video.js": "^8.23.7",
|
||||||
|
"videojs-contrib-hls": "^5.15.0",
|
||||||
|
"vue": "^3.2.40",
|
||||||
|
"vue-i18n": "^9.1.9",
|
||||||
|
"vue-router": "^4.1.6",
|
||||||
|
"vuedraggable": "^2.24.3",
|
||||||
|
"wujie": "^1.0.24",
|
||||||
|
"wujie-vue3": "^1.0.24",
|
||||||
|
"xlsx": "^0.18.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^16.2.3",
|
||||||
|
"@commitlint/config-conventional": "^16.2.1",
|
||||||
|
"@types/dom-to-image": "^2.6.7",
|
||||||
|
"@types/lodash": "^4.17.24",
|
||||||
|
"@types/node": "^16.11.7",
|
||||||
|
"@types/nprogress": "^0.2.0",
|
||||||
|
"@types/path-browserify": "^1.0.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
||||||
|
"@typescript-eslint/parser": "^5.19.0",
|
||||||
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
|
"autoprefixer": "^10.4.13",
|
||||||
|
"eslint": "^8.14.0",
|
||||||
|
"eslint-config-prettier": "^8.5.0",
|
||||||
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
|
"eslint-plugin-vue": "^8.6.0",
|
||||||
|
"fast-glob": "^3.2.11",
|
||||||
|
"husky": "^7.0.4",
|
||||||
|
"postcss": "^8.4.20",
|
||||||
|
"prettier": "^2.6.2",
|
||||||
|
"sass": "^1.53.0",
|
||||||
|
"tailwindcss": "^3.2.4",
|
||||||
|
"typescript": "latest",
|
||||||
|
"vite": "^4.0.3",
|
||||||
|
"vite-plugin-cesium": "^1.2.22",
|
||||||
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
|
"vue-tsc": "latest"
|
||||||
|
},
|
||||||
|
"repository": "https://gitee.com/youlaiorg/vue3-element-admin.git",
|
||||||
|
"author": "有来开源组织",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
8124
frontend-sjtb/pnpm-lock.yaml
Normal file
8124
frontend-sjtb/pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load Diff
6
frontend-sjtb/postcss.config.js
Normal file
6
frontend-sjtb/postcss.config.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
BIN
frontend-sjtb/public/file/注册操作手册.docx
Normal file
BIN
frontend-sjtb/public/file/注册操作手册.docx
Normal file
Binary file not shown.
BIN
frontend-sjtb/public/file/过鱼设施数据填报操作手册.docx
Normal file
BIN
frontend-sjtb/public/file/过鱼设施数据填报操作手册.docx
Normal file
Binary file not shown.
BIN
frontend-sjtb/public/file/鱼种类字典数据.xlsx
Normal file
BIN
frontend-sjtb/public/file/鱼种类字典数据.xlsx
Normal file
Binary file not shown.
BIN
frontend-sjtb/public/logo.png
Normal file
BIN
frontend-sjtb/public/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
1
frontend-sjtb/readme.md
Normal file
1
frontend-sjtb/readme.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
这里放置前端项目的readme文件
|
||||||
15
frontend-sjtb/src/App.vue
Normal file
15
frontend-sjtb/src/App.vue
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ElConfigProvider } from 'element-plus';
|
||||||
|
import { useAppStore,usetTheme } from '@/store/modules/app';
|
||||||
|
import locale from "ant-design-vue/es/locale/zh_CN";
|
||||||
|
|
||||||
|
const appStore = useAppStore();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-config-provider :locale="appStore.locale" :size="appStore.size">
|
||||||
|
<a-config-provider :theme="usetTheme" :locale="locale">
|
||||||
|
<router-view />
|
||||||
|
</a-config-provider>
|
||||||
|
</el-config-provider>
|
||||||
|
</template>
|
||||||
175
frontend-sjtb/src/api/auth/index.ts
Normal file
175
frontend-sjtb/src/api/auth/index.ts
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { AxiosPromise } from 'axios';
|
||||||
|
import { LoginData, TokenResult, VerifyCode } from './types';
|
||||||
|
export function getAccessToken() {
|
||||||
|
return request({
|
||||||
|
url: '/register/accessToken',
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param data {LoginForm}
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function loginApi(data: LoginData): AxiosPromise<TokenResult> {
|
||||||
|
return request({
|
||||||
|
url: '/user/login',
|
||||||
|
method: 'post',
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销
|
||||||
|
*/
|
||||||
|
export function logoutApi() {
|
||||||
|
return request({
|
||||||
|
url: '/user/logout',
|
||||||
|
method: 'post'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取图片验证码
|
||||||
|
*/
|
||||||
|
export function getCaptcha(): AxiosPromise<VerifyCode> {
|
||||||
|
return request({
|
||||||
|
url: '/user/code?t=' + new Date().getTime().toString(),
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户注册
|
||||||
|
*/
|
||||||
|
export function registerUser(data: any): AxiosPromise<any> {
|
||||||
|
return request({
|
||||||
|
url: '/sms/register',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取流域列表
|
||||||
|
* @param companyId 公司ID(可选),如果传入则根据公司获取流域列表
|
||||||
|
*/
|
||||||
|
export function getBasinList(): AxiosPromise<any[]> {
|
||||||
|
return request({
|
||||||
|
url: '/register/dropdown/rvcd',
|
||||||
|
method: 'get',
|
||||||
|
headers: {
|
||||||
|
'register-token': localStorage.getItem('register-token') || ''
|
||||||
|
}
|
||||||
|
// params: baseid ? { baseid } : {}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取集团列表(无参数,获取全量集团)
|
||||||
|
*/
|
||||||
|
export function getGroupList(): AxiosPromise<any[]> {
|
||||||
|
return request({
|
||||||
|
url: '/register/dropdown/hycd',
|
||||||
|
method: 'get',
|
||||||
|
params: { lx: 1 },
|
||||||
|
headers: {
|
||||||
|
'register-token': localStorage.getItem('register-token') || ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据集团获取公司列表
|
||||||
|
*/
|
||||||
|
export function getCompanyList(): AxiosPromise<any[]> {
|
||||||
|
return request({
|
||||||
|
url: '/register/dropdown/hycd',
|
||||||
|
method: 'get',
|
||||||
|
params: { lx: 2 },
|
||||||
|
headers: {
|
||||||
|
'register-token': localStorage.getItem('register-token') || ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据流域获取电站列表
|
||||||
|
*/
|
||||||
|
export function getStationList(params: any): AxiosPromise<any[]> {
|
||||||
|
return request({
|
||||||
|
url: '/register/dropdown/engInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
headers: {
|
||||||
|
'register-token': localStorage.getItem('register-token') || ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送短信验证码
|
||||||
|
* @param phone 手机号
|
||||||
|
* @param type 验证码类型:1-注册 2-找回密码
|
||||||
|
*/
|
||||||
|
export function sendSmsCode(phone: string, type = 1): AxiosPromise<any> {
|
||||||
|
return request({
|
||||||
|
url: '/sms/sendCode',
|
||||||
|
method: 'post',
|
||||||
|
data: { phone, type }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证短信验证码
|
||||||
|
* @param phone 手机号
|
||||||
|
* @param code 验证码
|
||||||
|
* @param type 验证码类型:1-注册 2-找回密码
|
||||||
|
*/
|
||||||
|
export function verifySmsCode(
|
||||||
|
phone: string,
|
||||||
|
code: string,
|
||||||
|
type = 1
|
||||||
|
): AxiosPromise<any> {
|
||||||
|
return request({
|
||||||
|
url: '/sms/verifyCode',
|
||||||
|
method: 'post',
|
||||||
|
data: { phone, code, type }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码登录
|
||||||
|
* @param phone 手机号
|
||||||
|
* @param code 验证码
|
||||||
|
*/
|
||||||
|
export function smsLoginApi(
|
||||||
|
phone: string,
|
||||||
|
code: string
|
||||||
|
): AxiosPromise<TokenResult> {
|
||||||
|
return request({
|
||||||
|
url: '/sms/login',
|
||||||
|
method: 'post',
|
||||||
|
data: { phone, code }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置密码
|
||||||
|
* @param phone 手机号
|
||||||
|
* @param code 验证码
|
||||||
|
* @param password 新密码
|
||||||
|
*/
|
||||||
|
export function resetPassword(
|
||||||
|
phone: string,
|
||||||
|
code: string,
|
||||||
|
password: string
|
||||||
|
): AxiosPromise<any> {
|
||||||
|
return request({
|
||||||
|
url: '/sms/resetPassword',
|
||||||
|
method: 'post',
|
||||||
|
data: { phone, code, password }
|
||||||
|
});
|
||||||
|
}
|
||||||
34
frontend-sjtb/src/api/auth/types.ts
Normal file
34
frontend-sjtb/src/api/auth/types.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/**
|
||||||
|
* 登录数据类型
|
||||||
|
*/
|
||||||
|
export interface LoginData {
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
code: string;
|
||||||
|
uuid: string;
|
||||||
|
/**
|
||||||
|
* 验证码Code
|
||||||
|
*/
|
||||||
|
//verifyCode: string;
|
||||||
|
/**
|
||||||
|
* 验证码Code服务端缓存key(UUID)
|
||||||
|
*/
|
||||||
|
// verifyCodeKey: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Token响应类型
|
||||||
|
*/
|
||||||
|
export interface TokenResult {
|
||||||
|
token: string;
|
||||||
|
refreshToken: string;
|
||||||
|
expires: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码类型
|
||||||
|
*/
|
||||||
|
export interface VerifyCode {
|
||||||
|
verifyCodeImg: string;
|
||||||
|
verifyCodeKey: string;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user