Commit 7b8d72d1 authored by 赵啸非's avatar 赵啸非

修改统计逻辑

parent a3c983bc
...@@ -6,13 +6,15 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; ...@@ -6,13 +6,15 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.device.model.DeviceMessageStatEntity; import com.mortals.xhx.module.device.model.DeviceMessageStatEntity;
import com.mortals.xhx.module.device.service.DeviceMessageStatService; import com.mortals.xhx.module.device.service.DeviceMessageStatService;
import com.mortals.xhx.module.product.model.ProductEntity;
import com.mortals.xhx.module.product.model.ProductQuery;
import com.mortals.xhx.module.product.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -27,6 +29,8 @@ public class DeviceMessageStatController extends BaseCRUDJsonBodyMappingControll ...@@ -27,6 +29,8 @@ public class DeviceMessageStatController extends BaseCRUDJsonBodyMappingControll
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private ProductService productService;
public DeviceMessageStatController() { public DeviceMessageStatController() {
super.setModuleDesc("设备消息统计"); super.setModuleDesc("设备消息统计");
...@@ -43,10 +47,35 @@ public class DeviceMessageStatController extends BaseCRUDJsonBodyMappingControll ...@@ -43,10 +47,35 @@ public class DeviceMessageStatController extends BaseCRUDJsonBodyMappingControll
protected int doListAfter(DeviceMessageStatEntity query, Map<String, Object> model, Context context) throws AppException { protected int doListAfter(DeviceMessageStatEntity query, Map<String, Object> model, Context context) throws AppException {
List<DeviceMessageStatEntity> statEntities = (List<DeviceMessageStatEntity>) model.get(KEY_RESULT_DATA); List<DeviceMessageStatEntity> statEntities = (List<DeviceMessageStatEntity>) model.get(KEY_RESULT_DATA);
//重新分组返回 [{date:2024-8}] //重新分组返回 [{date:2024-8}]
if(!ObjectUtils.isEmpty(statEntities)){ if (!ObjectUtils.isEmpty(statEntities)) {
//按月分组 //按月分组
Map<Integer, Map<String, List<DeviceMessageStatEntity>>> collect = statEntities.stream().collect(Collectors.groupingBy(DeviceMessageStatEntity::getMonth, Collectors.groupingBy(DeviceMessageStatEntity::getProductCode))); Map<Integer, Map<String, List<DeviceMessageStatEntity>>> collect = statEntities.stream().collect(Collectors.groupingBy(DeviceMessageStatEntity::getMonth, Collectors.groupingBy(DeviceMessageStatEntity::getProductName, Collectors.toList())));
Map<Integer, Integer> monthStat = statEntities.stream().collect(Collectors.groupingBy(DeviceMessageStatEntity::getMonth, Collectors.summingInt(x -> x.getAlarmTotalCount())));
List<ProductEntity> productEntities = new ArrayList<ProductEntity>();
if (!ObjectUtils.isEmpty(query.getProductCodeList())) {
ProductQuery productQuery = new ProductQuery();
productQuery.setProductCodeList(query.getProductCodeList());
productEntities = productService.find(productQuery);
} else {
productEntities = productService.find(new ProductEntity());
}
for (int i = 1; i <= 12; i++) {
if (!collect.containsKey(i)) {
Map<String, List<DeviceMessageStatEntity>> map = new HashMap<>();
for (ProductEntity productEntity : productEntities) {
DeviceMessageStatEntity deviceMessageStatEntity = new DeviceMessageStatEntity();
deviceMessageStatEntity.initAttrValue();
map.put(productEntity.getProductName(), Arrays.asList(deviceMessageStatEntity));
}
collect.put(i, map);
}
if (monthStat.containsKey(i)) {
monthStat.put(i, 0);
}
}
model.put("stat", collect); model.put("stat", collect);
model.put("monthStat", monthStat);
} }
return super.doListAfter(query, model, context); return super.doListAfter(query, model, context);
} }
......
...@@ -104,7 +104,6 @@ Content-Type: application/json ...@@ -104,7 +104,6 @@ Content-Type: application/json
{ {
"size": -1, "size": -1,
"groupList": ["productCode","month"], "groupList": ["productCode","month"],
"productCodeList": ["pdj"],
"year": 2024, "year": 2024,
"siteId": 1, "siteId": 1,
"orderColList": [{"colName":"month","sortKind":"asc"}] "orderColList": [{"colName":"month","sortKind":"asc"}]
......
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