This commit is contained in:
mashuai 2025-02-06 15:21:43 +08:00
parent fb6c9bfc51
commit d35c87033d
2 changed files with 35 additions and 33 deletions

View File

@ -28,6 +28,7 @@ public interface ComplexQueryService {
/** /**
* 导出综合查询工程机具使用列表 * 导出综合查询工程机具使用列表
* @param bean * @param bean
* @return
*/ */
List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean); List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean);

View File

@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -55,11 +56,11 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
@Override @Override
public List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean) { public List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean) {
// 使用 BigDecimal 常量初始化 // 使用 BigDecimal 常量初始化
BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
List<ProjUsingRecord> list = complexQueryMapper.getProjUsingRecordList(bean); List<ProjUsingRecord> list = complexQueryMapper.getProjUsingRecordList(bean);
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
ProjUsingRecord projUsingRecord = new ProjUsingRecord(); ProjUsingRecord projUsingRecord = new ProjUsingRecord();
@ -71,11 +72,11 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
totalTotalPrice = totalTotalPrice.add(record.getTotalPrice()); totalTotalPrice = totalTotalPrice.add(record.getTotalPrice());
} }
// 设置 ProjUsingDto 总结数据 // 设置 ProjUsingDto 总结数据
projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, BigDecimal.ROUND_HALF_UP)); projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, RoundingMode.HALF_UP));
projUsingRecord.setBackNum(totalBackNum.setScale(3, BigDecimal.ROUND_HALF_UP)); projUsingRecord.setBackNum(totalBackNum.setScale(3, RoundingMode.HALF_UP));
projUsingRecord.setUsNum(totalUsNum.setScale(3, BigDecimal.ROUND_HALF_UP)); projUsingRecord.setUsNum(totalUsNum.setScale(3, RoundingMode.HALF_UP));
projUsingRecord.setUsPrice(totalUsPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP));
projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP));
projUsingRecord.setUnit("合计"); projUsingRecord.setUnit("合计");
list.add(0,projUsingRecord); list.add(0,projUsingRecord);
} }
@ -162,16 +163,16 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
*/ */
@Override @Override
public List<RetainedEquipmentInfo> getRetainedEquipmentList(RetainedEquipmentInfo bean) { public List<RetainedEquipmentInfo> getRetainedEquipmentList(RetainedEquipmentInfo bean) {
BigDecimal totalPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); BigDecimal totalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
BigDecimal totalStoreNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalStoreNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalRepairNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalRepairNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalInputNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalInputNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalRepairInputNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalRepairInputNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalAllNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal totalAllNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal fiveReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal fiveReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal tenReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal tenReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal tenPlusReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); BigDecimal tenPlusReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
String fiveReplacementRate = "0%"; String fiveReplacementRate = "0%";
String tenReplacementRate = "0%"; String tenReplacementRate = "0%";
String tenPlusReplacementRate = "0%"; String tenPlusReplacementRate = "0%";
@ -189,7 +190,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
tenPlusReplacementNum = tenPlusReplacementNum.add(retainedEquipmentInfo.getTenPlusReplacementNum()); tenPlusReplacementNum = tenPlusReplacementNum.add(retainedEquipmentInfo.getTenPlusReplacementNum());
BigDecimal equipmentPrice = retainedEquipmentInfo.getAllNum() BigDecimal equipmentPrice = retainedEquipmentInfo.getAllNum()
.multiply(retainedEquipmentInfo.getBuyPrice()) .multiply(retainedEquipmentInfo.getBuyPrice())
.divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); .divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
totalPrice = totalPrice.add(equipmentPrice); totalPrice = totalPrice.add(equipmentPrice);
BigDecimal allNum = retainedEquipmentInfo.getAllNum(); BigDecimal allNum = retainedEquipmentInfo.getAllNum();
if (allNum.compareTo(BigDecimal.ZERO) == 0) { if (allNum.compareTo(BigDecimal.ZERO) == 0) {
@ -198,17 +199,17 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
tenPlusReplacementRate = "0%"; tenPlusReplacementRate = "0%";
} else { } else {
fiveReplacementRate = retainedEquipmentInfo.getFiveReplacementNum() fiveReplacementRate = retainedEquipmentInfo.getFiveReplacementNum()
.divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(allNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
tenReplacementRate = retainedEquipmentInfo.getTenReplacementNum() tenReplacementRate = retainedEquipmentInfo.getTenReplacementNum()
.divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(allNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
tenPlusReplacementRate = retainedEquipmentInfo.getTenPlusReplacementNum() tenPlusReplacementRate = retainedEquipmentInfo.getTenPlusReplacementNum()
.divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(allNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
} }
retainedEquipmentInfo.setTotalPrice(equipmentPrice); retainedEquipmentInfo.setTotalPrice(equipmentPrice);
retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate); retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate);
@ -221,17 +222,17 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
tenPlusReplacementRate = "0%"; tenPlusReplacementRate = "0%";
} else { } else {
fiveReplacementRate = fiveReplacementNum fiveReplacementRate = fiveReplacementNum
.divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(totalAllNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
tenReplacementRate = tenReplacementNum tenReplacementRate = tenReplacementNum
.divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(totalAllNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
tenPlusReplacementRate = tenPlusReplacementNum tenPlusReplacementRate = tenPlusReplacementNum
.divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) .divide(totalAllNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
} }
if (bean.getIsExport() == 0) { if (bean.getIsExport() == 0) {
RetainedEquipmentInfo retainedEquipmentInfo = new RetainedEquipmentInfo(); RetainedEquipmentInfo retainedEquipmentInfo = new RetainedEquipmentInfo();