fix (farm): 大屏,微信端
- 大屏模拟数据维护 - 微信端切换租户
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
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.ScreenDisasterDataRespVO;
|
||||
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.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
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.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -89,6 +86,14 @@ public class ScreenDisasterDataController {
|
||||
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")
|
||||
@Operation(summary = "导出大屏数据-灾害数据 Excel")
|
||||
// @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.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.managementcenter.largescreen.screendisasterdata.vo.DisasterDataStatisticsInfoRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.screendisasterdata.ScreenDisasterDataDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -34,4 +35,6 @@ public interface ScreenDisasterDataMapper extends BaseMapperX<ScreenDisasterData
|
||||
}
|
||||
|
||||
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.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.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.ScreenDisasterDataSaveReqVO;
|
||||
import jakarta.validation.*;
|
||||
@@ -71,4 +72,6 @@ public interface ScreenDisasterDataService {
|
||||
*/
|
||||
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.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.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.ScreenDisasterDataSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
|
||||
@@ -105,4 +107,23 @@ public class ScreenDisasterDataServiceImpl implements ScreenDisasterDataService
|
||||
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 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>
|
||||
Reference in New Issue
Block a user