package com.zhitan.web.controller.comprehensivestatistics; import cn.hutool.core.date.DateUtil; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.comprehensivestatistics.domain.YearComperhensive; import com.zhitan.comprehensivestatistics.service.IyearComprehensive; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.domain.DataItem; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.lang.reflect.Field; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; /** * electricityPriceController * * @author sys * @date 2020-02-18 */ @RestController @RequestMapping("/comprehensive/yearComprehensive") @Api(value = "综合指标分析(年)controller",tags = {"综合指标分析"}) public class YearComprehensiveController extends BaseController { @Autowired private IModelNodeService modelNodeService; @Autowired private IyearComprehensive yearComprehensive; /*全厂能耗统计*/ @GetMapping("/list") @ApiOperation(value = "获取综合指标分析(年)列表") public AjaxResult list(DataItem dataItem) { try { ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode()); if (ObjectUtils.isEmpty(modelNode)) { return AjaxResult.success("暂无数据"); } List dataList = new ArrayList<>(); dataItem.setBeginTime(DateUtil.beginOfYear(dataItem.getDataTime())); dataItem.setEndTime(DateUtil.endOfYear(dataItem.getDataTime())); DateFormat df = new SimpleDateFormat("yyyy"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa = df.format(dataItem.getDataTime()); String bb = ""; int i = 1; while (i <= 12) { if(i > 9){ bb = aa + "-" + i + "-01 00:00:00"; }else{ bb = aa + "-0" + i + "-01 00:00:00"; } YearComperhensive report = new YearComperhensive(); report.setDataTime(sf.parse(bb)); report.setValue("value" + i); dataList.add(report); i++; } List list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(), dataList,dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } catch (Exception ex) { logger.error("获取出错!", ex); return AjaxResult.error("获取出错!"); } } /** * 全厂综合能耗统计图 */ @GetMapping("/listChart") @ApiOperation(value = "获取综合指标分析图表(年)数据") public AjaxResult listChart(DataItem dataItem){ dataItem.setBeginTime(DateUtil.beginOfYear(dataItem.getDataTime())); dataItem.setEndTime(DateUtil.endOfYear(dataItem.getDataTime())); List list = yearComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } /** * 导出工序单耗统计指标设置功能列表 */ @Log(title = "综合报表", businessType = BusinessType.EXPORT) @GetMapping("/export") @ApiOperation(value = "综合年报表导出") public AjaxResult export(DataItem dataItem) { try { ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode()); if (ObjectUtils.isEmpty(modelNode)) { return AjaxResult.success("暂无数据"); } List dataList = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa = df.format(dataItem.getBeginTime()); String bb = ""; int i = 1; while (i <= 12) { if(i>9){ bb=aa+"-"+i+"-01 00:00:00"; }else{ bb=aa+"-0"+i+"-01 00:00:00"; } YearComperhensive report=new YearComperhensive(); report.setDataTime(sf.parse(bb)); report.setValue("value"+i); dataList.add(report); i++; } List list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(), dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); if(CollectionUtils.isNotEmpty(list)){ list.forEach(this::valueRep); } ExcelUtil util = new ExcelUtil<>(YearComperhensive.class); return util.exportExcel(list, "综合指标分析年"); } catch (Exception ex) { logger.error("获取出错!", ex); return AjaxResult.error("获取出错!"); } } public void valueRep(Object dr){ Field[] fields = dr.getClass().getDeclaredFields(); for(Field field:fields){ field.setAccessible(true); Object obj = field.getType(); if(field.getType().getName().equals("java.lang.Double")){ String name = field.getName(); try { if(ObjectUtils.isEmpty(field.get(dr))) { field.set(dr,0.00); } } catch (IllegalAccessException e) { e.printStackTrace(); } } } } }