Commit 89131df9 authored by gaoliwei's avatar gaoliwei

项目评估

parent bfb9f430
package org.rcisoft.business.evaluate.project.controller;
/*固定导入*/
import io.swagger.annotations.ApiOperation;
import org.rcisoft.business.evaluate.project.service.ProjectEvaluateService;
import org.rcisoft.business.evaluate.project.vo.ProjectEvaluateDTO;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
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;
/**
* Created by on 2018-4-18 15:41:54.
*/
@RestController
@RequestMapping("ProjectEvaluate")
public class ProjectEvaluateController {
@Autowired
private ProjectEvaluateService projectEvaluateService;
@ApiOperation(value="项目评估", notes="返回项目相关信息")
@GetMapping("/listProjectInformation")
public Result listProjectInformation(ProjectEvaluateDTO projectEvaluateDTO) {
String year = projectEvaluateDTO.getYear();
Integer pageNum = projectEvaluateDTO.getPageNum();
Integer pageSize = projectEvaluateDTO.getPageSize();
return Result.builder(new PersistModel(1), MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, projectEvaluateService.listProjectInformationByYear(year,pageNum,pageSize));
}
}
package org.rcisoft.business.evaluate.project.dao;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* Created with on 2018-4-18 15:41:54.
*/
@Repository
public interface ProjectEvaluateRepository {
/** 根据年份,分别查出每个项目的项目评估信息,需要开始条数页结束条数
* @param year
* @param start
* @param end
* @return
*/
List<Map<String,Object>>listProjectInformationByYear(@Param("year")String year, @Param("start")Integer start, @Param("end")Integer end );
}
package org.rcisoft.business.evaluate.project.entity;
import lombok.*;
import org.rcisoft.core.entity.IdNotDataEntity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created with on 2018-4-18 15:23:12.
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "bus_build_tp")
public class BusBuildTp extends IdNotDataEntity<BusBuildTp> {
private String bldTpId;
private String bldTpNm;
}
package org.rcisoft.business.evaluate.project.entity;
import lombok.*;
import org.rcisoft.core.entity.IdNotDataEntity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created with on 2018-4-18 15:23:12.
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "bus_project")
public class BusProject extends IdNotDataEntity<BusProject> {
private String proId;
private String proNm;
private String bldTpId;
private Float bldArea;
private String bldLocal;
private String bldCoordinate;
private String ownId;
private String teamId;
private Float energyPotential;
public String getProId() {
return proId;
}
public void setProId(String proId) {
this.proId = proId;
}
public String getProNm() {
return proNm;
}
public void setProNm(String proNm) {
this.proNm = proNm;
}
public String getBldTpId() {
return bldTpId;
}
public void setBldTpId(String bldTpId) {
this.bldTpId = bldTpId;
}
public Float getBldArea() {
return bldArea;
}
public void setBldArea(Float bldArea) {
this.bldArea = bldArea;
}
public String getBldLocal() {
return bldLocal;
}
public void setBldLocal(String bldLocal) {
this.bldLocal = bldLocal;
}
public String getBldCoordinate() {
return bldCoordinate;
}
public void setBldCoordinate(String bldCoordinate) {
this.bldCoordinate = bldCoordinate;
}
public String getOwnId() {
return ownId;
}
public void setOwnId(String ownId) {
this.ownId = ownId;
}
public String getTeamId() {
return teamId;
}
public void setTeamId(String teamId) {
this.teamId = teamId;
}
public Float getEnergyPotential() {
return energyPotential;
}
public void setEnergyPotential(Float energyPotential) {
this.energyPotential = energyPotential;
}
}
package org.rcisoft.business.evaluate.project.entity;
import lombok.*;
import org.rcisoft.core.entity.IdNotDataEntity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created with on 2018-4-18 15:23:12.
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "energy_count_m")
public class EnergyCountM extends IdNotDataEntity<EnergyCountM> {
private Integer id;
private String devNum;
private String proId;
private Float water;
private Float elec;
private Float gas;
private String hour;
private String day;
private String mon;
private String year;
private Date createTime;
private BigDecimal waterMoney;
private BigDecimal elecMoney;
private BigDecimal gasMoney;
}
package org.rcisoft.business.evaluate.project.service;
import java.util.List;
import java.util.Map;
/**
* Created by on 2018-4-18 15:41:54.
*/
public interface ProjectEvaluateService {
/** 根据年份,分别查出每个项目的项目评估信息,需要页容量以及当前页数
* @param year
* @param pageNum
* @param pageSize
* @return
*/
List<Map<String,Object>> listProjectInformationByYear(String year,Integer pageNum, Integer pageSize);
}
package org.rcisoft.business.evaluate.project.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.rcisoft.business.evaluate.project.dao.ProjectEvaluateRepository;
import org.rcisoft.business.evaluate.project.service.ProjectEvaluateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
* Created by on 2018-4-18 15:41:54.
*/
@Service
@Transactional(readOnly = true,propagation = Propagation.NOT_SUPPORTED)
@Slf4j
public class ProjectEvaluateServiceImpl implements ProjectEvaluateService {
@Autowired
private ProjectEvaluateRepository projectEvaluateRepository;
/** 根据年份,分别查出每个项目的项目评估信息,需要页容量以及当前页数
* @param year
* @param pageNum
* @param pageSize
* @return
*/
@Override
public List<Map<String, Object>> listProjectInformationByYear(String year, Integer pageNum, Integer pageSize) {
Integer start = pageSize * (pageNum - 1);
Integer end = pageSize * pageNum;
return projectEvaluateRepository.listProjectInformationByYear(year,start,end);
}
}
package org.rcisoft.business.evaluate.project.vo;
/**
* @Author: GaoLiWei
* @Date: Created in 17:132018/4/18
*/
public class ProjectEvaluateDTO {
/**
* 年份
*/
private String year;
/**
* 页容量
*/
private Integer pageSize;
/**
* 页数
*/
private Integer pageNum;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
}
<?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="org.rcisoft.business.evaluate.project.dao.ProjectEvaluateRepository">
<select id="listProjectInformationByYear" resultType="map">
SELECT
PRO_NM,
BLD_LOCAL,
bbt.BLD_TP_NM,
bp.BLD_AREA,
SUM( WATER + ELEC + GAS ) / bp.BLD_AREA AS energy,
SUM( WATER + ELEC + GAS ) / bp.BLD_AREA - bp.ENERGY_POTENTIAL AS energyPotential,
ecm.YEAR
FROM
bus_project bp
LEFT JOIN energy_count_m ecm ON bp.PRO_ID = ecm.PRO_ID
LEFT JOIN bus_build_tp bbt ON bp.BLD_TP_ID = bbt.BLD_TP_ID
WHERE
ecm.YEAR = #{year}
GROUP BY
bp.PRO_ID
LIMIT #{start},#{end}
</select>
</mapper>
\ No newline at end of file
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