四类垃圾按年月日分别统计
@Override
public Object companyLin(String type) {
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> dryGarbage = new HashMap<>();
Map<String, Object> wetGarbage = new HashMap<>();
Map<String, Object> recyclable = new HashMap<>();
Map<String, Object> hazardous = new HashMap<>();
List<String> date=new ArrayList<>();
List<String> value1=new ArrayList<>();
List<String> value2=new ArrayList<>();
List<String> value3=new ArrayList<>();
List<String> value4=new ArrayList<>();
if (type.equals("day")){
date=getDays(8);
List<String> date1=getDays1(8);
for (String str:date1){
value1.add(jqPublicToiletMapper.getCompanyValue("day",str).get("dry_garbage").toString());
value2.add(jqPublicToiletMapper.getCompanyValue("day",str).get("wet_garbage").toString());
value3.add(jqPublicToiletMapper.getCompanyValue("day",str).get("recyclable_garbage").toString());
value4.add(jqPublicToiletMapper.getCompanyValue("day",str).get("hazardous_garbage").toString());
}
}
if (type.equals("month")){
date=getMonths(8);
for (String str:date){
value1.add(jqPublicToiletMapper.getCompanyValue("month",str).get("dry_garbage").toString());
value2.add(jqPublicToiletMapper.getCompanyValue("month",str).get("wet_garbage").toString());
value3.add(jqPublicToiletMapper.getCompanyValue("month",str).get("recyclable_garbage").toString());
value4.add(jqPublicToiletMapper.getCompanyValue("month",str).get("hazardous_garbage").toString());
}
}
if (type.equals("year")){
date=getYears(8);
for (String str:date){
value1.add(jqPublicToiletMapper.getCompanyValue("year",str).get("dry_garbage").toString());
value2.add(jqPublicToiletMapper.getCompanyValue("year",str).get("wet_garbage").toString());
value3.add(jqPublicToiletMapper.getCompanyValue("year",str).get("recyclable_garbage").toString());
value4.add(jqPublicToiletMapper.getCompanyValue("year",str).get("hazardous_garbage").toString());
}
}
dryGarbage.put("name","干垃圾");
dryGarbage.put("date",date);
dryGarbage.put("value",value1);
wetGarbage.put("name","湿垃圾");
wetGarbage.put("date",date);
wetGarbage.put("value",value2);
recyclable.put("name","可回收物");
recyclable.put("date",date);
recyclable.put("value",value3);
hazardous.put("name","有害垃圾");
hazardous.put("date",date);
hazardous.put("value",value4);
dataList.add(dryGarbage);
dataList.add(wetGarbage);
dataList.add(recyclable);
dataList.add(hazardous);
return dataList;
}
根据当前时间获取最近八天,八月,八年时间
private List<String> getYears(int months) {
List<String> list = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy");
for (int i = months-1; i >= 0; i--) {
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -i);
Date m3 = c.getTime();
String mon3 = format.format(m3);
list.add(mon3);
}
return list;
}
private List<String> getMonths(int months) {
List<String> list = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
for (int i = months-1; i >= 0; i--) {
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.MONTH, -i);
Date m3 = c.getTime();
String mon3 = format.format(m3);
list.add(mon3);
}
return list;
}
private List<String> getDays(int months) {
List<String> list = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("MM-dd");
for (int i = months-1; i >= 0; i--) {
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DATE, -i);
Date m3 = c.getTime();
String mon3 = format.format(m3);
list.add(mon3);
}
return list;
}
private List<String> getDays1(int months) {
List<String> list = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
for (int i = months-1; i >= 0; i--) {
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DATE, -i);
Date m3 = c.getTime();
String mon3 = format.format(m3);
list.add(mon3);
}
return list;
}
sql语句
<select id="getCompanyValue" resultType="map">
SELECT
IFNULL(SUM(dry_garbage), 0) dry_garbage,
IFNULL(SUM(wet_garbage), 0) wet_garbage,
IFNULL(SUM(recyclable_garbage), 0) recyclable_garbage,
IFNULL(SUM(hazardous_garbage), 0) hazardous_garbage
FROM jq_company_data
<where>
<if test="type=='day'"> and DATE_FORMAT( save_time, '%Y-%m-%d' ) = #{str}</if>
<if test="type=='month'"> and DATE_FORMAT( save_time, '%Y-%m' ) = #{str}</if>
<if test="type=='year'"> and DATE_FORMAT( save_time, '%Y' ) = #{str}</if>
and is_del = '0'
</where>
</select>
返回参数结构
{
"msg": "查询成功",
"code": 0,
"data": [
{
"date": [
"12-30",
"12-31",
"01-01",
"01-02",
"01-03",
"01-04",
"01-05",
"01-06"
],
"name": "干垃圾",
"value": [
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00"
]
},
{
"date": [
"12-30",
"12-31",
"01-01",
"01-02",
"01-03",
"01-04",
"01-05",
"01-06"
],
"name": "湿垃圾",
"value": [
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00"
]
},
{
"date": [
"12-30",
"12-31",
"01-01",
"01-02",
"01-03",
"01-04",
"01-05",
"01-06"
],
"name": "可回收物",
"value": [
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00"
]
},
{
"date": [
"12-30",
"12-31",
"01-01",
"01-02",
"01-03",
"01-04",
"01-05",
"01-06"
],
"name": "有害垃圾",
"value": [
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00",
"0.00"
]
}
]
}
前端效果
