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
* @return
*/
List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean);

View File

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