Kaynağa Gözat

用能用水汇总增加统计内容,数据校正去掉折算系数

chenwen 3 yıl önce
ebeveyn
işleme
191f526aab

+ 8 - 2
src/main/java/com/hb/proj/car/controller/EnergyWaterSumController.java

@@ -19,6 +19,7 @@ import com.alibaba.fastjson.TypeReference;
 import com.hb.proj.car.service.EnergySumRptService;
 import com.hb.proj.car.service.MaterialERPService;
 import com.hb.proj.input.service.WorkloadService;
+import com.hb.proj.model.EnergyWaterSumTotalVal;
 import com.hb.proj.model.EnergyWaterSumVO;
 import com.hb.proj.model.EnergyWaterSumVOUtil;
 import com.hb.proj.model.Workload;
@@ -69,12 +70,16 @@ public class EnergyWaterSumController {
 			}
 			String preyear=String.valueOf(Integer.parseInt(year)-1);
 			
-			Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year));
-			Map<String,EnergyWaterSumVO> preVoIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(preyear), service.otherMonthGrp(preyear), service.wpgSumRpt(preyear), service.wpgCorrectSumRpt(preyear), service.workloadSumRpt(preyear));
+			EnergyWaterSumTotalVal  totalVal=new EnergyWaterSumTotalVal(),pretotalVal=new EnergyWaterSumTotalVal();
+			
+			Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year),service.carOilSumRpt(year),totalVal);
+			Map<String,EnergyWaterSumVO> preVoIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(preyear), service.otherMonthGrp(preyear), service.wpgSumRpt(preyear), service.wpgCorrectSumRpt(preyear), service.workloadSumRpt(preyear),service.carOilSumRpt(preyear),pretotalVal);
 			EnergyWaterSumVOUtil.caculateCompare(voIndex, preVoIndex);
 			preVoIndex.clear();
 			preVoIndex=null;
 			
+			totalVal.caculateCompare(pretotalVal);
+			pretotalVal=null;
 			
 			String rptTitle=year+"年";
 			Map<String,Object> rootMap=new HashMap<String,Object>();
@@ -83,6 +88,7 @@ public class EnergyWaterSumController {
 			rootMap.put("months", mths); 
 			rootMap.put("ds", voIndex); 
 			rootMap.put("sums",addSumFormula()); 
+			rootMap.put("dssum", totalVal); 
 			
 			
 			RptOuter.clearTemplateCache();

+ 2 - 2
src/main/java/com/hb/proj/car/controller/HomeRptController.java

@@ -285,7 +285,7 @@ public class HomeRptController {
 		}
 		
 		if("chart".equals(type)){
-			Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year));
+			Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year),null,null);
 			JsonOutUtils.returnOkWithData(response, voIndex);
 			return;
 		}
@@ -297,7 +297,7 @@ public class HomeRptController {
 			perMth=MapUtils.build("month",mthNames[i-1],"monthNum",String.format("%02d",i));
 			mths.add(perMth);
 		}
-		Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year));
+		Map<String,EnergyWaterSumVO> voIndex=EnergyWaterSumVOUtil.build(service.erpMonthGrp(year), service.otherMonthGrp(year), service.wpgSumRpt(year), service.wpgCorrectSumRpt(year), service.workloadSumRpt(year),null,null);
 		
 		Map<String,Object> rootMap=new HashMap<String,Object>();
 		rootMap.put("months", mths); 

+ 1 - 1
src/main/java/com/hb/proj/car/service/EnergySumRptService.java

@@ -44,7 +44,7 @@ public class EnergySumRptService {
 		List<Object> params=new ArrayList<Object>();
 		StringBuilder sql=new StringBuilder();
 		sql.append("select  max(s.rpt_date) rpt_date,sum(oil_real_cost)/1000 oil_real_cost,sum(coil_real_cost)/1000 coil_real_cost,sum(oil_coal)oil_coal, sum(coil_coal) coil_coal, ");
-		sql.append(" sum(oil_kl_money)/10000 oil_kl_money,sum(coil_kl_money)/10000 coil_kl_money");
+		sql.append(" sum(engine_cost_kg)/1000 engine_cost_kg,sum(oil_kl_money)/10000 oil_kl_money,sum(coil_kl_money)/10000 coil_kl_money");
 		sql.append(" from t_car_consume s   ");
 		sql.append(" where DATE_FORMAT(s.rpt_date,'%Y') = ? ");
 		sql.append(" group by DATE_FORMAT(s.rpt_date,'%Y-%m')");

+ 116 - 0
src/main/java/com/hb/proj/model/EnergyWaterSumTotalVal.java

@@ -0,0 +1,116 @@
+package com.hb.proj.model;
+
+import com.hb.proj.utils.DataUtils;
+
+/**
+ * 用能用水统计汇总  存储年累值
+ * @author cwen
+ *
+ */
+public class EnergyWaterSumTotalVal {
+
+	private Integer wellCount;
+	
+	private Double industryValue;
+	
+	private Double addedValue;
+	
+	private Double engineCost;
+	
+	private Double wellCountCompared;  //井次同比
+	
+	private Double industryValueCompared;  //工业产值同比
+		
+	private Double addedValueCompared;  //企业增加值同比
+	
+	private Double engineCostCompared; //发电机油耗同比
+	
+	
+	public void caculateCompare(EnergyWaterSumTotalVal preval){
+		if(preval==null){
+			return ;
+		}
+		this.wellCountCompared=getCompareVal(this.wellCountCompared,preval.wellCountCompared);
+		this.industryValueCompared=getCompareVal(this.industryValueCompared,preval.industryValueCompared);
+		this.addedValueCompared=getCompareVal(this.addedValueCompared,preval.addedValueCompared);
+		this.engineCostCompared=getCompareVal(this.engineCostCompared,preval.engineCostCompared);
+	}
+	
+	
+	private Double getCompareVal(Object d1,Object d2){
+		if(d2==null){
+			return null;
+		}
+		else if(d1==null){
+			return -1.0;
+		}
+		else if(d1 instanceof Double){
+			return (((Double)d1).doubleValue()-((Double)d2).doubleValue())/((Double)d2).doubleValue();
+		}
+		else if(d1 instanceof Integer){
+			return (((Integer)d1).intValue()-((Integer)d2).intValue())/((Integer)d2+0.0);
+		}
+		return null;
+	}
+	
+
+	public Integer getWellCount() {
+		return wellCount;
+	}
+
+	public void setWellCount(Integer wellCount) {
+		this.wellCount = wellCount;
+	}
+
+	public Double getIndustryValue() {
+		return industryValue;
+	}
+
+	public void setIndustryValue(Double industryValue) {
+		this.industryValue = industryValue;
+	}
+
+	public Double getAddedValue() {
+		return addedValue;
+	}
+
+	public void setAddedValue(Double addedValue) {
+		this.addedValue = addedValue;
+	}
+
+	public Double getEngineCost() {
+		return engineCost;
+	}
+
+	public void setEngineCost(Double engineCost) {
+		this.engineCost = engineCost;
+	}
+	
+	public String getEngineCostCompared() {
+		if(engineCostCompared==null||engineCostCompared.isNaN()){
+			return null;
+		}
+		return DataUtils.format(engineCostCompared*100, 1)+"%";
+	}
+	
+	public String getWellCountCompared() {
+		if(wellCountCompared==null||wellCountCompared.isNaN()){
+			return null;
+		}
+		return DataUtils.format(wellCountCompared*100, 1)+"%";
+	}
+	
+	public String getIndustryValueCompared() {
+		if(industryValueCompared==null||industryValueCompared.isNaN()){
+			return null;
+		}
+		return DataUtils.format(industryValueCompared*100, 1)+"%";
+	}
+	
+	public String getAddedValueCompared() {
+		if(addedValueCompared==null||addedValueCompared.isNaN()){
+			return null;
+		}
+		return DataUtils.format(addedValueCompared*100, 1)+"%";
+	}
+}

+ 37 - 1
src/main/java/com/hb/proj/model/EnergyWaterSumVO.java

@@ -23,6 +23,8 @@ public class EnergyWaterSumVO {
 	
 	private Workload  workload;
 	
+	private CarConsume  carConsume; //通过每个车辆统计的数据
+	
 	private String rptMonth;
 	
     private Double oilCompared;  //汽油同比
@@ -45,12 +47,15 @@ public class EnergyWaterSumVO {
 	
 	private Double coalCompared;  //折算吨煤同比
 	
+	private Double engineCostCompared; //发电机油耗同比
+	
 	private Double coals; //折算吨煤
 	
-	public EnergyWaterSumVO (ERP  erpKl,Wpg   wpg,Workload  workload){
+	public EnergyWaterSumVO (ERP  erpKl,Wpg   wpg,Workload  workload,CarConsume carConsume){
 		this.erpKl=erpKl;
 		this.wpg=wpg;
 		this.workload=workload;
+		this.carConsume=carConsume;
 		if(erpKl!=null){
 			this.oilTotal=erpKl.getOilCount();
 			this.coilTotal=erpKl.getCoilCount();
@@ -121,6 +126,16 @@ public class EnergyWaterSumVO {
 			this.coalCompared=getCompareVal(this.coals,preVo.getCoals());
 		}
 		
+		if(preVo.getCarConsume()!=null){
+			if(this.getCarConsume()==null){
+				this.engineCostCompared=-1.0;
+			}
+			else{
+				this.engineCostCompared=getCompareVal(this.getCarConsume().getEngineCostKg(),preVo.getCarConsume().getEngineCostKg());
+			}
+		}
+		
+		
 	}
 	
 	private Double getCompareVal(Object d1,Object d2){
@@ -324,5 +339,26 @@ public class EnergyWaterSumVO {
 	public void setCoals(Double coals) {
 		this.coals = coals;
 	}
+
+	public CarConsume getCarConsume() {
+		return carConsume;
+	}
+
+	public void setCarConsume(CarConsume carConsume) {
+		this.carConsume = carConsume;
+	}
+
+	public String getEngineCostCompared() {
+		if(engineCostCompared==null||engineCostCompared.isNaN()){
+			return null;
+		}
+		return DataUtils.format(engineCostCompared*100, 1)+"%";
+	}
+
+	public void setEngineCostCompared(Double engineCostCompared) {
+		this.engineCostCompared = engineCostCompared;
+	}
+
+	
 	
 }

+ 29 - 5
src/main/java/com/hb/proj/model/EnergyWaterSumVOUtil.java

@@ -9,6 +9,7 @@ import com.hb.proj.car.service.CarRptUtils;
 import com.hb.xframework.util.DateUtil;
 
 public class EnergyWaterSumVOUtil {
+	
 
 	/**
 	 * 计算同比值
@@ -23,7 +24,7 @@ public class EnergyWaterSumVOUtil {
 			v1=voIndex.get(month);
 			if(preVoIndex.get(month)!=null){
 				if(v1==null){
-					v1=new EnergyWaterSumVO(null,null,null);
+					v1=new EnergyWaterSumVO(null,null,null,null);
 					voIndex.put(month, v1);
 				}
 				v1.setComparedValue(preVoIndex.get(month));
@@ -100,22 +101,45 @@ public class EnergyWaterSumVOUtil {
 	 * @param workloads
 	 * @return
 	 */
-	public static Map<String,EnergyWaterSumVO> build(List<ERP> erps,List<OtherConsume> kls,List<Wpg> wpgs,List<WpgCorrect> wpgCorrects,List<Workload> workloads){
+	public static Map<String, EnergyWaterSumVO> build(List<ERP> erps,
+			List<OtherConsume> kls, List<Wpg> wpgs,
+			List<WpgCorrect> wpgCorrects, List<Workload> workloads,
+			List<CarConsume> carConsumes, EnergyWaterSumTotalVal totalVal) {
 		Map<String,EnergyWaterSumVO>  voIdx=new HashMap<String,EnergyWaterSumVO>();
 		String month=null;
 		EnergyWaterSumVO vo=null;
 		
 		Map<String,ERP>   monthErps=builderERPKlMonthGroup(erps,kls); //汽油、柴油
 		Map<String,Wpg>   monthWpgs=buildWpgWithCorrect(wpgs,wpgCorrects) ; //水电气
-		Map<String,Workload> monthWorkloads=new HashMap<String,Workload>(); //工作量
+		Map<String,Workload> monthWorkloads=new HashMap<String,Workload>(workloads.size()); //工作量
+		
+		double total1=0,total2=0;
+		int total3=0;
+		
 		for(Workload wk : workloads){
 			month=DateUtil.format(wk.getRptMonth(), "MM");
 			monthWorkloads.put(month, wk);
+			total3+=wk.getWellCount()!=null?wk.getWellCount().intValue():0;
+			total1+=wk.getIndustryValue()!=null?wk.getIndustryValue().doubleValue():0;
+			total2+=wk.getAddedValue()!=null?wk.getAddedValue().doubleValue():0;
 		}
+		totalVal.setWellCount(total3);
+		totalVal.setIndustryValue(total1);
+		totalVal.setAddedValue(total2);
+		
+		total1=0;
+		Map<String,CarConsume>  monthCarConsume=new HashMap<String,CarConsume>(carConsumes.size()); //车辆明细消耗统计
+		for(CarConsume carCon : carConsumes){
+			month=DateUtil.format(carCon.getRptDate(), "MM");
+			monthCarConsume.put(month, carCon);
+			total1+=carCon.getEngineCostKg()!=null?carCon.getEngineCostKg().doubleValue():0;
+		}
+		
+		totalVal.setEngineCost(total1);
 		
 		for(int m=1;m<=12;m++){
 			month=String.format("%02d", m);
-			vo=new EnergyWaterSumVO(monthErps.get(month),monthWpgs.get(month),monthWorkloads.get(month));
+			vo=new EnergyWaterSumVO(monthErps.get(month),monthWpgs.get(month),monthWorkloads.get(month),monthCarConsume.get(month));
 			vo.initCoal();
 			voIdx.put(month, vo);
 		}
@@ -145,7 +169,7 @@ public class EnergyWaterSumVOUtil {
 		
 		for(int m=1;m<=12;m++){
 			month=String.format("%02d", m);
-			vo=new EnergyWaterSumVO(monthErps.get(month),monthWpgs.get(month),null);
+			vo=new EnergyWaterSumVO(monthErps.get(month),monthWpgs.get(month),null,null);
 			vo.initCoal();
 			if(vo.getErpKl()!=null){
 				vo.getErpKl().setOilCoal(CarRptUtils.addDouble(vo.getErpKl().getOilCoal(),vo.getErpKl().getCoilCoal()));

+ 23 - 6
src/main/webapp/page/rpt/tmp/energyWaterSum.ftl

@@ -150,8 +150,8 @@
 
 <tr class="dataRow">
 <td><div class="rpt-table-cell rpttab-cell-0">井次</div></td>
-<td formula="${sums['wellCount']}" decimal="0"><div class="rpt-table-cell rpttab-cell-1"></div></td>
-<td><div class="rpt-table-cell rpttab-cell-2"></div></td>
+<td><div class="rpt-table-cell rpttab-cell-1">#{(dssum.wellCount)!0;m0M0}</div></td>
+<td><div class="rpt-table-cell rpttab-cell-2">${dssum.wellCountCompared!''}</div></td>
 <#list months as mth>
 <td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3}"></div></td>
 <td  data-field="wellCount" data-format="0" data-msg="整数数值"><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3+1}">${(ds['${mth.monthNum}'].workload.wellCount)!0}</div></td>
@@ -162,8 +162,8 @@
 
 <tr class="dataRow">
 <td><div class="rpt-table-cell rpttab-cell-0">工业产值(万元)</div></td>
-<td formula="${sums['industryCount']}" decimal="0"><div class="rpt-table-cell rpttab-cell-1"></div></td>
-<td><div class="rpt-table-cell rpttab-cell-2"></div></td>
+<td><div class="rpt-table-cell rpttab-cell-1">#{(dssum.industryValue)!0;m4M4}</div></td>
+<td><div class="rpt-table-cell rpttab-cell-2">${dssum.industryValueCompared!''}</div></td>
 <#list months as mth>
 <td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3}"></div></td>
 <td  data-field="industryValue" data-format="0.0000" data-msg="最多4位小数的数值"><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3+1}">${(ds['${mth.monthNum}'].workload.industryValue)!0}</div></td>
@@ -174,8 +174,8 @@
 
 <tr class="dataRow">
 <td><div class="rpt-table-cell rpttab-cell-0">企业增加值(万元)</div></td>
-<td formula="${sums['addedCount']}" decimal="0"><div class="rpt-table-cell rpttab-cell-1"></div></td>
-<td><div class="rpt-table-cell rpttab-cell-2"></div></td>
+<td><div class="rpt-table-cell rpttab-cell-1">#{(dssum.addedValue)!0;m4M4}</div></td>
+<td><div class="rpt-table-cell rpttab-cell-2">${dssum.addedValueCompared!''}</div></td>
 <#list months as mth>
 <td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3}"></div></td>
 <td   data-field="addedValue" data-format="0.0000" data-msg="最多4位小数的数值"><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3+1}">${(ds['${mth.monthNum}'].workload.addedValue)!0}</div></td>
@@ -183,6 +183,18 @@
 </#list>
 </tr>
 
+
+<tr class="dataRow">
+<td><div class="rpt-table-cell rpttab-cell-0">发电机(吨)</div></td>
+<td><div class="rpt-table-cell rpttab-cell-1">#{(dssum.engineCost)!0;m3M3}</div></td>
+<td><div class="rpt-table-cell rpttab-cell-2">${dssum.engineCostCompared!''}</div></td>
+<#list months as mth>
+<td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3}"></div></td>
+<td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3+1}">#{(ds['${mth.monthNum}'].carConsume.engineCostKg)!0;m3M3}</div></td>
+<td><div class="rpt-table-cell rpttab-cell-${(mth_index+1)*3+2}">${(ds['${mth.monthNum}'].engineCostCompared)!''}</div></td>
+</#list>
+</tr>
+
 </table>
 </div>
 
@@ -251,6 +263,11 @@
 			<td><div class="rpt-table-cell rpttab-cell-1"></div></td>
 			<td><div class="rpt-table-cell rpttab-cell-2"></div></td>
 		  </tr>
+		   <tr class="dataRow">
+			<td><div class="rpt-table-cell rpttab-cell-0">发电机(吨)</div></td>
+			<td><div class="rpt-table-cell rpttab-cell-1"></div></td>
+			<td><div class="rpt-table-cell rpttab-cell-2"></div></td>
+		  </tr>
 	 </table>
   </div>
 </div>

+ 3 - 11
src/main/webapp/page/rpt/tmp/materialERP.ftl

@@ -10,18 +10,14 @@ ${rptMonth}月ERP、昆仑卡数据校正
 <col style="width:40mm"/>
 <col style="width:40mm"/>
 <col style="width:40mm"/>
-<col style="width:30mm"/>
-<col style="width:30mm"/>
-<col style="width:30mm"/>
+
 </colgroup> 
 <tr class="header">
 <td rowspan="2">单位</td>
 <td rowspan="2">月份</td>
 <td colspan="2">ERP汽油</td>
 <td colspan="2">ERP柴油</td>
-<td rowspan="2">92#汽油<br>折算系数</td>
-<td rowspan="2">95#汽油<br>折算系数</td>
-<td rowspan="2">柴油<br>折算系数</td>
+
 </tr>
 <tr class="header">
 <td>吨</td>
@@ -37,10 +33,6 @@ ${rptMonth}月ERP、昆仑卡数据校正
 <td class="editable" tabIndex="1" data-field="oilMoney" data-format="0.00" data-msg="最多2位小数的数值">${(erp.oilMoney)!""}</td>
 <td class="editable" tabIndex="2" data-field="coilCount" data-format="0.000" data-msg="最多3位小数的数值">${(erp.coilCount)!""}</td>
 <td class="editable" tabIndex="3" data-field="coilMoney" data-format="0.00" data-msg="最多2位小数的数值">${(erp.coilMoney)!""}</td>
-<td class="editable" tabIndex="4" data-field="oilRatio" data-format="0.000" data-msg="最多3位小数的数值">${ratio.oilRatio!""}</td>
-<td class="editable" tabIndex="4" data-field="oilRatio95" data-format="0.000" data-msg="最多3位小数的数值">${ratio.oilRatio95!""}</td>
-
-<td class="editable" tabIndex="5" data-field="coilRatio" data-format="0.000" data-msg="最多3位小数的数值">${ratio.coilRatio!""}</td>
 </tr>
 
 <tr class="dataRow">
@@ -49,7 +41,7 @@ ${rptMonth}月ERP、昆仑卡数据校正
 <td class="editable" tabIndex="7" data-field="oilMoneySum" data-format="0.00" data-msg="最多2位小数的数值">${(erp.oilMoneySum)!""}</td>
 <td class="editable" tabIndex="8" data-field="coilCountSum" data-format="0.000" data-msg="最多3位小数的数值">${(erp.coilCountSum)!""}</td>
 <td class="editable" tabIndex="9" data-field="coilMoneySum" data-format="0.00" data-msg="最多2位小数的数值">${(erp.coilMoneySum)!""}</td>
-<td colspan="3" rowspan="2"></td>
+
 </tr>
 
 <tr class="dataRow">

+ 4 - 3
src/main/webapp/page/sys/energyRatio.html

@@ -119,11 +119,12 @@
 				  <div class="layui-form-item layui-col-sm10">
 				    <label class="layui-form-label">统计月份划分日</label>
 				    <div class="layui-input-block">
-				       <input type="text" name="monthSplitDay" id="monthSplitDay" placeholder="请输入整数" autocomplete="off" class="layui-input" lay-verify="number">
+				       <input type="text" name="monthSplitDay" id="monthSplitDay" placeholder="请输入整数" autocomplete="off" class="layui-input" lay-verify="number" style="width:100px;display:inline;">
+				       <span>日  00:00</span>
+				       <span>&nbsp;&nbsp;&nbsp;(1-28之间的整数,为空默认16日 00:00)</span>
 				    </div>
 				  </div>
-				  <div class="layui-form-mid layui-word-aux layui-col-sm2" style="margin:0px;">(1-28之间的整数,为空默认16日)</div>
-				  
+				 
 				  <div class="layui-form-item layui-col-sm10">
 				    <div class="layui-input-block">
 				       <button type="button" class="layui-btn" lay-submit lay-filter="submit-filter-oilRatio">应用设置</button>