新增功率档位 统计报表

This commit is contained in:
caixiang
2023-03-06 11:24:16 +08:00
parent 9ccc971a38
commit 05684b5d2a
14 changed files with 522 additions and 300 deletions

View File

@@ -1,5 +1,6 @@
package com.cnbm.packing.controller;
import com.cnbm.admin.annotation.LogOperation;
import com.cnbm.dispatch.enums.kuka.step1.Step1Mes2PlcVar;
import com.cnbm.dispatch.enums.kuka.step1.Step1Plc2MesVar;
import com.cnbm.dispatch.enums.kuka.step2.Step2Mes2PlcVar;
@@ -8,15 +9,20 @@ import com.cnbm.dispatch.enums.kuka.step3.Step3Mes2PlcVar;
import com.cnbm.dispatch.enums.kuka.step3.Step3Plc2MesVar;
import com.cnbm.packing.dto.CamlineSubIdDTO;
import com.cnbm.packing.dto.CamlineSubIdForImportDTO;
import com.cnbm.packing.dto.PowerReportDTO;
import com.cnbm.packing.entity.WoPackagingBoxSubstrate;
import com.cnbm.packing.param.PowerReportQueryParam;
import com.cnbm.packing.service.DynamicDataSourceService;
import com.cnbm.packing.service.WoPackagingBoxServiceBiz;
import com.cnbm.packing.service.WoPackagingBoxSubstrateServiceBiz;
import com.cnbm.packing.vo.PowerReportVo;
import com.cnbm.s7.entity.R;
import com.cnbm.s7.s7connector.enmuc.S7Client;
import com.cnbm.s7.s7connector.type.PlcVar;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +32,7 @@ import springfox.documentation.annotations.ApiIgnore;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.Arrays;
import java.util.List;
@@ -47,6 +54,10 @@ public class TestController {
DynamicDataSourceService service;
@Autowired
WoPackagingBoxSubstrateServiceBiz substrateServiceBiz;
@Autowired
WoPackagingBoxServiceBiz boxServiceBiz;
private Object read(S7Client s7Client,Step1Plc2MesVar var) throws UnsupportedEncodingException, ParseException {
try {
return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType());
@@ -124,6 +135,8 @@ public class TestController {
return R.ok();
}
@PostMapping("/testReadAll")
public R testReadAll() throws UnsupportedEncodingException, ParseException {
for(Step1Plc2MesVar actual:Step1Plc2MesVar.values()){

View File

@@ -13,24 +13,30 @@ import com.cnbm.common.validator.group.AddGroup;
import com.cnbm.common.validator.group.DefaultGroup;
import com.cnbm.common.validator.group.UpdateGroup;
import com.cnbm.packing.dto.ChangePackingBoxDTO;
import com.cnbm.packing.dto.PowerReportDTO;
import com.cnbm.packing.dto.WoPackagingBoxSubstrateDTO;
import com.cnbm.packing.entity.WoPackagingBox;
import com.cnbm.packing.entity.WoPackagingBoxSubstrate;
import com.cnbm.packing.excel.WoPackagingBoxSubstrateExcel;
import com.cnbm.packing.mapper.WoPackagingBoxMapper;
import com.cnbm.packing.mapper.WoPackagingBoxSubstrateMapper;
import com.cnbm.packing.param.PowerReportQueryParam;
import com.cnbm.packing.service.WoPackagingBoxServiceBiz;
import com.cnbm.packing.service.WoPackagingBoxSubstrateServiceBiz;
import com.cnbm.packing.vo.PowerReportVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.omg.CORBA.PRIVATE_MEMBER;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;
@@ -48,6 +54,9 @@ public class WoPackagingBoxSubstrateController {
@Autowired
private WoPackagingBoxSubstrateServiceBiz woPackagingBoxSubstrateService;
@Autowired
private WoPackagingBoxServiceBiz boxServiceBiz;
@Autowired
private WoPackagingBoxSubstrateMapper woPackagingBoxSubstrateMapper;
@@ -93,6 +102,16 @@ public class WoPackagingBoxSubstrateController {
return new Result<Long>().ok(dto.getId());
}
// @PostMapping
// @ApiOperation("功率报表")
// @LogOperation("功率报表查询")
// public Result<List<PowerReportDTO>> powerReport(@RequestBody PowerReportQueryParam queryParam){
//
//
// List<PowerReportDTO> powerReportDTOS = boxServiceBiz.powerReport(queryParam.getOrderName(), queryParam.getBegin(), queryParam.getEnd());
// return new Result<List<PowerReportDTO>>().ok(powerReportDTOS);
// }
@PutMapping
@ApiOperation("修改")
@LogOperation("修改")
@@ -106,6 +125,48 @@ public class WoPackagingBoxSubstrateController {
return new Result<Long>().ok(dto.getId());
}
@ApiOperation("查询模组档位统计分布图")
@LogOperation("查询模组档位统计分布图")
@PostMapping("/powerReport")
public Result<PowerReportVo> powerReport(@RequestBody PowerReportQueryParam queryParam){
List<PowerReportDTO> powerReportDTOS = boxServiceBiz.powerReport(queryParam);
PowerReportVo powerReportVo = new PowerReportVo();
Float totalLevelPower = new Float(0);
Float totalCompensatePower = new Float(0);
Float diversePower = new Float(0);
Integer totalSubNum = 0;
for(PowerReportDTO power : powerReportDTOS){
Integer subLevel = Integer.valueOf(power.getSubLevel());
Integer subNum = power.getSubNum();
Float sumPMPP = power.getSumPMPP();
totalLevelPower += subLevel*subNum;
totalCompensatePower += sumPMPP*subNum;
totalSubNum+= subNum;
}
for(PowerReportDTO power : powerReportDTOS){
Float prop = Float.valueOf(power.getSubNum())/Float.valueOf(totalSubNum);
DecimalFormat df = new DecimalFormat("0.00");
String propS = df.format(prop)+"%";
power.setProportion(propS);
}
diversePower = totalLevelPower - totalCompensatePower;
powerReportVo.setPowerReports(powerReportDTOS);
powerReportVo.setDiversePower(diversePower);
powerReportVo.setTotalCompensatePower(totalCompensatePower);
powerReportVo.setTotalLevelPower(totalLevelPower);
return new Result<PowerReportVo>().ok(powerReportVo);
}
@ApiOperation("查询模组档位统计分布图-获取ordername列表")
@LogOperation("查询模组档位统计分布图-获取ordername列表")
@PostMapping("/orderNameList")
public Result<List<String>> orderNameList(){
List<String> powerReportDTOS = boxServiceBiz.orderNameList();
return new Result<List<String>>().ok(powerReportDTOS);
}
@DeleteMapping
@ApiOperation("删除")
@LogOperation("删除")