|
@@ -18,6 +18,7 @@ import java.math.RoundingMode;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -35,15 +36,22 @@ public class ZhcxPmqManagementServiceImpl extends ServiceImpl<ZhcxPmqManagementD
|
|
private ZhcxProjectDeviceIndicatorService projectDeviceIndicatorService;
|
|
private ZhcxProjectDeviceIndicatorService projectDeviceIndicatorService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void largeScreenData() {
|
|
|
|
|
|
+ public void largeScreenData(Map<String,Object> map) {
|
|
// 删除大屏试车数据
|
|
// 删除大屏试车数据
|
|
DelPhysicalParam param = DelPhysicalParam.builder()
|
|
DelPhysicalParam param = DelPhysicalParam.builder()
|
|
.type("pmq_management")
|
|
.type("pmq_management")
|
|
.build();
|
|
.build();
|
|
|
|
+ Object projectIdObj = map.get("projectId");
|
|
|
|
+ Object machinenoObj = map.get("machineno");
|
|
|
|
+ if(projectIdObj != null && machinenoObj != null){
|
|
|
|
+ String projectId = projectIdObj.toString();
|
|
|
|
+ String machineno = machinenoObj.toString();
|
|
|
|
+ param.setPrjId(projectId);
|
|
|
|
+ param.setMachineNo(machineno);
|
|
|
|
+ }
|
|
projectDeviceIndicatorService.delPhysical(param);
|
|
projectDeviceIndicatorService.delPhysical(param);
|
|
-
|
|
|
|
// 获取三单数据
|
|
// 获取三单数据
|
|
- List<LargeScreenCheckVo> list =baseMapper.getLargeScreenData();
|
|
|
|
|
|
+ List<LargeScreenCheckVo> list =baseMapper.getLargeScreenData(map);
|
|
log.info("获取的大屏试车数据源:{}",list.size());
|
|
log.info("获取的大屏试车数据源:{}",list.size());
|
|
List<ZhcxProjectDeviceIndicatorDo> resultList = new ArrayList<>();
|
|
List<ZhcxProjectDeviceIndicatorDo> resultList = new ArrayList<>();
|
|
for (LargeScreenCheckVo largeScreenCheckVo : list) {
|
|
for (LargeScreenCheckVo largeScreenCheckVo : list) {
|
|
@@ -68,15 +76,35 @@ public class ZhcxPmqManagementServiceImpl extends ServiceImpl<ZhcxPmqManagementD
|
|
indicator.setTotal(denominator);
|
|
indicator.setTotal(denominator);
|
|
// 百分比
|
|
// 百分比
|
|
BigDecimal result;
|
|
BigDecimal result;
|
|
- if (denominator == 0) {
|
|
|
|
|
|
+ if (molecule ==0 || denominator == 0) {
|
|
// 分母为 0 时,根据实际情况设置为 0 或抛出异常
|
|
// 分母为 0 时,根据实际情况设置为 0 或抛出异常
|
|
result = BigDecimal.ZERO;
|
|
result = BigDecimal.ZERO;
|
|
} else {
|
|
} else {
|
|
- BigDecimal bdMolecule = BigDecimal.valueOf(molecule);
|
|
|
|
- BigDecimal bdDenominator = BigDecimal.valueOf(denominator);
|
|
|
|
- result = bdMolecule.divide(bdDenominator, 2, RoundingMode.HALF_UP);
|
|
|
|
|
|
+ // 计算百分比
|
|
|
|
+ BigDecimal intermediateResult = BigDecimal.valueOf(molecule).divide(BigDecimal.valueOf(denominator), 4, RoundingMode.HALF_UP);
|
|
|
|
+ result = intermediateResult.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
|
}
|
|
}
|
|
indicator.setCompletionrate(result);
|
|
indicator.setCompletionrate(result);
|
|
|
|
+
|
|
|
|
+ // 设置子表数据
|
|
|
|
+ // 分子2
|
|
|
|
+ int molecule2 = Integer.parseInt(largeScreenCheckVo.getMolecule2());
|
|
|
|
+ // 分母2
|
|
|
|
+ int denominator2 = Integer.parseInt(largeScreenCheckVo.getDenominator2());
|
|
|
|
+ String roption = "修改单,"+molecule2+"/"+denominator2+",";
|
|
|
|
+ // 百分比2
|
|
|
|
+ BigDecimal result2;
|
|
|
|
+ if (molecule2 ==0 || denominator2 == 0) {
|
|
|
|
+ // 分母为 0 时,根据实际情况设置为 0 或抛出异常
|
|
|
|
+ result2 = BigDecimal.ZERO;
|
|
|
|
+ } else {
|
|
|
|
+ // 计算百分比
|
|
|
|
+ BigDecimal intermediateResult2 = BigDecimal.valueOf(molecule2).divide(BigDecimal.valueOf(denominator2), 4, RoundingMode.HALF_UP);
|
|
|
|
+ result2 = intermediateResult2.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
+ }
|
|
|
|
+ roption = roption+result2;
|
|
|
|
+ indicator.setRoption(roption);
|
|
|
|
+
|
|
resultList.add(indicator);
|
|
resultList.add(indicator);
|
|
}
|
|
}
|
|
if(!resultList.isEmpty()){
|
|
if(!resultList.isEmpty()){
|