fix (farm): 大屏,微信端
- 大屏模拟数据维护 - 微信端切换租户
This commit is contained in:
@@ -1,12 +1,9 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata;
|
package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.*;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataRespVO;
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@@ -89,6 +86,14 @@ public class ScreenDisasterDataController {
|
|||||||
return success(BeanUtils.toBean(pageResult, ScreenDisasterDataRespVO.class));
|
return success(BeanUtils.toBean(pageResult, ScreenDisasterDataRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/statistics")
|
||||||
|
@Operation(summary = "获得大屏数据-灾害数据统计")
|
||||||
|
public CommonResult<List<DisasterDataStatisticsInfoV2RespVO>> getScreenDisasterDataStatisticsInfo() {
|
||||||
|
List<DisasterDataStatisticsInfoV2RespVO> res = screenDisasterDataService.getScreenDisasterDataStatisticsInfo();
|
||||||
|
return success(res);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出大屏数据-灾害数据 Excel")
|
@Operation(summary = "导出大屏数据-灾害数据 Excel")
|
||||||
// @PreAuthorize("@ss.hasPermission('farm:screen-disaster-data:export')")
|
// @PreAuthorize("@ss.hasPermission('farm:screen-disaster-data:export')")
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: TODO
|
||||||
|
* @author: binda
|
||||||
|
* @date: 2025/11/21 00:37
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DisasterDataStatisticsInfoRespVO {
|
||||||
|
private String category; // 灾害类型
|
||||||
|
private String disasterTime; // 发生月份
|
||||||
|
private Integer totalCount; // 总发生次数
|
||||||
|
private Integer year; // 年份
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: TODO
|
||||||
|
* @author: binda
|
||||||
|
* @date: 2025/11/21 01:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DisasterDataStatisticsInfoV2RespVO {
|
||||||
|
|
||||||
|
private String category;
|
||||||
|
private List<DisasterDataStatisticsInfoRespVO> data;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.screendisasterdata.ScreenDisasterDataDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.screendisasterdata.ScreenDisasterDataDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@@ -34,4 +35,6 @@ public interface ScreenDisasterDataMapper extends BaseMapperX<ScreenDisasterData
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DisasterAnalysisRespVO> countDisasterAnalysis(DisasterAnalysisReqVO req);
|
List<DisasterAnalysisRespVO> countDisasterAnalysis(DisasterAnalysisReqVO req);
|
||||||
|
|
||||||
|
List<DisasterDataStatisticsInfoRespVO> getScreenDisasterDataStatisticsInfo();
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@ import java.util.*;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoV2RespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
|
||||||
import jakarta.validation.*;
|
import jakarta.validation.*;
|
||||||
@@ -71,4 +72,6 @@ public interface ScreenDisasterDataService {
|
|||||||
*/
|
*/
|
||||||
CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req);
|
CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req);
|
||||||
|
|
||||||
|
List<DisasterDataStatisticsInfoV2RespVO> getScreenDisasterDataStatisticsInfo();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoRespVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoV2RespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
||||||
@@ -105,4 +107,23 @@ public class ScreenDisasterDataServiceImpl implements ScreenDisasterDataService
|
|||||||
return CommonResult.success(res);
|
return CommonResult.success(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DisasterDataStatisticsInfoV2RespVO> getScreenDisasterDataStatisticsInfo() {
|
||||||
|
List<DisasterDataStatisticsInfoRespVO> sourceList = screenDisasterDataMapper.getScreenDisasterDataStatisticsInfo();
|
||||||
|
List<DisasterDataStatisticsInfoV2RespVO> result = sourceList.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
DisasterDataStatisticsInfoRespVO::getCategory,
|
||||||
|
Collectors.toList()
|
||||||
|
))
|
||||||
|
.entrySet()
|
||||||
|
.stream()
|
||||||
|
.map(entry -> new DisasterDataStatisticsInfoV2RespVO(
|
||||||
|
entry.getKey(),
|
||||||
|
entry.getValue()
|
||||||
|
))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -68,4 +68,43 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getScreenDisasterDataStatisticsInfo"
|
||||||
|
resultType="cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoRespVO">
|
||||||
|
SELECT
|
||||||
|
CASE ct.category_type
|
||||||
|
WHEN '0' THEN '气象'
|
||||||
|
WHEN '1' THEN '虫害'
|
||||||
|
WHEN '2' THEN '病害'
|
||||||
|
WHEN '3' THEN '草害'
|
||||||
|
END as category,
|
||||||
|
ms.month_str as disasterTime,
|
||||||
|
YEAR(STR_TO_DATE(CONCAT(ms.month_str, '-01'), '%Y-%m-%d')) as year,
|
||||||
|
COALESCE(SUM(fsdd.disaster_count), 0) as totalCount
|
||||||
|
FROM (
|
||||||
|
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') as month_str
|
||||||
|
FROM (
|
||||||
|
SELECT 0 as n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
|
||||||
|
UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
|
||||||
|
UNION SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION SELECT 16 UNION SELECT 17
|
||||||
|
UNION SELECT 18 UNION SELECT 19 UNION SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23
|
||||||
|
) months
|
||||||
|
) ms
|
||||||
|
CROSS JOIN (
|
||||||
|
SELECT '0' as category_type
|
||||||
|
UNION ALL
|
||||||
|
SELECT '1' as category_type
|
||||||
|
UNION ALL
|
||||||
|
SELECT '2' as category_type
|
||||||
|
UNION ALL
|
||||||
|
SELECT '3' as category_type
|
||||||
|
) ct
|
||||||
|
LEFT JOIN farm_screen_disaster_data fsdd ON
|
||||||
|
ct.category_type = fsdd.category
|
||||||
|
AND ms.month_str = fsdd.disaster_time
|
||||||
|
AND fsdd.deleted = 0
|
||||||
|
AND fsdd.use_status = 1
|
||||||
|
GROUP BY ct.category_type, ms.month_str
|
||||||
|
ORDER BY ms.month_str, ct.category_type
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -23,7 +23,6 @@ import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
|||||||
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
||||||
import cn.iocoder.yudao.module.system.service.social.SocialClientService;
|
import cn.iocoder.yudao.module.system.service.social.SocialClientService;
|
||||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||||
import cn.iocoder.yudao.module.system.util.TokenExtractorUtil;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
@@ -43,7 +42,6 @@ import java.util.Set;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
||||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
|
||||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 认证")
|
@Tag(name = "管理后台 - 认证")
|
||||||
@@ -171,11 +169,10 @@ public class AuthController {
|
|||||||
@Operation(summary = "登录 (切换租户之后调用)")
|
@Operation(summary = "登录 (切换租户之后调用)")
|
||||||
public CommonResult<AuthLoginRespVO> getPhoneNumber4Login(@RequestBody @Valid TenantTokenReqVO reqVO) {
|
public CommonResult<AuthLoginRespVO> getPhoneNumber4Login(@RequestBody @Valid TenantTokenReqVO reqVO) {
|
||||||
// 强行清楚 本地线程 中的租户ID , 请设置为当前将要登录的租户ID
|
// 强行清楚 本地线程 中的租户ID , 请设置为当前将要登录的租户ID
|
||||||
TenantContextHolder.clear();
|
// TenantContextHolder.clear();
|
||||||
TenantContextHolder.setTenantId(Long.valueOf(reqVO.getTenantId()));
|
// TenantContextHolder.setTenantId(Long.valueOf(reqVO.getTenantId()));
|
||||||
AuthLoginRespVO login = authService.getPhoneNumber4Login(reqVO);
|
AuthLoginRespVO login = authService.getPhoneNumber4Login(reqVO);
|
||||||
if (login != null) {
|
if (login != null) {
|
||||||
// log.info("tenantId ===> {}", getLoginUser().getTenantId());
|
|
||||||
return success(login);
|
return success(login);
|
||||||
} else {
|
} else {
|
||||||
return error(405, "该手机号不是平台用户");
|
return error(405, "该手机号不是平台用户");
|
||||||
|
|||||||
Reference in New Issue
Block a user