Commit 46c1171f authored by 耿迪迪's avatar 耿迪迪

入户安检统计分析修改

parent 50cd2370
......@@ -287,8 +287,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="taskInspectStatistics" parameterType="TTaskInspect" resultType="Map">
SELECT
DATE_FORMAT(inspect.create_time, "%Y-%m-%d") AS timeType,
COUNT(1) AS countNum
DATE_FORMAT(inspect.create_time, "%Y-%m") AS timeType,
COUNT(1) AS countNum,
inspect.status
FROM
t_task_inspect inspect
LEFT JOIN t_task task ON task.id = inspect.task_id
......@@ -305,7 +306,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">and inspect.type = #{type}</if>
<if test="village != null and type == 1"> and u.village = #{village}</if>
</where>
GROUP BY timeType
GROUP BY timeType,inspect.status
<if test="dateBegin != null and dateEnd != ''">HAVING CONCAT(timeType,' 00:00:00') BETWEEN #{dateBegin} AND #{dateEnd}</if>
</select>
<select id="jmAnjianDetail" parameterType="TUserInspect" resultType="com.zehong.system.domain.vo.Userinstpect">
......
......@@ -18,7 +18,7 @@
</el-select>
</el-form-item>
<el-form-item label="任务执行状态" prop="status">
<!--<el-form-item label="任务执行状态" prop="status">
<el-select
v-model="queryParams.status"
clearable size="small"
......@@ -31,7 +31,7 @@
<el-option label="已安检" value="2"/>
<el-option label="燃气停用" value="3"/>
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="有无隐患" prop="danger">
<el-select
......
......@@ -15,15 +15,74 @@
getStatisticsInfo(){
taskInspectStatistics(this.$parent.queryParams).then(res =>{
if(res.code == 200){
const dataX = res.data.map((item) => {
/*const dataX = res.data.map((item) => {
return item.timeType;
});
const dataY = res.data.map((item) => {
return item.countNum;
});
});*/
// 按 month 分组(只分组,不求和不计数)
const grouped = res.data.reduce((acc, item) => {
const key = item.timeType;
if (!acc[key]) acc[key] = []
acc[key].push(item)
return acc
}, {});
const dataX = Object.keys(grouped);
//状态映射关系
const statusMapping = {
0:"到访不遇",
1:"拒绝安检",
2:"已安检",
3:"燃气停用",
}
//组装每月安检状态对应统计数据
const seriesMap = {};
for (const [month, items] of Object.entries(grouped)) {
console.log('月份:', month) // '1'(字符串)
console.log('数据:', items) // 数组
for(const status in statusMapping){
const total = items.find(item => item.status == status);
if(status in seriesMap){
seriesMap[status].data.push(total ? total.countNum : 0);
}else{
seriesMap[status] = {
name: statusMapping[status],
type: 'bar',
data: [total ? total.countNum : 0],
label: {
show: true, // 显示
position: 'top' // 显示在柱子顶部
}
};
}
}
}
//组装series数据
const series = Object.values(seriesMap);
this.myChart = this.$echarts.init(document.getElementById("inspectChart"));
const option = this.charsOption(dataX, dataY);
this.myChart.setOption(option);
//const option = this.charsOption(dataX, dataY);
//this.myChart.setOption(option);
this.myChart.setOption({
//color: ['#5470c6', '#91cc75', '#fac858', '#ee6666'],
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
legend: { data: ['到访不遇', '拒绝安检', '已安检', '燃气停用'] },
xAxis: {
type: 'category',
data: dataX
},
yAxis: { type: 'value' },
series: series
}, true)
}
})
},
......
......@@ -18,7 +18,7 @@
</el-select>
</el-form-item>
<el-form-item label="任务执行状态" prop="status">
<!--<el-form-item label="任务执行状态" prop="status">
<el-select
v-model="queryParams.status"
clearable size="small"
......@@ -31,7 +31,7 @@
<el-option label="已检测" value="2"/>
<el-option label="燃气停用" value="3"/>
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="有无隐患" prop="danger">
<el-select
......
......@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="任务执行状态" prop="status">
<!--<el-form-item label="任务执行状态" prop="status">
<el-select
v-model="queryParams.status"
clearable size="small"
......@@ -32,7 +32,7 @@
<el-option label="已安检" value="2"/>
<el-option label="燃气停用" value="3"/>
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="有无隐患" prop="danger">
<el-select
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment