Browse Source

排名

develop
bobol 4 months ago
parent
commit
044e39f46d
  1. 15
      lzbi-module/src/main/java/com/lzbi/asset/service/ChargeSystemService.java
  2. 73
      lzbi-module/src/main/java/com/lzbi/bi/controller/DcBusiDataScreenMainController.java
  3. 17
      lzbi-module/src/main/java/com/lzbi/bi/domain/dto/MultiOrgSomeReportEverydayData.java
  4. 4
      lzbi-module/src/main/java/com/lzbi/bi/domain/req/ReportDataReq.java
  5. 16
      lzbi-module/src/main/java/com/lzbi/bi/domain/vo/SomeReportDataRankingVO.java
  6. 20
      lzbi-module/src/main/java/com/lzbi/bi/mapper/DcBusiDataScreenMainMapper.java
  7. 9
      lzbi-module/src/main/java/com/lzbi/bi/mapper/ScreenMockDataMapper.java
  8. 127
      lzbi-module/src/main/java/com/lzbi/bi/service/DcBusiDataScreenMainService.java
  9. 27
      lzbi-module/src/main/java/com/lzbi/bill/service/DcBusiMonthPlanBillMasterService.java
  10. 40
      lzbi-module/src/main/resources/mapper/DcBusiDataScreenMainMapper.xml

15
lzbi-module/src/main/java/com/lzbi/asset/service/ChargeSystemService.java

@ -22,7 +22,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@ -76,16 +75,15 @@ public class ChargeSystemService {
params.setGoalSource(BizConstants.GoalSource.CHARGE);
List<DcBaseAssetContrastConfig> dcBaseAssetContrastConfigs = dcBaseAssetContrastConfigMapper.selectDcBaseAssetContrastConfigList();
if (CollectionUtils.isEmpty(dcBaseAssetContrastConfigs)) {
log.warn("系统中未配置统计单元与外部资产对照关系");
log.error("系统中未配置统计单元与外部资产对照关系");
return;
}
RestTemplate restTemplate = new RestTemplateBuilder()
.setConnectTimeout(Duration.ofMinutes(5))
.setReadTimeout(Duration.ofMinutes(5))
.setConnectTimeout(Duration.ofMinutes(1))
.setReadTimeout(Duration.ofMinutes(20))
.build();
String str = restTemplate.getForObject(magicServerApiConfig.getChargeSystemParams(), String.class);
if (StringUtils.isNotBlank(str)) {
JSONObject jsonObject = JSONObject.parseObject(str);
Integer code = jsonObject.getInteger("code");
@ -95,8 +93,11 @@ public class ChargeSystemService {
log.info("收费系统换热站参数:{}", jsonArray.toJSONString());
this.createParamBill(jsonArray);
}
} else {
log.error("获取收费系统数据失败:{}", str);
}
} else {
log.error("获取收费系统数据失败");
}
}
@ -126,7 +127,7 @@ public class ChargeSystemService {
paramsModelCodeList.add(ParamsModelCodeConstants.开栓已执行);
List<ChargeSystemParamsDTO> targetList = dcBaseAssetTargetMapper.selectChargeAssetContrastParams(paramsModelCodeList);
Map<String, List<ChargeSystemParamsDTO>> goalAssetCodeMap = targetList.stream().collect(Collectors.groupingBy(ChargeSystemParamsDTO::getGoalAssetCode));
Iterator iterator = jsonArray.iterator();
Iterator<Object> iterator = jsonArray.iterator();
while(iterator.hasNext()) {
JSONObject next = (JSONObject) iterator.next();

73
lzbi-module/src/main/java/com/lzbi/bi/controller/DcBusiDataScreenMainController.java

@ -25,6 +25,7 @@ import java.util.Optional;
/**
* 主数据大屏的页面接口
*
* @author : lienbo
* @date : 2024-05-30
*/
@ -32,7 +33,7 @@ import java.util.Optional;
@Api(tags = "主数据大屏的页面接口")
@RestController
@RequestMapping("/assetData/dataScreenMain")
public class DcBusiDataScreenMainController extends BaseController{
public class DcBusiDataScreenMainController extends BaseController {
@Autowired
private DcBusiDataScreenMainService dcBusiDataScreenMainService;
@ -42,6 +43,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 获取某个组织某天的某个图表数据
*
* @param reportDataReq
* @return
*/
@ -52,6 +54,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询下级组织某天的某个图表数据列表
*
* @param reportDataReq
* @return
*/
@ -62,6 +65,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询下级组织某天的某个图表的图形数据
*
* @param reportDataReq
* @return
*/
@ -70,8 +74,20 @@ public class DcBusiDataScreenMainController extends BaseController{
return AjaxResult.success(dcBusiDataScreenMainService.selectChildrenOrgSomedaySomeReportDataEchart(reportDataReq));
}
/**
* 查询下级组织某天的某个图表的图形数据
*
* @param reportDataReq
* @return
*/
@PostMapping("/getChildrenOrgSomedaySomeReportDataEchartHaveOrgId")
public AjaxResult selectChildrenOrgSomedaySomeReportDataEchartHaveOrgId(@Validated @RequestBody ReportDataReq reportDataReq) {
return AjaxResult.success(dcBusiDataScreenMainService.selectChildrenOrgSomedaySomeReportDataEchartHaveOrgId(reportDataReq));
}
/**
* 查询某组织某天的多个图表数据列表
*
* @param reportDataReq
* @return
*/
@ -82,6 +98,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询某类型的下级组织某天的多图表数据--多柱形图
*
* @param reportDataReq
* @return
*/
@ -92,6 +109,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询下级组织某天的某个图表的堆叠图形数据
*
* @param reportDataReq
* @return
*/
@ -102,6 +120,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询某组织某个图表年度数据列表
*
* @param reportDataReq
* @return
*/
@ -112,6 +131,7 @@ public class DcBusiDataScreenMainController extends BaseController{
/**
* 查询地图上的组织列表
*
* @param reportDataReq
* @return
*/
@ -120,6 +140,17 @@ public class DcBusiDataScreenMainController extends BaseController{
return AjaxResult.success(dcBusiDataScreenMainService.selectMapOrgList(reportDataReq));
}
/**
* 查询下级组织某个图表的排名列表
*
* @param reportDataReq
* @return
*/
@PostMapping("/getChildrenOrgSomeReportDataRankingList")
public AjaxResult selectSomeReportDataRankingList(@Validated @RequestBody ReportDataReq reportDataReq) {
return AjaxResult.success(dcBusiDataScreenMainService.selectSomeReportDataRankingList(reportDataReq));
}
/**
* 获取天气信息
*/
@ -131,35 +162,37 @@ public class DcBusiDataScreenMainController extends BaseController{
String yikeapiAppid;
@Value("${luenmeilz.yikeapiAppsecret}")
String yikeapiAppsecret;
@GetMapping("/weather/{areaCode}")
public AjaxResult getWeather(@PathVariable String areaCode){
JSONObject ret=new JSONObject();
String url=StrUtil.format("https://v1.yiketianqi.com/free/week?city=沈阳&unescape=1&appid={}&appsecret={}",yikeapiAppid,yikeapiAppsecret);
JSONObject weather=JSONObject.parseObject(HttpUtil.get(url));
JSONArray weatherInfo=Optional.ofNullable(weather.getJSONArray("data")).orElse(new JSONArray());
public AjaxResult getWeather(@PathVariable String areaCode) {
JSONObject ret = new JSONObject();
String url = StrUtil.format("https://v1.yiketianqi.com/free/week?city=沈阳&unescape=1&appid={}&appsecret={}", yikeapiAppid, yikeapiAppsecret);
JSONObject weather = JSONObject.parseObject(HttpUtil.get(url));
log.debug("天气接口返回数据:{}", weather);
JSONArray weatherInfo = Optional.ofNullable(weather.getJSONArray("data")).orElse(new JSONArray());
if (null != weatherInfo && !weatherInfo.isEmpty()) {
JSONArray we_date=new JSONArray();
JSONArray we_name=new JSONArray();
JSONArray tem_day=new JSONArray();
JSONArray tem_night=new JSONArray();
JSONArray we_date = new JSONArray();
JSONArray we_name = new JSONArray();
JSONArray tem_day = new JSONArray();
JSONArray tem_night = new JSONArray();
we_date.add("天气日期:");
we_name.add("天气情况:");
tem_day.add("日间气温:");
tem_night.add("夜间气温:");
weatherInfo.forEach(item->{
JSONObject jsb=JSONObject.from(item);
weatherInfo.forEach(item -> {
JSONObject jsb = JSONObject.from(item);
we_date.add(jsb.getString("date"));
tem_day.add(jsb.getString("tem_day"));
tem_night.add(jsb.getString("tem_night"));
we_name.add(jsb.getString("wea"));
});
JSONArray list=new JSONArray();
JSONArray list = new JSONArray();
list.add(we_date);
list.add(tem_day);
list.add(tem_night);
list.add(we_name);
ret.put("source",list);
ret.put("realwe",weatherInfo.get(0));
ret.put("source", list);
ret.put("realwe", weatherInfo.get(0));
} else {
log.error("天气接口未返回数据");
}
@ -167,18 +200,18 @@ public class DcBusiDataScreenMainController extends BaseController{
}
@PostMapping("/mapInfo")
public AjaxResult getMapInfo(@RequestBody ReportDataReq vo){
public AjaxResult getMapInfo(@RequestBody ReportDataReq vo) {
return AjaxResult.success(dcBusiDataScreenMainService.getMapInfo(vo));
}
@GetMapping("/company/tree/{depId}")
public AjaxResult getCompanyTreeList(@Nullable @PathVariable Long depId){
if(depId==0){
depId=null;
public AjaxResult getCompanyTreeList(@Nullable @PathVariable Long depId) {
if (depId == 0) {
depId = null;
}
List<SysDept> lsysDept = sysDeptService.selectCompany(depId);
List<TreeSelect> treeSelects = sysDeptService.buildDeptTreeSelect(lsysDept);
return AjaxResult.success( treeSelects) ;
return AjaxResult.success(treeSelects);
}
}

17
lzbi-module/src/main/java/com/lzbi/bi/domain/dto/MultiOrgSomeReportEverydayData.java

@ -1,2 +1,17 @@
package com.lzbi.bi.domain.dto;public class MultiOrgSomeReportEverydayData {
package com.lzbi.bi.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* 多组织某个图标每一天的数据
*/
@Data
public class MultiOrgSomeReportEverydayData {
private Long orgId;
private String orgName;
private String date;
private BigDecimal value;
}

4
lzbi-module/src/main/java/com/lzbi/bi/domain/req/ReportDataReq.java

@ -44,4 +44,8 @@ public class ReportDataReq {
private String orgType;
private String heatingStartDate;
private String heatingEndDate;
}

16
lzbi-module/src/main/java/com/lzbi/bi/domain/vo/SomeReportDataRankingVO.java

@ -2,12 +2,22 @@ package com.lzbi.bi.domain.vo;
import lombok.Data;
/**
* 某个图标数据排名
*/
@Data
public class ChildrenOrgReportDataRankingVO {
public class SomeReportDataRankingVO {
/**
* 日期
*/
private String cdate;
/**
* 名称集
*/
private String cname;
/**
* 数据集
*/
private String cut;
}

20
lzbi-module/src/main/java/com/lzbi/bi/mapper/DcBusiDataScreenMainMapper.java

@ -3,16 +3,14 @@ package com.lzbi.bi.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lzbi.bi.domain.DcBusiDataScreenDto;
import com.lzbi.bi.domain.dto.MultiOrgSomedaySomeParamSummarizingDataDTO;
import com.lzbi.bi.domain.dto.SomeOrgSomedayMultiReportDataDTO;
import com.lzbi.bi.domain.dto.SomeOrgSomedaySomeParamSummarizingDataDTO;
import com.lzbi.bi.domain.dto.SomeTypeChildrenOrgSomedayMultiReportDataDTO;
import com.lzbi.bi.domain.dto.*;
import com.lzbi.bi.domain.req.ReportDataReq;
import com.lzbi.bi.domain.req.ParamSummarizingDataReq;
import com.lzbi.bi.domain.vo.ChildrenOrgSomedaySomeReportDataVO;
import com.lzbi.bi.domain.vo.MapOrgVO;
import com.lzbi.bi.domain.vo.SomeOrgSomeReportYearlyDataVO;
import com.lzbi.bi.domain.vo.SomeOrgSomedaySomeReportDataVO;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@ -88,4 +86,18 @@ public interface DcBusiDataScreenMainMapper extends BaseMapper<DcBusiDataScreenD
* @return
*/
MultiOrgSomedaySomeParamSummarizingDataDTO selectMultiOrgSomedaySomeParamSummarizingData(ParamSummarizingDataReq paramSummarizingDataReq);
/**
* 查询某组织下的换热站数量
* @param orgId
* @return
*/
Integer selectSomeOrgHeatExchangeStationCount(@Param("orgId") Long orgId);
/**
* 查询下级部门某图表每天的数据
* @param reportDataReq
* @return
*/
List<MultiOrgSomeReportEverydayData> selectChildOrgSomeReportEverydayDataList(ReportDataReq reportDataReq);
}

9
lzbi-module/src/main/java/com/lzbi/bi/mapper/ScreenMockDataMapper.java

@ -1,6 +1,7 @@
package com.lzbi.bi.mapper;
import com.alibaba.fastjson2.JSONObject;
import com.lzbi.bi.domain.req.ParamSummarizingDataReq;
import com.lzbi.bi.domain.vo.MapOrgVO;
import com.lzbi.common.constant.BizConstants;
import com.lzbi.bi.domain.dto.SomeOrgSomedayMultiReportDataDTO;
@ -180,4 +181,12 @@ public class ScreenMockDataMapper {
result.add(new MapOrgVO(214L, "沈阳国惠低碳", BigDecimal.valueOf(1134)));
return result;
}
public BigDecimal selectSomeOrgSomedaySomeParamSummarizingData(ParamSummarizingDataReq paramSummarizingDataReq) {
return BigDecimal.valueOf(1000);
}
public int selectSomeOrgHeatExchangeStationCount(Long orgId) {
return 50;
}
}

127
lzbi-module/src/main/java/com/lzbi/bi/service/DcBusiDataScreenMainService.java

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lzbi.bi.domain.DcBusiDataScreenDto;
import com.lzbi.bi.domain.SysDeptLocation;
import com.lzbi.bi.domain.dto.MultiOrgSomeReportEverydayData;
import com.lzbi.bi.domain.dto.SomeOrgSomedaySomeParamSummarizingDataDTO;
import com.lzbi.bi.domain.req.ParamSummarizingDataReq;
import com.lzbi.bi.domain.vo.*;
@ -24,6 +25,7 @@ import com.lzbi.common.utils.bean.BeanUtils;
import com.lzbi.draft.domain.vo.*;
import com.lzbi.draft.service.DcBusiTargetDraftDaynewService;
import com.lzbi.system.service.ISysDeptService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -54,23 +56,23 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
private DcBusiTargetDraftDaynewService dcBusiTargetDraftDaynewService;
// @Resource
// private ScreenMockDataMapper baseMapper;
private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
/**
* 供暖起始日期--月日
*/
private static final String HEATING_START_DATE = "11-01";
private static final String HEATING_START_DATE = "-11-01";
/**
* 供暖结束日期--月日
*/
private static final String HEATING_END_DATE = "03-31";
private static final String HEATING_END_DATE = "-03-31";
/**
* 非供暖起始日期--月日
*/
private static final String NO_HEATING_START_DATE = "04-01";
private static final String NO_HEATING_START_DATE = "-04-01";
/**
* 非供暖结束日期--月日
*/
private static final String NO_HEATING_END_DATE = "10-31";
private static final String NO_HEATING_END_DATE = "-10-31";
private static final String GRMJ = "供热面积";
private static final String LWMJ = "联网面积";
@ -78,7 +80,6 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
private static final String RY = "热源";
private static final String HRZ = "换热站";
private static final String ZMJ = "总面积";
private static final String ZYH = "总用户";
private static final List<String> SPECIAL_REPORT_LIST;
static {
@ -89,7 +90,6 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
SPECIAL_REPORT_LIST.add(RY);
SPECIAL_REPORT_LIST.add(HRZ);
SPECIAL_REPORT_LIST.add(ZMJ);
SPECIAL_REPORT_LIST.add(ZYH);
}
/**
@ -120,7 +120,6 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
value = baseMapper.selectSomeOrgSomedaySomeParamSummarizingData(paramSummarizingDataReq);
break;
case AQGR:
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String dateStr = reportDataReq.getDateYear() + "-" + reportDataReq.getDateMonth() + "-" + reportDataReq.getDateDay();
LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter);
int year = date.getYear();
@ -134,21 +133,28 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
LocalDate heatingEndDate = LocalDate.parse(heatingEndDateStr, dateTimeFormatter);
// 如果在非供暖期,就是获取最大值
if (date.isBefore(noHeatingEndDate) && date.isAfter(noHeatingStartDate)) {
long daysDiff = ChronoUnit.DAYS.between(heatingEndDate, heatingStartDate);
value = BigDecimal.valueOf(daysDiff);
long daysDiff = ChronoUnit.DAYS.between(heatingStartDate, heatingEndDate);
value = BigDecimal.valueOf(daysDiff + 1);
} else {
long daysDiff = ChronoUnit.DAYS.between(date, heatingStartDate);
value = BigDecimal.valueOf(daysDiff);
if (date.isAfter(noHeatingEndDate)) {
heatingStartDateStr = year + HEATING_START_DATE;
heatingStartDate = LocalDate.parse(heatingStartDateStr, dateTimeFormatter);
}
long daysDiff = ChronoUnit.DAYS.between(heatingStartDate, date);
value = BigDecimal.valueOf(daysDiff + 1);
}
break;
case RY:
// iSysDeptService.selectCompany()
int ryCount = iSysDeptService.selectSomeTypeChildrenDeptCount(reportDataReq.getOrgId(), BizConstants.DcDeptAttr.HEAT_SOURCE);
value = BigDecimal.valueOf(ryCount);
break;
case HRZ:
int hrzCount = baseMapper.selectSomeOrgHeatExchangeStationCount(reportDataReq.getOrgId());
value = BigDecimal.valueOf(hrzCount);
break;
case ZMJ:
break;
case ZYH:
paramSummarizingDataReq.setTargetModelCode(ParamsModelCodeConstants.开栓已执行);
value = baseMapper.selectSomeOrgSomedaySomeParamSummarizingData(paramSummarizingDataReq);
break;
default:
break;
@ -184,6 +190,28 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
return result;
}
public List<JSONArray> selectChildrenOrgSomedaySomeReportDataEchartHaveOrgId(ReportDataReq reportDataReq) {
List<JSONArray> result = new ArrayList<>();
List<ChildrenOrgSomedaySomeReportDataVO> data = this.selectChildrenOrgSomedaySomeReportDataList(reportDataReq);
if (!CollectionUtils.isEmpty(data)) {
JSONArray head = new JSONArray();
head.add("name");
JSONArray body = new JSONArray();
body.add(reportDataReq.getReportName());
JSONArray idJsonArr = new JSONArray();
idJsonArr.add("orgId");
data.forEach(item -> {
head.add(item.getOrgName());
body.add(item.getValueResult());
idJsonArr.add(item.getOrgId());
});
result.add(head);
result.add(body);
result.add(idJsonArr);
}
return result;
}
public List<JSONArray> selectChildrenOrgSomedaySomeReportDataEchartStacking(ReportDataReq reportDataReq) {
List<JSONArray> result = new ArrayList<>();
List<ChildrenOrgSomedaySomeReportDataVO> data = this.selectChildrenOrgSomedaySomeReportDataList(reportDataReq);
@ -278,6 +306,75 @@ public class DcBusiDataScreenMainService extends ServiceImpl<DcBusiDataScreenMai
return baseMapper.selectMapOrgList(reportDataReq);
}
public List<SomeReportDataRankingVO> selectSomeReportDataRankingList(ReportDataReq reportDataReq) {
List<SomeReportDataRankingVO> result = new ArrayList<>();
this.buildChildrenOrgReportDataReq(reportDataReq);
this.buildHeatingDate(reportDataReq);
List<MultiOrgSomeReportEverydayData> multiOrgSomeReportEverydayDataList = baseMapper.selectChildOrgSomeReportEverydayDataList(reportDataReq);
if (!CollectionUtils.isEmpty(multiOrgSomeReportEverydayDataList)) {
// 排序后的日期列表
List<String> dateSoredList = multiOrgSomeReportEverydayDataList.stream().map(MultiOrgSomeReportEverydayData::getDate).collect(Collectors.toSet()).stream().sorted().collect(Collectors.toList());
// 排序后的组织id列表
List<Long> orgIdSoredList = multiOrgSomeReportEverydayDataList.stream().map(MultiOrgSomeReportEverydayData::getOrgId).collect(Collectors.toSet()).stream().sorted().collect(Collectors.toList());
// 组织map
Map<Long, String> orgMap = multiOrgSomeReportEverydayDataList.stream().collect(Collectors.toMap(MultiOrgSomeReportEverydayData::getOrgId, MultiOrgSomeReportEverydayData::getOrgName, (v1, v2) -> v2));
// 按日期分组的map
Map<String, List<MultiOrgSomeReportEverydayData>> groupDateMap = multiOrgSomeReportEverydayDataList.stream().collect(groupingBy(MultiOrgSomeReportEverydayData::getDate));
dateSoredList.forEach(date -> {
SomeReportDataRankingVO someReportDataRankingVO = new SomeReportDataRankingVO();
someReportDataRankingVO.setCdate(date);
List<MultiOrgSomeReportEverydayData> data = groupDateMap.get(date);
Map<Long, MultiOrgSomeReportEverydayData> orgIdMap = data.stream().collect(Collectors.toMap(MultiOrgSomeReportEverydayData::getOrgId, item -> item, (v1, v2) -> v1));
List<String> orgNameList = new ArrayList<>();
List<BigDecimal> valueList = new ArrayList<>();
orgIdSoredList.forEach(orgId -> {
orgNameList.add(orgMap.get(orgId));
if (orgIdMap.containsKey(orgId)) {
valueList.add(orgIdMap.get(orgId).getValue());
} else {
valueList.add(null);
}
});
someReportDataRankingVO.setCname(StringUtils.join(orgNameList, ","));
someReportDataRankingVO.setCut(StringUtils.join(valueList, ","));
result.add(someReportDataRankingVO);
});
}
return result;
}
/**
* 构建供暖期
* @param reportDataReq
*/
private void buildHeatingDate(ReportDataReq reportDataReq) {
String dateStr = reportDataReq.getDateYear() + "-" + reportDataReq.getDateMonth() + "-" + reportDataReq.getDateDay();
LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter);
int year = date.getYear();
String noHeatingEndDateStr = year + NO_HEATING_END_DATE;
LocalDate noHeatingEndDate = LocalDate.parse(noHeatingEndDateStr, dateTimeFormatter);
String heatingStartDateStr;
String heatingEndDateStr;
if (date.isAfter(noHeatingEndDate)) {
heatingStartDateStr = year + HEATING_START_DATE;
heatingEndDateStr = dateStr;
reportDataReq.setHeatingStartDate(heatingStartDateStr);
reportDataReq.setHeatingEndDate(heatingEndDateStr);
} else {
heatingStartDateStr = (year - 1) + HEATING_START_DATE;
String noHeatingStartDateStr = year + NO_HEATING_START_DATE;
LocalDate noHeatingStartDate = LocalDate.parse(noHeatingStartDateStr, dateTimeFormatter);
if (date.isAfter(noHeatingStartDate)) {
heatingEndDateStr = year + HEATING_END_DATE;
} else {
heatingEndDateStr = dateStr;
}
}
reportDataReq.setHeatingStartDate(heatingStartDateStr);
reportDataReq.setHeatingEndDate(heatingEndDateStr);
}
/**
* 查询某组织某天多图表数据DTO列表
* @param reportDataReq

27
lzbi-module/src/main/java/com/lzbi/bill/service/DcBusiMonthPlanBillMasterService.java

@ -11,7 +11,7 @@ import com.lzbi.common.utils.DateUtils;
import com.lzbi.common.utils.SecurityUtils;
import com.lzbi.draft.domain.DcBusiTargetDraftMonth;
import com.lzbi.draft.mapper.DcBusiTargetDraftMonthMapper;
import com.lzbi.system.service.impl.SysDeptServiceImpl;
import com.lzbi.system.service.ISysDeptService;
import com.lzbi.targetFolder.domain.DcBaseAssetTarget;
import com.lzbi.targetFolder.mapper.DcBaseAssetTargetMapper;
import org.apache.commons.lang3.ObjectUtils;
@ -22,6 +22,8 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 月计划单据Service业务层处理
@ -34,7 +36,7 @@ public class DcBusiMonthPlanBillMasterService extends ServiceImpl<DcBusiMonthPla
{
@Autowired
private SysDeptServiceImpl sysDeptService;
private ISysDeptService sysDeptService;
@Resource
private DcBusiMonthPlanBillSubMapper dcBusiMonthPlanBillSubMapper;
@ -77,7 +79,26 @@ public class DcBusiMonthPlanBillMasterService extends ServiceImpl<DcBusiMonthPla
*/
public List<DcBusiMonthPlanBillMaster> selectDcBusiMonthPlanBillMasterList(DcBusiMonthPlanBillMaster dcBusiMonthPlanBillMaster)
{
return baseMapper.selectDcBusiMonthPlanBillMasterList(dcBusiMonthPlanBillMaster);
List<DcBusiMonthPlanBillMaster> dcBusiMonthPlanBillMasters = baseMapper.selectDcBusiMonthPlanBillMasterList(dcBusiMonthPlanBillMaster);
if (!CollectionUtils.isEmpty(dcBusiMonthPlanBillMasters)) {
List<Long> companyIdList = dcBusiMonthPlanBillMasters.stream().map(DcBusiMonthPlanBillMaster::getCompanyId).collect(Collectors.toList());
List<SysDept> companyList = sysDeptService.getDeptListByDeptIdList(companyIdList);
if (!CollectionUtils.isEmpty(companyList)) {
Map<Long, String> companyMap = companyList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName, (v1, v2) -> v2));
dcBusiMonthPlanBillMasters.forEach(item -> {
item.setCompanyName(companyMap.get(item.getCompanyId()));
});
}
List<Long> oragnizeIdList = dcBusiMonthPlanBillMasters.stream().map(DcBusiMonthPlanBillMaster::getOragnizeId).collect(Collectors.toList());
List<SysDept> oragnizeList = sysDeptService.getDeptListByDeptIdList(oragnizeIdList);
if (!CollectionUtils.isEmpty(oragnizeList)) {
Map<Long, String> oragnizeMap = oragnizeList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName, (v1, v2) -> v2));
dcBusiMonthPlanBillMasters.forEach(item -> {
item.setOrganizeName(oragnizeMap.get(item.getOragnizeId()));
});
}
}
return dcBusiMonthPlanBillMasters;
}
/**

40
lzbi-module/src/main/resources/mapper/DcBusiDataScreenMainMapper.xml

@ -539,4 +539,44 @@
#{orgId}
</foreach>
</select>
<select id="selectSomeOrgHeatExchangeStationCount" resultType="java.lang.Integer">
SELECT
count(*)
FROM
dc_base_asset_info t1
INNER JOIN sys_dept t2 ON t1.org_id = t2.dept_id AND t1.asset_level = '30'
WHERE
FIND_IN_SET( #{orgId}, t2.ancestors )
OR t2.dept_id = #{orgId}
ORDER BY
t1.org_id,
t1.asset_code
</select>
<select id="selectChildOrgSomeReportEverydayDataList"
parameterType="com.lzbi.bi.domain.req.ReportDataReq"
resultType="com.lzbi.bi.domain.dto.MultiOrgSomeReportEverydayData">
SELECT
t5.dept_id AS "orgId",
t5.dept_name AS "orgName",
CONCAT( t1.date_year, '-', t1.date_month, '-', t1.date_day ) AS "date",
t1.value_result AS "value"
FROM
dc_busi_target_draft_daynew t1
INNER JOIN dc_base_asset_target t2 ON t1.target_code = t2.target_code
INNER JOIN dc_busi_report_target_config t3 ON t2.target_model_code = t3.target_model_code
AND t3.report_name = #{reportName}
INNER JOIN dc_base_asset_info t4 ON t2.asset_code = t4.asset_code
AND t4.asset_level = #{assetLevel}
AND t4.asset_type = #{assetType}
INNER JOIN sys_dept t5 ON t4.org_id = t5.dept_id
where
t5.parent_id = #{orgId}
AND CONCAT( t1.date_year, '-', t1.date_month, '-', t1.date_day ) &gt;= #{heatingStartDate}
AND CONCAT( t1.date_year, '-', t1.date_month, '-', t1.date_day ) &lt;= #{heatingEndDate}
ORDER BY
date,
orgId
</select>
</mapper>
Loading…
Cancel
Save