a46cc2b6 康伟

kangwei: 1 药剂采购分析: /web/erp/purchaseAnalysis/analysis

         3 指挥中心-设备维修维护费用统计   /v1/algorithm/commandCentre/statisticsBySbwx
         4 药耗分析: /v1/algorithm/commandCentre/statisticsByYhfx
         5 指挥中心-能耗分析(新) /v1/algorithm/commandCentre/statisticsByElectricity
         6 消减量:/v1/algorithm/commandCentre/xjlByTbHb
1 个父辈 789b1431
......@@ -138,6 +138,7 @@ public class JSUtils {
Double aDouble = executeExpression( expression );
DecimalFormat df = new DecimalFormat(decimalFormat);
result = df.format(aDouble);
result = convertStringToInt(result);//去掉.00后缀
}catch(Exception e ){
// e.printStackTrace();
}
......
......@@ -365,23 +365,52 @@ public class ReportItemvService {
return sql ;
}
/***
* 能耗分析*(新)
* @param departIds
* @param startDate
* @param endDate
* @return
*/
public List<FRportlCommandCenterVO> statisticsByElectricityNew(String departIds, String startDate, String endDate) {
//出水量:+同比+环比
ReportItemVO csl_reportVO = ReportViewUtil.getSumValueByTBHB(ReportConstant.view2119,ReportConstant.field_CSL, departIds, startDate, endDate);
//总药耗:value ; 同比 环比
ReportItemVO zyhReportVO = ReportViewUtil.getSumValueByTBHB( ReportConstant.view3a24, "DLHJ", departIds, startDate,endDate);
//日均药耗 value ,同比,环比
ReportItemVO zyhReportAVG = ReportViewUtil.getSumValueByTBHB( ReportConstant.view3a24, "DLHJ", departIds, startDate,endDate,"avg");
//出水量:+同比+环比
ReportItemVO csl_avg_reportVO = ReportViewUtil.getSumValueByTBHB(ReportConstant.view2119,ReportConstant.field_CSL, departIds, startDate, endDate);
List<FRportlCommandCenterVO> dataList = new ArrayList<>();
dataList.add( new FRportlCommandCenterVO("月总电耗" ,"monthValue","万吨",JSUtils.divide(zyhReportVO.getValue(),"10000"),JSUtils.divide(zyhReportVO.getValueTb(),"10000"),JSUtils.divide(zyhReportVO.getValueHb(),"10000")) );
dataList.add( new FRportlCommandCenterVO("吨水电费" ,"dsdfValue","kwh/t",JSUtils.divide(zyhReportAVG.getValue(),"10000"),JSUtils.divide(zyhReportAVG.getValueTb(),"10000"),JSUtils.divide(zyhReportAVG.getValueHb(),"10000")) );
dataList.add( new FRportlCommandCenterVO("吨水电耗" ,"dsdhValue","kwh/t",JSUtils.divide(zyhReportVO.getValue(), csl_reportVO.getValue()),JSUtils.divide(zyhReportVO.getValueTb(), csl_reportVO.getValueTb()),JSUtils.divide(zyhReportVO.getValueHb(), csl_reportVO.getValueHb())) );
return dataList;
}
/***
* 药耗分析
* @param departIds
* @param startDate
* @param endDate
* @return
*/
public List<FRportlCommandCenterVO> statisticsByYh(String departIds, String startDate, String endDate) {
//出水量:+同比+环比
ReportItemVO csl_reportVO = ReportViewUtil.getSumValueByTBHB(ReportConstant.view2119,ReportConstant.field_CSL, departIds, startDate, endDate);
//总药耗:value ; 同比 环比
ReportItemVO zyhReportVO = ReportViewUtil.getSumValueByTBHB( ReportConstant.view3a24,ReportConstant.fieldYj, departIds, startDate,endDate);
//日均药耗 value ,同比,环比
//日均 value ,同比,环比
ReportItemVO zyhReportAVG = ReportViewUtil.getSumValueByTBHB( ReportConstant.view3a24,ReportConstant.fieldYj, departIds, startDate,endDate,"avg");
//计算药耗
DrugConsumptionDisplayVO displayVO = new DrugConsumptionDisplayVO(ConvertUtils.getDouble(csl_reportVO.getValue(),0d) , ConvertUtils.getDouble(csl_reportVO.getValueHb(),0d), ConvertUtils.getDouble(csl_reportVO.getValueTb(),0d),
ConvertUtils.getDouble(zyhReportVO.getValue(),0d), ConvertUtils.getDouble(zyhReportVO.getValueHb(),0d), ConvertUtils.getDouble(zyhReportVO.getValueTb(),0d));
List<FRportlCommandCenterVO> dataList = new ArrayList<>();
dataList.add( new FRportlCommandCenterVO("月总药耗" ,zyhReportVO.getValue(),zyhReportVO.getValueTb(),zyhReportVO.getValueHb()) );
dataList.add( new FRportlCommandCenterVO("日均药耗" ,zyhReportAVG.getValue(),zyhReportAVG.getValueTb(),zyhReportAVG.getValueHb()) );
dataList.add( new FRportlCommandCenterVO("吨水药耗" ,displayVO.getDsyh()+"",displayVO.getTbqndsyh()+"",displayVO.getHbsydsyh()+"") );
return null;
dataList.add( new FRportlCommandCenterVO("月总药耗" ,"monthValue","万吨",JSUtils.divide(zyhReportVO.getValue(),"10000"),JSUtils.divide(zyhReportVO.getValueTb(),"10000"),JSUtils.divide(zyhReportVO.getValueHb(),"10000")) );
dataList.add( new FRportlCommandCenterVO("吨水药费" ,"dsyfValue","元/吨",JSUtils.divide(zyhReportAVG.getValue(),"10000"),JSUtils.divide(zyhReportAVG.getValueTb(),"10000"),JSUtils.divide(zyhReportAVG.getValueHb(),"10000")) );
dataList.add( new FRportlCommandCenterVO("吨水药耗" ,"dsyhValue","kg/吨",JSUtils.divide(zyhReportVO.getValue(), csl_reportVO.getValue()),JSUtils.divide(zyhReportVO.getValueTb(), csl_reportVO.getValueTb()),JSUtils.divide(zyhReportVO.getValueHb(), csl_reportVO.getValueHb())) );
return dataList;
}
}
......
package com.skua.modules.dataAnalysis.controller;
/**
* @auther kangwei
* @create 2025-02-20-10:27
*/
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.context.BaseContextHandler;
import com.skua.modules.algorithm.service.impl.ReportItemvService;
import com.skua.modules.custom.service.IFCustomReportDatasetService;
import com.skua.modules.report.vo.FRportlCommandCenterVO;
import com.skua.modules.report.vo.ReportItemvParam;
import com.skua.modules.report.vo.largeScreen.ResultNumberVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
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.util.List;
/**
* 报表数据分析
*/
@Slf4j
@Api(tags="报表数据分析")
@RestController
@RequestMapping("/v1/dataAnalysis")
public class DataAnalysisController {
@Autowired
private ReportItemvService reportItemvService;
@Autowired
private IFCustomReportDatasetService reportDatasetService;
}
......@@ -5,6 +5,7 @@ import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.context.BaseContextHandler;
import com.skua.core.util.ConvertUtils;
import com.skua.modules.custom.service.IFCustomReportDatasetService;
import com.skua.modules.dataAnalysis.service.ICommandCentreService;
import com.skua.modules.algorithm.service.impl.ReportItemvService;
import com.skua.modules.algorithm.vo.DepartLoadRateResultVO;
......@@ -17,12 +18,14 @@ import com.skua.modules.report.vo.DepartDrugResult;
import com.skua.modules.report.vo.FRportlCommandCenterVO;
import com.skua.modules.report.vo.ReportDateTrendVO;
import com.skua.modules.report.vo.ReportItemvParam;
import com.skua.modules.report.vo.largeScreen.ResultNumberVO;
import com.skua.modules.system.service.ISysFactoryInfoService;
import com.skua.tool.util.DateUtils;
import com.skua.tool.util.JSUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -51,6 +54,9 @@ public class SysCommandCentreController {
private ICommandCentreService commandCentreService;
@Autowired
private ReportItemvService reportItemvService;
@Autowired
private IFCustomReportDatasetService reportDatasetService;
/**
* 分页列表查询
......@@ -156,7 +162,33 @@ public class SysCommandCentreController {
result.setResult(dataList );
return result;
}
@AutoLog(value = "消减量(同比、环比)")
@ApiOperation(value="消减量(同比、环比)", notes="消减量(同比、环比)")
@GetMapping(value = "/xjlByTbHb")
public Result<List<ResultNumberVO>> queryXjlByTbHb(String departId , String startDate, String endDate) {
Result<List<ResultNumberVO>> result = new Result();
String departIds = departId;
if(StringUtils.isEmpty(departId)){
departIds = BaseContextHandler.getDeparts();
}
List<ResultNumberVO> dataList = reportDatasetService.queryXjlByTbHb(departId,startDate,endDate);
result.setResult(dataList);
return result;
}
@AutoLog(value = "指挥中心-药耗分析")
@ApiOperation(value="指挥中心-药耗分析", notes="指挥中心-药耗分析")
@GetMapping(value = "/statisticsByYhfx")
public Result<List<FRportlCommandCenterVO>> statisticsByYh(ReportItemvParam reportItemvParam) {
Result<List<FRportlCommandCenterVO>> result = new Result();
String departId = BaseContextHandler.getDeparts();
if(reportItemvParam.getDepartIds()!=null){
departId = reportItemvParam.getDepartIds();
}
List<FRportlCommandCenterVO> dataList = reportItemvService.statisticsByYh(departId,reportItemvParam.getStartDate(),reportItemvParam.getEndDate());
result.setResult(dataList);
return result;
}
//cement水泥 electricity
@AutoLog(value = "指挥中心-能耗分析")
......@@ -172,21 +204,21 @@ public class SysCommandCentreController {
result.setResult(dataList );
return result;
}
@AutoLog(value = "指挥中心-药耗分析")
@ApiOperation(value="指挥中心-药耗分析", notes="指挥中心-药耗分析")
@GetMapping(value = "/statisticsByYh")
public Result<List<FRportlCommandCenterVO>> statisticsByYh(ReportItemvParam reportItemvParam) {
@AutoLog(value = "指挥中心-能耗分析(新)")
@ApiOperation(value="指挥中心-能耗分析(新)", notes="指挥中心-能耗分析(新)")
@GetMapping(value = "/statisticsByElectricity")
public Result<List<FRportlCommandCenterVO>> statisticsByElectricityNew(ReportItemvParam reportItemvParam) {
Result<List<FRportlCommandCenterVO>> result = new Result();
String departId = BaseContextHandler.getDeparts();
if(reportItemvParam.getDepartIds()!=null){
departId = reportItemvParam.getDepartIds();
}
List<FRportlCommandCenterVO> dataList = reportItemvService.statisticsByYh(departId,reportItemvParam.getStartDate(),reportItemvParam.getEndDate());
result.setResult(dataList);
List<FRportlCommandCenterVO> dataList = reportItemvService.statisticsByElectricityNew(departId,reportItemvParam.getStartDate(),reportItemvParam.getEndDate());
result.setResult(dataList );
return result;
}
@AutoLog(value = "指挥中心-能耗分析")
@ApiOperation(value="指挥中心-能耗分析--详情列表", notes="指挥中心-能耗分析--详情列表")
@GetMapping(value = "/statisticsByElectricityList")
......
......@@ -136,7 +136,10 @@ public class CommandCentreServiceImpl implements ICommandCentreService {
startDate = startDate+" 00:00:00";
endDate = endDate+" 23:59:59";
String sql = "select round( ifnull(sum( er.total_cost),0) ,2) 'cost' from equipment_repair er where er.reality_maintenance_end_time >='"+startDate+"' and er.reality_maintenance_end_time <='"+endDate+"'";
String totalCost = getJdbcTemplate().queryForObject(sql,String.class);
String repairCost = getJdbcTemplate().queryForObject(sql,String.class);//维修费用
sql = "select round( ifnull(sum( t.maintenance_cost),0) ,2) 'cost' from equipment_maintain_task t where t.real_end_time >='"+startDate+"' and t.real_end_time <='"+endDate+"'";
String maintainCost = getJdbcTemplate().queryForObject(sql,String.class);//维护费用
sql = "select aaa.* from ( select er.depart_id,d.depart_name, ei.equipment_name,er.fault_content,er.fault_library_id ,ei.equipment_level from equipment_repair er ";
sql += " left join equipment_info ei on er.info_id = ei.id ";
sql +=" left join sys_depart d on d.id = er.depart_id";
......@@ -144,7 +147,7 @@ public class CommandCentreServiceImpl implements ICommandCentreService {
sql += " where aaa.equipment_level = '6bf727eb7e7cca6a95c694dab0036b2c'";//A类设备
List<EquipmentRepairAnalysisVO> dataList = getJdbcTemplate().query(sql,new BeanPropertyRowMapper<EquipmentRepairAnalysisVO>(EquipmentRepairAnalysisVO.class));;
dataMap.put("totalCost",totalCost);
dataMap.put("totalCost",JSUtils.multiply(repairCost,maintainCost));
dataMap.put("dataList",dataList);
return dataMap;
}
......
......@@ -27,10 +27,10 @@ import javax.servlet.http.HttpServletRequest;
@RestController("testReportController")
public class TestReportSqlController {
@AutoLog(value = "测试报表")
@ApiOperation(value="测试报表", notes="测试报表")
@GetMapping(value = "/testReportSql")
public Result<String> testReportSql(
@AutoLog(value = "测试报表like")
@ApiOperation(value="测试报表like", notes="测试报表")
@GetMapping(value = "/testReportLikeSql")
public Result<String> testReportLikeSql(
@RequestParam(name="reportId") String reportId,
@RequestParam(name="fields") String fields,
@RequestParam(name="departIds") String departIds ,
......@@ -43,4 +43,21 @@ public class TestReportSqlController {
result.setResult(dataViewName2);
return result;
}
@AutoLog(value = "测试报表")
@ApiOperation(value="测试报表", notes="测试报表")
@GetMapping(value = "/testReportSql")
public Result<String> testReportSql(
@RequestParam(name="reportId") String reportId,
@RequestParam(name="fields") String fields,
@RequestParam(name="departIds") String departIds ,
@RequestParam(name="startTime") String startTime,
@RequestParam(name="endTime") String endTime,
HttpServletRequest req) {
Result<String> result = new Result();
String dataViewName2 = ReportViewUtil.buildView(reportId,fields,departIds, startTime, endTime);
result.setSuccess(true);
result.setResult(dataViewName2);
return result;
}
}
......
package com.skua.modules.erp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.context.SpringContextUtils;
......@@ -15,11 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.core.JdbcTemplate;
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;
/**
* 采购数据分析
* @auther kangwei
......
......@@ -16,6 +16,15 @@ import com.skua.modules.report.vo.largeScreen.ResultNumberVO;
*/
public interface IFCustomReportDatasetService extends IService<FCustomReportDataset> {
/***
* 消减量同比环比
* @param departIds
* @param startDate
* @param endDate
* @return
*/
public List<ResultNumberVO> queryXjlByTbHb(String departIds, String startDate,String endDate);
/**
* <pre>
* 获取填报报表数据集
......
......@@ -415,16 +415,21 @@ public class FCustomReportDatasetServiceImpl extends ServiceImpl<FCustomReportDa
public List<ResultNumberVO> jnhbLargeScreenShowResultNumber(String departIds, String time){
long startTime = System.currentTimeMillis();
DateVO dataVO = new DateVO(time);
return queryXjlByTbHb(departIds,dataVO.getNowMonthStartDate(),dataVO.getNowMonthEndDate());
}
public List<ResultNumberVO> queryXjlByTbHb(String departIds, String startDate,String endDate){
long startTime = System.currentTimeMillis();
List<ResultNumberVO> reduceStatisticsList = new ArrayList<>(4);
//头部统计数据
JnhbReportData nowMonthData = getJnhbReportSumDataByResultNumber(departIds,dataVO.getNowMonthStartDate(),dataVO.getNowMonthEndDate());
JnhbReportData lastMonthData = getJnhbReportSumDataByResultNumber(departIds,dataVO.getLastMonthStartTime(),dataVO.getLastMonthEndTime());
JnhbReportData lastYearMonthData = getJnhbReportSumDataByResultNumber(departIds,dataVO.getLastYearMonthStartTime(),dataVO.getLastYearMonthEndTime());
JnhbReportData valueData = getJnhbReportSumDataByResultNumber(departIds,startDate,endDate);
JnhbReportData valueHbDate = getJnhbReportSumDataByResultNumber(departIds,DateUtils.getHbDate(startDate),DateUtils.getHbDate(endDate));
JnhbReportData valueTbData = getJnhbReportSumDataByResultNumber(departIds,DateUtils.getTbDate(startDate),DateUtils.getTbDate(endDate));
//ResultNumberVO(tring name, String unit, String value, String valueTb, String valueHb)
reduceStatisticsList.add( new ResultNumberVO( "COD", "吨",nowMonthData.getCodxjl(),lastMonthData.getCodxjl(),lastYearMonthData.getCodxjl() ) );//COD消减量(吨) codxjl
reduceStatisticsList.add( new ResultNumberVO( "NH₃-N","吨",nowMonthData.getAdxjl(),lastMonthData.getAdxjl(),lastYearMonthData.getAdxjl() ));//NH3-N消减量(吨)adxjl
reduceStatisticsList.add( new ResultNumberVO( "TP","吨",nowMonthData.getTpxjl(),lastMonthData.getTpxjl(),lastYearMonthData.getTpxjl() ));//TP消减量(吨)tpxjl
reduceStatisticsList.add( new ResultNumberVO( "TN","吨",nowMonthData.getTnxjl(),lastMonthData.getTnxjl(),lastYearMonthData.getTnxjl() ));//TN消减量(吨)tnxjl
reduceStatisticsList.add( new ResultNumberVO( "COD", "吨",valueData.getCodxjl(),valueTbData.getCodxjl(),valueHbDate.getCodxjl() ) );//COD消减量(吨) codxjl
reduceStatisticsList.add( new ResultNumberVO( "NH₃-N","吨",valueData.getAdxjl(),valueTbData.getAdxjl(),valueHbDate.getAdxjl() ));//NH3-N消减量(吨)adxjl
reduceStatisticsList.add( new ResultNumberVO( "TP","吨",valueData.getTpxjl(),valueTbData.getTpxjl(),valueHbDate.getTpxjl() ));//TP消减量(吨)tpxjl
reduceStatisticsList.add( new ResultNumberVO( "TN","吨",valueData.getTnxjl(),valueTbData.getTnxjl(),valueHbDate.getTnxjl() ));//TN消减量(吨)tnxjl
long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime;
......@@ -432,6 +437,7 @@ public class FCustomReportDatasetServiceImpl extends ServiceImpl<FCustomReportDa
return reduceStatisticsList;
}
@Override
public List<Map<String, Object>> querySzYynbReport(String dataViewName2119, String startTime, String endTime, String departId) {
List<Map<String, Object>> list = mapper.querySzYynbReport(dataViewName2119, startTime, endTime, departId);
......
......@@ -12,8 +12,14 @@ import java.io.Serializable;
@Data
@ApiModel(value="控制中心报表结果接收对象", description="控制中心报表结果接收对象")
public class FRportlCommandCenterVO implements Serializable {
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "label描述")
private String label;
@ApiModelProperty(value = "code")
private String code;
@ApiModelProperty(value = "单位")
private String unit;
@ApiModelProperty(value = "结果")
private String value;
......@@ -35,8 +41,17 @@ public class FRportlCommandCenterVO implements Serializable {
this.valueTb = valueTb;
this.valueHb = valueHb;
}
public FRportlCommandCenterVO(String title ,String value, String valueTb, String valueHb) {
this.title = title;
public FRportlCommandCenterVO(String label ,String value, String valueTb, String valueHb) {
this.label = label;
this.value = value;
this.valueTb = valueTb;
this.valueHb = valueHb;
}
public FRportlCommandCenterVO(String label, String code, String unit, String value, String valueTb, String valueHb) {
this.label = label;
this.code = code;
this.unit = unit;
this.value = value;
this.valueTb = valueTb;
this.valueHb = valueHb;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!