a3591b69 康伟

kangwei : 公司季报接口:直管水务公司2024年一季度生产运营工作总结

1 个父辈 c8f600c0
正在显示 21 个修改的文件 包含 829 行增加5 行删除
......@@ -144,4 +144,118 @@ public class ReportViewUtil {
return sb.toString();
}
public static String buildViewLike(String reportId,String fields,String departIds,String startTime,String endTime) {
String[] departIdArray = departIds.split(",");
String inSqlPart = "";
String inItemSqlPart = "";
for(String departId : departIdArray) {
inSqlPart = inSqlPart + ",'"+departId+"'";
}
if(!StringUtils.isEmpty(fields)) {
String[] fieldArray = fields.split(",");
for(String field : fieldArray) {
//过滤掉别名
if(field.contains(" as")) {
field = field.substring(0,field.indexOf("as")-1);
}
if(field.contains(" AS")) {
field = field.substring(0,field.indexOf("AS")-1);
}
inItemSqlPart = inItemSqlPart + ",'"+field+"'";
}
inItemSqlPart = inItemSqlPart.substring(1);
}
inSqlPart = inSqlPart.substring(1);
JdbcTemplate masterDB = (JdbcTemplate)SpringContextUtils.getBean("master");
String itemSql = "select item_code,id from f_report_item where report_id = '"+reportId+"' and required = 1 ";
if(!StringUtils.isEmpty(inItemSqlPart)) {
itemSql = itemSql + " and item_code in("+inItemSqlPart+")";
}
List<Map<String,Object>> itemList = masterDB.queryForList(itemSql);
//构造视图
StringBuffer sb = new StringBuffer();
sb.append("(select ");
String itemCodes = "";
String itemIds = "";
for(Map<String,Object> itemMap : itemList) {
itemCodes = itemCodes + ",'"+itemMap.get("item_code")+"'";
itemIds = itemIds +",'"+itemMap.get("id")+"'";
sb.append("sum(if((`d`.`item_code` = '"+itemMap.get("item_code")+"'),`a`.`item_value`,NULL)) AS `"+itemMap.get("item_code")+"`,");
}
if(!StringUtils.isEmpty(itemIds)) {
itemIds = itemIds.substring(1);
}
sb.append("`a`.`depart_id` AS `depart_id` from (( ");
sb.append("SELECT data_id,reit_id,item_value,data_time,depart_id FROM f_report_itemv WHERE 1=1 ");
if(!StringUtils.isEmpty(inSqlPart)) {
sb.append(" and depart_id in ("+inSqlPart+")");
}
if(!StringUtils.isEmpty(startTime)) {
sb.append("and data_time >='"+startTime+"'");
}
if(!StringUtils.isEmpty(endTime)) {
sb.append("and data_time <='"+endTime+"'");
}
sb.append("and reit_id in ("+itemIds+")");
sb.append(") `a` left join `f_report_item` `d` on((`a`.`reit_id` = `d`.`id`))) where 1=1 group by `a`.`depart_id`)");
return sb.toString();
}
/*****************************************************/
/***
* 构造填报报表视图:按照部门分组统计
* @param reportId 报表编号
* @param fields 查询字段
* @param startTime 开始时间
* @param endTime 结束时间
* @return
*/
public static String buildViewByStatistics(String reportId,String fields,String startTime,String endTime) {
String inItemSqlPart = "";
if(!StringUtils.isEmpty(fields)) {
String[] fieldArray = fields.split(",");
for(String field : fieldArray) {
//过滤掉别名
if(field.contains(" as")) {
field = field.substring(0,field.indexOf("as")-1);
}
if(field.contains(" AS")) {
field = field.substring(0,field.indexOf("AS")-1);
}
inItemSqlPart = inItemSqlPart + ",'"+field+"'";
}
inItemSqlPart = inItemSqlPart.substring(1);
}
JdbcTemplate masterDB = (JdbcTemplate)SpringContextUtils.getBean("master");
String itemSql = "select item_code,id from f_report_item where report_id = '"+reportId+"' and required = 1 ";
if(!StringUtils.isEmpty(inItemSqlPart)) {
itemSql = itemSql + " and item_code in("+inItemSqlPart+")";
}
List<Map<String,Object>> itemList = masterDB.queryForList(itemSql);
//构造视图
StringBuffer sb = new StringBuffer();
sb.append("(select ");
String itemCodes = "";
String itemIds = "";
for(Map<String,Object> itemMap : itemList) {
itemCodes = itemCodes + ",'"+itemMap.get("item_code")+"'";
itemIds = itemIds +",'"+itemMap.get("id")+"'";
sb.append("sum(if((`d`.`item_code` = '"+itemMap.get("item_code")+"'),`a`.`item_value`,NULL)) AS `"+itemMap.get("item_code")+"`,");
}
if(!StringUtils.isEmpty(itemIds)) {
itemIds = itemIds.substring(1);
}
sb.append("`a`.`depart_id` AS `depart_id` from (( ");
sb.append("SELECT data_id,reit_id,item_value,data_time,depart_id FROM f_report_itemv v WHERE 1=1 ");
if(!StringUtils.isEmpty(startTime)) {
sb.append("and data_time>='"+startTime+"' and data_time<='"+endTime+"' ");
}
sb.append("and reit_id in ("+itemIds+")) `a` left join `f_report_item` `d` on(`a`.`reit_id` = `d`.`id`)) where 1=1 group by `a`.`depart_id`)");
return sb.toString();
}
}
......
......@@ -6,6 +6,8 @@ import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
......@@ -22,6 +24,80 @@ public class BaseUtil {
}
/***
* 根据记录获取:季度开始时间
* @param year
* @param season
* @return
*/
public static String getStartTimeBySeason(int year,int season){
int startMonth = 0;
int endMonth = 0;
switch (season) {
case 1:
startMonth = 1;
endMonth = 3;
break;
case 2:
startMonth = 4;
endMonth = 6;
break;
case 3:
startMonth = 7;
endMonth = 9;
break;
case 4:
startMonth = 10;
endMonth = 12;
break;
default:
System.out.println("季度输入无效,请输入1-4之间的数字。");
return "";
}
LocalDate startDate = LocalDate.of(year, startMonth, 1);
LocalDate endDate = LocalDate.of(year, endMonth, startDate.lengthOfMonth());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return startDate.format(formatter);
}
/***
* 根据记录获取:季度结束时间
* @param year
* @param season
* @return
*/
public static String getEndTimeBySeason(int year,int season){
int startMonth = 0;
int endMonth = 0;
switch (season) {
case 1:
startMonth = 1;
endMonth = 3;
break;
case 2:
startMonth = 4;
endMonth = 6;
break;
case 3:
startMonth = 7;
endMonth = 9;
break;
case 4:
startMonth = 10;
endMonth = 12;
break;
default:
System.out.println("季度输入无效,请输入1-4之间的数字。");
return "";
}
LocalDate startDate = LocalDate.of(year, startMonth, 1);
LocalDate endDate = LocalDate.of(year, endMonth, startDate.lengthOfMonth());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return endDate.format(formatter);
}
/***
* 分割字符串,然后拼接
* @param str 带分隔字符串
* @param splitStr 分割符号
......
......@@ -77,6 +77,7 @@ public class EnvironmentTargetController {
queryWrapper.in("depart_id", BaseContextHandler.getDeparts().split(","));
}*/
queryWrapper.orderByDesc("create_time");
IPage<EnvironmentTarget> pageList = environmentTargetService.page(page, queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
......
......@@ -47,9 +47,6 @@ public class HealthRecords {
@ApiModelProperty(value = "用户名称")
private String userName;
@Excel(name = "用户学历", width = 15)
@ApiModelProperty(value = "用户学历")
private String education;
/**检查地点*/
@Excel(name = "检查地点", width = 15)
......
......@@ -4,12 +4,13 @@
<select id="queryByPage" resultType="com.skua.modules.safe.vo.HealthRecordsVO" parameterType="com.skua.modules.safe.vo.HealthRecordsVO">
select u.phone, u.birthday,u.sex,
select u.phone, u.birthday,u.sex,fui.degree 'education',
(select group_concat(DISTINCT (select r.role_name from sys_role r where r.id = sur.role_id)) role_name
from sys_user_role sur where sur.user_id = hr.user_id) 'role_name',
hr.*
from safety_health_records hr
left join sys_user u on hr.user_id = u.id
left join sys_factory_user_info fui on fui.user_id = hr.user_id
<where>
<if test="healthRecordsVO.userName != null and healthRecordsVO.userName !=''">
and hr.user_name like CONCAT('%',#{healthRecordsVO.userName},'%')
......
......@@ -27,6 +27,9 @@ public class HealthRecordsVO extends HealthRecords {
@ApiModelProperty(value = "年龄")
private String age;
@Excel(name = "用户学历", width = 15)
@ApiModelProperty(value = "用户学历")
private String education;
@Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
......
......@@ -127,7 +127,7 @@ mybatis-plus:
configuration:
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#数矿专用配置
skua:
web-url: http://103.85.171.27:8096
......
......@@ -89,6 +89,15 @@ public interface FCustomReportDatasetMapper extends BaseMapper<FCustomReportData
List<Map<String, Object>> getDataFromHY(@Param(value="tbYear")String tbYear, @Param(value="year")String year,
@Param(value="departId")String departId);
/***
* 运营周报
* @param dataTime
* @param departId
* @param week
* @param startDate
* @param endDate
* @return
*/
Map<String, Object> getWeekReport(@Param(value="dataTime") String dataTime, @Param(value="departId") String departId,
@Param(value="week") String week,@Param(value="startDate") String startDate,@Param(value="endDate") String endDate);
......
......@@ -91,6 +91,12 @@ public interface IFCustomReportDatasetService extends IService<FCustomReportData
*/
Map<String, Object> getWeekReport(String dataTime, String departId, String week);
/**
* 运营周报word展示
* @param dataTime
* @param week
* @return
*/
Map<String, Object> reportWeekShow(String dataTime, String week);
//节能环保统计报表
......
......@@ -164,6 +164,40 @@ public class FCustomReportDatasetServiceImpl extends ServiceImpl<FCustomReportDa
return valueMapList;
}
/*public List<Map<String, Object>> getDataFromHY(String year, String departId,String startTime,String endTime) {
List<Map<String, Object>> valueMapList = new ArrayList<>();
String tbYear = String.valueOf(Integer.parseInt(year) - 1);
String tbStartTime = startTime.replaceAll( year , tbYear ) ;//去年开始时间
String tbEndTime = endTime.replaceAll( year , tbYear ) ;//去年结束时间
String view2119 = "2119ecbf53a1d2d0708258ff67cfd9e1";
String view3a24 = "3a243d5715b9e1a3753c180872ca0df9";
String view4411 = "4411ed3d78634bcdcd700f6e33724025";
String dataViewName2119 = ReportViewUtil.buildViewLike(view2119,"CSL", departId, startTime,endTime);
String dataViewName2119tb = ReportViewUtil.buildViewLike(view2119,"CSL", departId, tbStartTime,tbEndTime);
String field3a24 = "DLHJ,PAMRJ,SCLPAMZ,SCLPAMF,NACLO,PACGT,PACYT,PFS,FHTY,RYXNJ," +
"YWL,GXCLJ,CH3COONA,HXT,FECL3,SH,CH3COOH,FESO4G,FESO4Y,H2O2";
String dataViewName3a24 = ReportViewUtil.buildViewLike(view3a24,field3a24, departId, dataTime);
String dataViewName3a24tb = ReportViewUtil.buildViewLike(view3a24,field3a24, departId, tbYear);
String field4411 = "yslwcbl,ysjsldyqntqyy,qntqsfsl,ysfsl,sfsldbbhl,sldyyqyy,dhgyqntqyy,yyf,yhgyqntqyy,dhcmbzyy,yhcyqyy";
String dataViewName4411 = ReportViewUtil.buildViewLike(view4411,field4411, departId, dataTime);
String dataViewName4411tb = ReportViewUtil.buildViewLike(view4411,"qntqsfsl", departId, tbYear);
//主库数据源
JdbcTemplate masterDB = (JdbcTemplate) SpringContextUtils.getBean("master");
valueMapList = masterDB.queryForList(sql);
if(valueMapList==null){
valueMapList = new ArrayList<>();
}
return valueMapList;
}*/
@Override
public Map<String, Object> getWeekReport(String dataTime, String departId, String week) {
Map<String, Object> valueMap = new HashMap<>();
......
package com.skua.modules.report.controller;
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.modules.custom.service.IFCustomReportDatasetService;
import com.skua.modules.report.service.IOperationReportService;
import com.skua.modules.report.vo.JnhbReportData;
import com.skua.modules.report.vo.ProductDataVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Slf4j
@Api(tags = "数据接口")
@RestController
@RequestMapping("/data")
public class OperationReportController {
@Autowired
private IOperationReportService operationReportService;
@Autowired
private IFCustomReportDatasetService fCustomReportDatasetService;
/**
* 功能描述: 运营日报进出水初始化
*/
@AutoLog(value = "报表:运营季报")
@ApiOperation(value = "报表:运营季报", notes = "报表:运营季报")
@GetMapping(value = "/operationData")
public Result<ProductDataVO> reportDataInfo(
@RequestParam(name="year") Integer year,
@RequestParam(name="season") Integer season,
HttpServletRequest req) {
Result<ProductDataVO> result = new Result<ProductDataVO>();
ProductDataVO productDataVO = operationReportService.handeReportMonthData(year,season);
result.setResult( productDataVO );
return result;
}
@AutoLog(value = "节能环保大屏:头部统计")
@ApiOperation(value = "节能环保大屏:头部统计", notes = "节能环保大屏:头部统计")
@GetMapping(value = "/jnhbReportShowHead")
public Result<List<JnhbReportData>> jnhbReportShow(String departId, String month) {
Result<List<JnhbReportData>> result = new Result<>();
List<JnhbReportData> list = fCustomReportDatasetService.jnhbReportShow(departId,month);
result.setResult(list);
return result;
}
}
package com.skua.modules.report.mapper;
import com.skua.modules.report.vo.FReportMonthDataVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @auther kangwei
* @create 2024-10-14-9:18
*/
public interface OperationReportMapper {
/***
* 查询月度生产数据报表
* @param startTime
* @param endTime
* @param lastStartTime
* @param lastEndTime
* @return
*/
List<FReportMonthDataVO> queryReportMonthData(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("lastStartTime")String lastStartTime,@Param("lastEndTime") String lastEndTime) ;
/***
* 查询隐含排查部门名称
* @return
*/
List<String> queryDepatNameList();
}
<?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.skua.modules.report.mapper.OperationReportMapper">
<!-- -->
<select id="queryReportMonthData" resultType="com.skua.modules.report.vo.FReportMonthDataVO">
SELECT
a.depart_id,tc.target_water,tc. target_power,tc.target_drug ,tc.target_charge_water,
(select t.depart_name from sys_depart t where t.id = a.depart_id ) 'depart_name',
(
select sum(fiv.item_value)/10000 from f_report_itemv fiv ,f_report_item fi
where fi.report_id = '2119ecbf53a1d2d0708258ff67cfd9e1' and item_code= 'CSL' and fiv.reit_id =fi.id and a.depart_id = fiv.depart_id and fiv.data_time like '2024%'
) 'ysjsl',
(
select sum(fiv.item_value)/10000 from f_report_itemv fiv ,f_report_item fi
where fi.report_id = '2119ecbf53a1d2d0708258ff67cfd9e1' and item_code= 'CSL' and fiv.reit_id =fi.id and a.depart_id = fiv.depart_id and fiv.data_time like '2023%'
) 'tqysjsl',
(select sum(fiv.item_value)/10000 from f_report_itemv fiv ,f_report_item fi
where fi.report_id = '3a243d5715b9e1a3753c180872ca0df9' and item_code= 'DLHJ' and fiv.reit_id =fi.id and a.depart_id = fiv.depart_id and fiv.data_time like '2024%' ) 'ydh',
sum( IF ( ( `d`.`item_code` = 'yslwcbl' ), `a`.`item_value`, NULL ) ) AS `yslwcbl`, -- 月水量完成比例
sum( IF ( ( `d`.`item_code` = 'ysjsldyqntqyy' ), `a`.`item_value`, NULL ) ) AS `ysjsldyqntqyy`, -- 月实际水量低于去年同期原因
sum( IF ( ( `d`.`item_code` = 'qntqsfsl' ), `a`.`item_value`, NULL ) ) AS `qntqsfsl`, -- 去年同期收费水量
sum( IF ( ( `d`.`item_code` = 'ysfsl' ), `a`.`item_value`, NULL ) ) AS `ysfsl`, -- 月收费水量
sum( IF ( ( `d`.`item_code` = 'bnsjdh' ), `a`.`item_value`, NULL ) ) AS `bnsjdh`,-- 本年实际电耗
sum( IF ( ( `d`.`item_code` = 'sldyyqyy' ), `a`.`item_value`, NULL ) ) AS `sldyyqyy`,-- 收费水量对比变化率
sum( IF ( ( `d`.`item_code` = 'dhgyqntqyy' ), `a`.`item_value`, NULL ) ) AS `dhgyqntqyy`, -- 电耗高于去年同期原因
sum( IF ( ( `d`.`item_code` = 'yyf' ), `a`.`item_value`, NULL ) ) AS `yyf`, -- 月药费
sum( IF ( ( `d`.`item_code` = 'yhgyqntqyy' ), `a`.`item_value`, NULL ) ) AS `yhgyqntqyy`, -- 药耗高于去年同期原因
sum( IF ( ( `d`.`item_code` = 'dhcmbzyy' ), `a`.`item_value`, NULL ) ) AS `dhcmbzyy`, -- 电耗超目标值原因
sum( IF ( ( `d`.`item_code` = 'yhcyqyy' ), `a`.`item_value`, NULL ) ) AS `yhcyqyy` -- 药耗超预期原因
FROM
( (SELECT reit_id,item_value,depart_id
FROM f_report_itemv
WHERE
data_time LIKE '2024%'
AND reit_id IN (
'1818936216687595521',
'1818936217375461377',
'1818936218109464577',
'1818936218910576642',
'1818936219120291842',
'1818936219854295042',
'1818936220017872897',
'1818936220353417218',
'1818936220571521025',
'1818936220739293185',
'1818936220890288130' )
) `a`
LEFT JOIN `f_report_item` `d` ON ( ( `a`.`reit_id` = `d`.`id` ) )
LEFT JOIN `report_target_config` tc ON ( ( `tc`.`depart_id` = `a`.`depart_id` ) )
)
WHERE
1 = 1
GROUP BY
`a`.`depart_id`
</select>
<select id="queryDepatNameList" resultType="java.lang.String">
select d.depart_name from ajh_rectification_info t
left join sys_depart d on t.depart_id = d.id
group by t.depart_id
</select>
</mapper>
\ No newline at end of file
package com.skua.modules.report.service;
import com.skua.modules.report.vo.ProductDataVO;
/**
* @auther kangwei
* @create 2024-10-14-9:11
*/
public interface IOperationReportService {
/***
* 执行查询sql语句返回一个结果
* @param sql
* @return
*/
String queryForString(String sql );
/***
* 处理月季度数据
* @param year
* @param season
* @return
*/
ProductDataVO handeReportMonthData(Integer year, Integer season);
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 月度生产数据报表
*/
@Data
@ApiModel(value="生产运营--月度生产数据报表", description="生产运营--月度生产数据报表")
public class FReportMonthDataVO {
@ApiModelProperty(value = "所属厂站")
private String deptartId;
@ApiModelProperty(value = "所属厂站名称")
private String deptartName;
@ApiModelProperty(value = "水量目标")
private String targetWater;
@ApiModelProperty(value = "收费水量目标")
private String targetChargeWater;
@ApiModelProperty(value = "电量目标")
private String targetPower;
@ApiModelProperty(value = "药量目标")
private String targetDrug;
/**************水属性********************/
@ApiModelProperty(value = "月实际水量")
private String ysjsl;
@ApiModelProperty(value = "同期月实际水量")
private String tqysjsl;
@ApiModelProperty(value = "月水量完成比例")
private String yslwcbl;
@ApiModelProperty(value = "月实际水量低于去年同期原因")
private String ysjsldyqntqyy;
@ApiModelProperty(value = "去年同期收费水量")
private String qntqsfsl;
@ApiModelProperty(value = "月收费水量")
private String ysfsl;
@ApiModelProperty(value = "水量低于预期原因")
private String sldyyqyy;
/**************电属性********************/
@ApiModelProperty(value = "月电耗")
private String ydh;
@ApiModelProperty(value = "本年实际电耗")
private String bnsjdh ;
@ApiModelProperty(value = "电耗高于去年同期原因")
private String dhgyqntqyy;
@ApiModelProperty(value = "电耗超目标值原因")
private String dhcmbzyy ;
/**************药剂属性********************/
@ApiModelProperty(value = "月药费")
private String yyf ;
@ApiModelProperty(value = "药耗高于去年同期原因")
private String yhgyqntqyy;
@ApiModelProperty(value = "药耗超预期原因")
private String yhcyqyy;
/**************药剂属性********************/
@ApiModelProperty(value = "本年实际药耗")
private String bnsjyh ;
@ApiModelProperty(value = "本年药耗目标")
private String bnyhmb ;
/* @ApiModelProperty(value = "本年电耗目标")
private String bndhmb ;
@ApiModelProperty(value = "药耗对比变化率")
private String yhdbbhl ;
@ApiModelProperty(value = "月药耗")
private String yyh ;
@ApiModelProperty(value = "去年同期药耗")
private String qntqyh;
@ApiModelProperty(value = "电耗对比变化率")
private String dhdbbhl;
@ApiModelProperty(value = "去年同期电耗")
private String qntqdh;
@ApiModelProperty(value = "年度水量目标")
private String ndslmb;
@ApiModelProperty(value = "收费水量对比变化率")
private String sfsldbbhl;
@ApiModelProperty(value = "实际水量对比变化率")
private String sjsldbbhl;*/
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value="生产运营--月度生产数据报表---详情", description="生产运营--月度生产数据报表--详情")
public class FReportPowerMonthDataVO {
@ApiModelProperty(value = "所属厂站名称")
private String deptartName;
@ApiModelProperty(value = "目标消耗")
private String targetConsume;
@ApiModelProperty(value = "实际消耗")
private String realConsume;
@ApiModelProperty(value = "原因分析")
private String causeAnalysis;
public FReportPowerMonthDataVO(String deptartName, String targetConsume, String realConsume , String causeAnalysis) {
this.deptartName = deptartName;
this.targetConsume = targetConsume;
this.realConsume = realConsume;
this.causeAnalysis = causeAnalysis;
}
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value="生产运营--月度生产数据报表---详情", description="生产运营--月度生产数据报表--详情")
public class FReportWaterMonthDataVO {
@ApiModelProperty(value = "所属厂站名称")
private String deptartName;
@ApiModelProperty(value = "比例")
private BigDecimal ratio;
@ApiModelProperty(value = "原因分析")
private String causeAnalysis;
public FReportWaterMonthDataVO(String deptartName, BigDecimal ratio, String causeAnalysis) {
this.deptartName = deptartName;
this.ratio = ratio;
this.causeAnalysis = causeAnalysis;
}
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 月度生产数据报表
*/
@Data
@ApiModel(value="生产运营--大屏对象", description="生产运营--月度生产数据报表")
public class JnhbLargeScreenVO {
/**所属厂区*/
@ApiModelProperty(value = "所属厂区")
private String departId;
/**厂区名称*/
@ApiModelProperty(value = "厂区名称")
private String departName;
/**污水处理量规模*/
@ApiModelProperty(value = "污水处理量规模(万吨)")
private String wsclgm;
/**实际污水处理量*/
@ApiModelProperty(value = "实际污水处理量(万吨)")
private String wssjcll;
/**系统负荷率*/
@ApiModelProperty(value = "系统负荷率(%)")
private String wsfhl;
/**电耗*/
@ApiModelProperty(value = "电耗(万千瓦时)")
private String dh;
/**光伏发电量(万千瓦时)*/
@ApiModelProperty(value = "光伏发电量(万千瓦时)")
private String gffdl;
/**汽油*/
@ApiModelProperty(value = "汽油(吨)")
private String qy;
/**综合能源消费量*/
@ApiModelProperty(value = "综合能源消费量(吨标准煤)")
private String zhnyxhl;
/**二氧化碳排放量*/
@ApiModelProperty(value = "二氧化碳排放量(吨CO2当量)")
private String eyhtpfl;
/**吨水电耗*/
@ApiModelProperty(value = "吨水电耗(千瓦时/吨)")
private String dsdh;
/**COD消减量*/
@ApiModelProperty(value = "COD消减量(吨)")
private String codxjl;
/**NH3-N消减量*/
@ApiModelProperty(value = "NH3-N消减量(吨)")
private String adxjl;
/**TP消减量*/
@ApiModelProperty(value = "TP消减量(吨)")
private String tpxjl;
/**TN消减量*/
@ApiModelProperty(value = "TN消减量(吨)")
private String tnxjl;
/**一般固废产生量*/
@ApiModelProperty(value = "一般固废产生量(吨)")
private String ybgfcsl;
/**一般固废处置量*/
@ApiModelProperty(value = "一般固废处置量(吨)")
private String ybgfczl;
/**绝干泥量*/
@ApiModelProperty(value = "绝干泥量(吨)")
private String jgwnl;
/**危险废物产生量*/
@ApiModelProperty(value = "危险废物产生量(吨)")
private String wfcsl;
/**危险废物处置量*/
@ApiModelProperty(value = "危险废物处置量(吨)")
private String wfczl;
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 月度生产数据报表
*/
@Data
@ApiModel(value="生产运营--运营数据", description="生产运营--月度生产数据报表")
public class ProductDataVO {
@ApiModelProperty(value = "去年")
private String lastYear;
@ApiModelProperty(value = "水务厂站数量")
private String deptartCount;
@ApiModelProperty(value = "收费水量")
private BigDecimal chargeWaterVolume;//收费水量9854.012552万吨
@ApiModelProperty(value = "收费水量-日均值")
private BigDecimal avgDayWaterVolume;//平均108.29万吨/天
@ApiModelProperty(value = "收费水量-同比增长")
private BigDecimal chargeWaterRatio;
@ApiModelProperty(value = "收费水量-完成率")
private BigDecimal completeRatio;
@ApiModelProperty(value = "序时进度")
private String sequentialProgress;
@ApiModelProperty(value = "实际处理水量")
private BigDecimal ysjslWaterVolume;
@ApiModelProperty(value = "实际处理水量-日均值")
private BigDecimal avgYsjslWaterVolume;//平均99.76万吨/天
@ApiModelProperty(value = "实际处理水量--同比增长")
private BigDecimal ysjslWaterRatio;
@ApiModelProperty(value = "药量目标")
private String targetDrug;
@ApiModelProperty(value = "药剂实际费用")
private String drugCost;//实际发生为0.219元/吨水
@ApiModelProperty(value = "实际水量同比下降--水务公司列表")
private List<FReportWaterMonthDataVO> waterDeptartList = new ArrayList<>();
@ApiModelProperty(value = "实际水量同比下降--水务公司名单")
private String waterDeptartName;
@ApiModelProperty(value = "水电耗高于控制目标--水务公司列表")
private List<FReportPowerMonthDataVO> powerDeptartList = new ArrayList<>();
@ApiModelProperty(value = "水电耗高于控制目标--水务公司列表")
private String powerDeptartName;
@ApiModelProperty(value = "药剂成本高于控制目标--水务公司列表")
private List<FReportPowerMonthDataVO> drugDeptartList = new ArrayList<>();
@ApiModelProperty(value = "药剂成本高于控制目标--水务公司列表")
private String drugDeptartName;
@ApiModelProperty(value = "季度最后一天")
private String seansonEndDay;
@ApiModelProperty(value = "隐患部门数")
private Integer dangerDeptCount;
@ApiModelProperty(value = "隐患部门名称")
private String dangerDeptNames;
public String getWaterDeptartName() {
return getDeptName(waterDeptartList);
}
public String getPowerDeptartName() {
return getDeptName2(powerDeptartList);
}
public String getDrugDeptartName() {
return getDeptName2(drugDeptartList);
}
private String getDeptName(List<FReportWaterMonthDataVO> deptartList){
String deptName = "";
if( deptartList != null && !deptartList.isEmpty() ){
for(FReportWaterMonthDataVO dataVO : deptartList){
if(deptName.length() > 0 ) deptName+="、";
deptName += dataVO.getDeptartName();
}
}
return deptName;
}
private String getDeptName2(List<FReportPowerMonthDataVO> deptartList){
String deptName = "";
if( deptartList != null && !deptartList.isEmpty() ){
for(FReportPowerMonthDataVO dataVO : deptartList){
if(deptName.length() > 0 ) deptName+="、";
deptName += dataVO.getDeptartName();
}
}
return deptName;
}
}
package com.skua.modules.report.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
/**
* 季度时间
* @auther kangwei
* @create 2024-10-14-11:49
*/
@Data
public class SeasonTimeVO {
@ApiModelProperty(value = "年")
private Integer year;
@ApiModelProperty(value = "季度")
private Integer season;
@ApiModelProperty(value = "季度开始时间")
private String startTime;
@ApiModelProperty(value = "季度结束时间")
private String endTime;
@ApiModelProperty(value = "季度天数")
private String disparityDay;
public SeasonTimeVO(){
}
public SeasonTimeVO(Integer year, Integer season) {
this.year = year;
this.season = season;
this.getTimeBySeason(year,season);
}
public void getTimeBySeason(int year,int season){
int startMonth = 0;
int endMonth = 0;
switch (season) {
case 1:
startMonth = 1;
endMonth = 3;
break;
case 2:
startMonth = 4;
endMonth = 6;
break;
case 3:
startMonth = 7;
endMonth = 9;
break;
case 4:
startMonth = 10;
endMonth = 12;
break;
default:
System.out.println("季度输入无效,请输入1-4之间的数字。");
}
LocalDate startDate = LocalDate.of(year, startMonth, 1);
LocalDate endDate = LocalDate.of(year, endMonth, startDate.lengthOfMonth());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
this.startTime = startDate.format(formatter);;
this.endTime = endDate.format(formatter); ;
long daysBetween = daysBetween(startDate, endDate);
this.disparityDay = daysBetween+"";
}
public static long daysBetween(LocalDate startDate, LocalDate endDate) {
return ChronoUnit.DAYS.between(startDate, endDate);
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!