修正区级状态指标计算方法
This commit is contained in:
@@ -66,12 +66,12 @@ public class StatisticsController {
|
||||
|
||||
// 计算完成状态
|
||||
String status;
|
||||
if (safeInt(stats.getApprovedCount()) > 0) {
|
||||
status = "已完成";
|
||||
} else if (safeInt(stats.getCollectedCount()) > 0) {
|
||||
status = "未完成";
|
||||
if (safeInt(stats.getCollectedCount()) > 0) {
|
||||
status = "已采集";
|
||||
} else if (safeInt(stats.getCollectedCount()) == 0 && safeInt(stats.getPublishedUncollectedCount()) > 0) {
|
||||
status = "已发布未开始";
|
||||
} else {
|
||||
status = "未开始";
|
||||
status = "未发布";
|
||||
}
|
||||
|
||||
completionStatus.put(district, status);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.whu.edu.LyStatistic.MapLyStatistic.Dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DatePlotDTO {
|
||||
private String district;
|
||||
private int plotcount;
|
||||
}
|
||||
@@ -13,9 +13,11 @@ public class PlotStatsDTO {
|
||||
private Integer plotCount; // 图斑总数量
|
||||
private Double totalArea; // 图斑总面积(sum XBMJ)
|
||||
|
||||
private Integer unPassedCount; // -1 审核未通过
|
||||
private Integer assignedCount; // 0 已分配,未审核
|
||||
private Integer collectedCount; // 1 已采集,未审核
|
||||
private Integer approvedCount; // 2 已审核
|
||||
// private Integer unPassedCount; // -1 审核未通过
|
||||
// private Integer assignedCount; // 0 已分配,未审核
|
||||
// private Integer collectedCount; // 1 已采集,未审核
|
||||
// private Integer approvedCount; // 2 已审核
|
||||
private Integer collectedCount; // collector/reviewer有一个不是-1:已采集
|
||||
private Integer publishedUncollectedCount; // collector/reviewer均为-1:已发布未采集
|
||||
}
|
||||
|
||||
|
||||
@@ -21,13 +21,13 @@ public class BaseTaskQueryService {
|
||||
PlotStatsDTO stats = taskCommonMapper.selectPlotStats(schema);
|
||||
if (stats == null) {
|
||||
// 防止 mapper 返回 null
|
||||
return new PlotStatsDTO( "0", 0, 0.0, 0, 0, 0, 0);
|
||||
return new PlotStatsDTO( "0", 0, 0.0, 0, 0);
|
||||
}
|
||||
return stats;
|
||||
} catch (Exception e) {
|
||||
// 表不存在或 schema 不存在,直接跳过
|
||||
// 不管是什么异常,都返回默认统计,保证批量统计不被中断
|
||||
return new PlotStatsDTO( "0", 00, 0.0, 0, 0, 0, 0);
|
||||
return new PlotStatsDTO( "0", 00, 0.0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -188,9 +188,9 @@ public class StatisticsService {
|
||||
total.setPlotCount(total.getPlotCount() + add.getPlotCount());
|
||||
total.setTotalArea(total.getTotalArea() + add.getTotalArea());
|
||||
|
||||
total.setUnPassedCount(total.getUnPassedCount() + add.getUnPassedCount());
|
||||
total.setAssignedCount(total.getAssignedCount() + add.getAssignedCount());
|
||||
// total.setUnPassedCount(total.getUnPassedCount() + add.getUnPassedCount());
|
||||
// total.setAssignedCount(total.getAssignedCount() + add.getAssignedCount());
|
||||
total.setCollectedCount(total.getCollectedCount() + add.getCollectedCount());
|
||||
total.setApprovedCount(total.getApprovedCount() + add.getApprovedCount());
|
||||
total.setPublishedUncollectedCount(total.getPublishedUncollectedCount() + add.getPublishedUncollectedCount());
|
||||
}
|
||||
}
|
||||
|
||||
24
src/main/resources/mapper/MapLyStatistic/Date.xml
Normal file
24
src/main/resources/mapper/MapLyStatistic/Date.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.whu.edu.LyStatistic.MapLyStatistic.Mapper.PlotMapper">
|
||||
<select id="finishedPlot" resultType="com.whu.edu.LyStatistic.MapLyStatistic.Dto.PlotAttrDTO">
|
||||
SELECT *
|
||||
FROM merged.roottable1_merged
|
||||
WHERE "NYXBH" = #{nyxbh} AND "XIANG" = #{xiang}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="finishedSamplePlot" resultType="string">
|
||||
SELECT media_path
|
||||
FROM merged.roottable1_media_merged
|
||||
WHERE "id" = #{id}
|
||||
AND "database_name" = #{databaseName}
|
||||
ORDER BY media_path
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -37,7 +37,20 @@
|
||||
-- status 也是 text,因此必须先转 integer
|
||||
COALESCE(SUM(CASE WHEN m."status"::int = -1 THEN 1 ELSE 0 END), 0) AS unPassedCount,
|
||||
COALESCE(SUM(CASE WHEN m."status"::int = 0 THEN 1 ELSE 0 END), 0) AS assignedCount,
|
||||
COALESCE(SUM(CASE WHEN m."status"::int = 1 THEN 1 ELSE 0 END), 0) AS collectedCount,
|
||||
|
||||
-- 新的状态统计逻辑
|
||||
-- collector/reviewer有一个不是-1:已采集
|
||||
COALESCE(SUM(CASE
|
||||
WHEN (m."collector" != '-1' OR m."reviewer" != '-1')
|
||||
THEN 1 ELSE 0
|
||||
END), 0) AS collectedCount,
|
||||
|
||||
-- collector/reviewer均为-1:已发布未采集
|
||||
COALESCE(SUM(CASE
|
||||
WHEN m."collector" = '-1' AND m."reviewer" = '-1'
|
||||
THEN 1 ELSE 0
|
||||
END), 0) AS publishedUncollectedCount,
|
||||
|
||||
COALESCE(SUM(CASE WHEN m."status"::int = 2 THEN 1 ELSE 0 END), 0) AS approvedCount
|
||||
|
||||
FROM merged.roottable1_merged m
|
||||
|
||||
Reference in New Issue
Block a user