修改金额精度问题
This commit is contained in:
@ -221,7 +221,7 @@ public class BusBiddingLimitListServiceImpl extends ServiceImpl<BusBiddingLimitL
|
|||||||
// 如果是叶子节点,计算 price = quantity * unitPrice
|
// 如果是叶子节点,计算 price = quantity * unitPrice
|
||||||
if (node.getChildren().isEmpty()) {
|
if (node.getChildren().isEmpty()) {
|
||||||
if (node.getQuantity() != null && node.getUnitPrice() != null) {
|
if (node.getQuantity() != null && node.getUnitPrice() != null) {
|
||||||
node.setPrice(node.getQuantity().multiply(node.getUnitPrice()));
|
node.setPrice(node.getQuantity().multiply(node.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
} else {
|
} else {
|
||||||
node.setPrice(BigDecimal.ZERO); // 默认值
|
node.setPrice(BigDecimal.ZERO); // 默认值
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.temporal.TemporalAdjusters;
|
import java.time.temporal.TemporalAdjusters;
|
||||||
@ -115,7 +116,7 @@ public class MoneyBigScreenController {
|
|||||||
.last("limit 1")
|
.last("limit 1")
|
||||||
);
|
);
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
actualAmount = actualAmount.add(projectMonthlyAmountMap.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED));
|
actualAmount = actualAmount.add(projectMonthlyAmountMap.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -170,7 +171,7 @@ public class MoneyBigScreenController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
actualAmount = actualAmount.add(projectAmountMap.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED));
|
actualAmount = actualAmount.add(projectAmountMap.get(contractCode).multiply(contract.getPayRatio()).setScale(4, RoundingMode.HALF_UP).divide(HUNDRED));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -351,7 +352,7 @@ public class MoneyBigScreenController {
|
|||||||
.last("limit 1")
|
.last("limit 1")
|
||||||
);
|
);
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED));
|
incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).setScale(4, RoundingMode.HALF_UP).divide(HUNDRED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -381,7 +382,7 @@ public class MoneyBigScreenController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED));
|
expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).setScale(4, RoundingMode.HALF_UP).divide(HUNDRED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,7 +450,7 @@ public class MoneyBigScreenController {
|
|||||||
.last("limit 1")
|
.last("limit 1")
|
||||||
);
|
);
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED));
|
incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).setScale(4, RoundingMode.HALF_UP).divide(HUNDRED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -479,7 +480,7 @@ public class MoneyBigScreenController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (contract != null && contract.getPayRatio() != null) {
|
if (contract != null && contract.getPayRatio() != null) {
|
||||||
expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED));
|
expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).setScale(4, RoundingMode.HALF_UP).divide(HUNDRED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -248,10 +249,10 @@ public class FacBoxTransformerServiceImpl extends ServiceImpl<FacBoxTransformerM
|
|||||||
progressCategory.setTotal(BigDecimal.valueOf(total));
|
progressCategory.setTotal(BigDecimal.valueOf(total));
|
||||||
// 如果单价不为 0 则计算产值
|
// 如果单价不为 0 则计算产值
|
||||||
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setOwnerOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setOwnerOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
||||||
@ -309,11 +310,11 @@ public class FacBoxTransformerServiceImpl extends ServiceImpl<FacBoxTransformerM
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -248,10 +249,10 @@ public class FacInverterServiceImpl extends ServiceImpl<FacInverterMapper, FacIn
|
|||||||
progressCategory.setTotal(BigDecimal.valueOf(total));
|
progressCategory.setTotal(BigDecimal.valueOf(total));
|
||||||
// 如果单价不为 0 则计算产值
|
// 如果单价不为 0 则计算产值
|
||||||
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
||||||
@ -309,11 +310,11 @@ public class FacInverterServiceImpl extends ServiceImpl<FacInverterMapper, FacIn
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
@ -178,11 +179,11 @@ public class FacPhotovoltaicPanelColumnServiceImpl extends ServiceImpl<FacPhotov
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@ -494,10 +495,10 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
|
|||||||
progressCategory.setTotal(BigDecimal.valueOf(total));
|
progressCategory.setTotal(BigDecimal.valueOf(total));
|
||||||
// 如果单价不为 0 则计算产值
|
// 如果单价不为 0 则计算产值
|
||||||
if (ownerPrice != null && ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (ownerPrice != null && ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice != null && constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (constructionPrice != null && constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
||||||
|
@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
@ -178,11 +179,11 @@ public class FacPhotovoltaicPanelPointServiceImpl extends ServiceImpl<FacPhotovo
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -46,6 +46,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@ -387,10 +388,10 @@ public class FacPhotovoltaicPanelServiceImpl extends ServiceImpl<FacPhotovoltaic
|
|||||||
progressCategory.setTotal(BigDecimal.valueOf(total));
|
progressCategory.setTotal(BigDecimal.valueOf(total));
|
||||||
// 如果单价不为 0 则计算产值
|
// 如果单价不为 0 则计算产值
|
||||||
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setOwnerOutputValue(ownerPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)));
|
progressCategory.setConstructionOutputValue(constructionPrice.multiply(BigDecimal.valueOf(total)).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
boolean result = progressCategoryService.updateBatchById(progressCategoryList);
|
||||||
@ -525,11 +526,11 @@ public class FacPhotovoltaicPanelServiceImpl extends ServiceImpl<FacPhotovoltaic
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
@ -178,11 +179,11 @@ public class FacPhotovoltaicPanelSupportServiceImpl extends ServiceImpl<FacPhoto
|
|||||||
progressCategory.setOwnerOutputValue(total.multiply(
|
progressCategory.setOwnerOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getOwnerPrice())
|
Optional.ofNullable(progressCategory.getOwnerPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
progressCategory.setConstructionOutputValue(total.multiply(
|
progressCategory.setConstructionOutputValue(total.multiply(
|
||||||
Optional.ofNullable(progressCategory.getConstructionPrice())
|
Optional.ofNullable(progressCategory.getConstructionPrice())
|
||||||
.orElse(BigDecimal.ZERO)
|
.orElse(BigDecimal.ZERO)
|
||||||
));
|
).setScale(4, RoundingMode.HALF_UP));
|
||||||
boolean result = progressCategoryService.updateById(progressCategory);
|
boolean result = progressCategoryService.updateById(progressCategory);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("更新进度失败,数据库异常", HttpStatus.ERROR);
|
||||||
|
@ -25,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@ -258,7 +259,7 @@ public class OutTableController extends BaseController {
|
|||||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements) {
|
for (BusProcurement busProcurement : busProcurements) {
|
||||||
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
||||||
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -330,7 +331,7 @@ public class OutTableController extends BaseController {
|
|||||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements) {
|
for (BusProcurement busProcurement : busProcurements) {
|
||||||
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
||||||
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -439,7 +440,7 @@ public class OutTableController extends BaseController {
|
|||||||
BigDecimal accumulatedCompletionValue = BigDecimal.ZERO;
|
BigDecimal accumulatedCompletionValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements) {
|
for (BusProcurement busProcurement : busProcurements) {
|
||||||
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
||||||
accumulatedCompletionValue = accumulatedCompletionValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
accumulatedCompletionValue = accumulatedCompletionValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -453,7 +454,7 @@ public class OutTableController extends BaseController {
|
|||||||
|
|
||||||
BigDecimal monthCompletionValue = BigDecimal.ZERO;
|
BigDecimal monthCompletionValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements1) {
|
for (BusProcurement busProcurement : busProcurements1) {
|
||||||
monthCompletionValue = monthCompletionValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
monthCompletionValue = monthCompletionValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
vo.setMonthCompletionValue(monthCompletionValue);
|
vo.setMonthCompletionValue(monthCompletionValue);
|
||||||
|
|
||||||
@ -547,7 +548,7 @@ public class OutTableController extends BaseController {
|
|||||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements) {
|
for (BusProcurement busProcurement : busProcurements) {
|
||||||
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
||||||
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -563,7 +564,7 @@ public class OutTableController extends BaseController {
|
|||||||
BigDecimal subPurchaseValue = BigDecimal.ZERO;
|
BigDecimal subPurchaseValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements1) {
|
for (BusProcurement busProcurement : busProcurements1) {
|
||||||
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){
|
||||||
subPurchaseValue = subPurchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
subPurchaseValue = subPurchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import org.springframework.context.event.EventListener;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -145,11 +146,11 @@ public class OutConstructionValueServiceImpl extends ServiceImpl<OutConstruction
|
|||||||
PgsProgressCategory progressCategory = pgsProgressCategoryService.getById(bo.getProgressCategoryId());
|
PgsProgressCategory progressCategory = pgsProgressCategoryService.getById(bo.getProgressCategoryId());
|
||||||
if (progressCategory != null) {
|
if (progressCategory != null) {
|
||||||
if ("1".equals(progressCategory.getUnitType())) {
|
if ("1".equals(progressCategory.getUnitType())) {
|
||||||
add.setOutValue(progressCategory.getConstructionPrice().multiply(BigDecimal.valueOf(bo.getArtificialNum())));
|
add.setOutValue(progressCategory.getConstructionPrice().multiply(BigDecimal.valueOf(bo.getArtificialNum())).setScale(4, RoundingMode.HALF_UP));
|
||||||
add.setOwnerValue(progressCategory.getOwnerPrice().multiply(BigDecimal.valueOf(bo.getArtificialNum())));
|
add.setOwnerValue(progressCategory.getOwnerPrice().multiply(BigDecimal.valueOf(bo.getArtificialNum())).setScale(4, RoundingMode.HALF_UP));
|
||||||
} else if ("2".equals(progressCategory.getUnitType())) {
|
} else if ("2".equals(progressCategory.getUnitType())) {
|
||||||
add.setOwnerValue(progressCategory.getOwnerPrice().multiply(BigDecimal.valueOf(bo.getUavNum()).divide(new BigDecimal("100"))));
|
add.setOwnerValue(progressCategory.getOwnerPrice().multiply(BigDecimal.valueOf(bo.getUavNum()).divide(new BigDecimal("100"))).setScale(4, RoundingMode.HALF_UP));
|
||||||
add.setOutValue(progressCategory.getConstructionPrice().multiply(BigDecimal.valueOf(bo.getUavNum()).divide(new BigDecimal("100"))));
|
add.setOutValue(progressCategory.getConstructionPrice().multiply(BigDecimal.valueOf(bo.getUavNum()).divide(new BigDecimal("100"))).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ import org.dromara.out.mapper.OutMonthPlanMapper;
|
|||||||
import org.dromara.out.service.IOutMonthPlanService;
|
import org.dromara.out.service.IOutMonthPlanService;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.temporal.TemporalAdjusters;
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -377,7 +378,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
|
|||||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||||
for (BusProcurement busProcurement : busProcurements) {
|
for (BusProcurement busProcurement : busProcurements) {
|
||||||
if (busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null) {
|
if (busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null) {
|
||||||
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
|
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -222,10 +223,10 @@ public class PgsProgressCategoryController extends BaseController {
|
|||||||
BigDecimal total = pgsProgressCategory.getTotal();
|
BigDecimal total = pgsProgressCategory.getTotal();
|
||||||
if (total != null && total.compareTo(BigDecimal.ZERO) != 0) {
|
if (total != null && total.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
if (ownerPrice != null && ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (ownerPrice != null && ownerPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
pgsProgressCategory.setOwnerOutputValue(ownerPrice.multiply(total));
|
pgsProgressCategory.setOwnerOutputValue(ownerPrice.multiply(total).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice != null && constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
if (constructionPrice != null && constructionPrice.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
pgsProgressCategory.setConstructionOutputValue(constructionPrice.multiply(total));
|
pgsProgressCategory.setConstructionOutputValue(constructionPrice.multiply(total).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -378,10 +378,10 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl<PgsProgressCateg
|
|||||||
}
|
}
|
||||||
// 计算产值
|
// 计算产值
|
||||||
if (ownerPrice != null && total != null && ownerPrice.compareTo(BigDecimal.ZERO) >= 0 && total.compareTo(BigDecimal.ZERO) >= 0) {
|
if (ownerPrice != null && total != null && ownerPrice.compareTo(BigDecimal.ZERO) >= 0 && total.compareTo(BigDecimal.ZERO) >= 0) {
|
||||||
progressCategory.setOwnerOutputValue(ownerPrice.multiply(total));
|
progressCategory.setOwnerOutputValue(ownerPrice.multiply(total).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (constructionPrice != null && total != null && constructionPrice.compareTo(BigDecimal.ZERO) >= 0 && total.compareTo(BigDecimal.ZERO) >= 0) {
|
if (constructionPrice != null && total != null && constructionPrice.compareTo(BigDecimal.ZERO) >= 0 && total.compareTo(BigDecimal.ZERO) >= 0) {
|
||||||
progressCategory.setConstructionOutputValue(constructionPrice.multiply(total));
|
progressCategory.setConstructionOutputValue(constructionPrice.multiply(total).setScale(4, RoundingMode.HALF_UP));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(workType) && PgsProgressCategoryConstant.WORK_TYPE_LIST.contains(workType)) {
|
if (StringUtils.isNotBlank(workType) && PgsProgressCategoryConstant.WORK_TYPE_LIST.contains(workType)) {
|
||||||
List<PgsProgressCategory> progressCategoryList = this.lambdaQuery()
|
List<PgsProgressCategory> progressCategoryList = this.lambdaQuery()
|
||||||
@ -457,8 +457,8 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl<PgsProgressCateg
|
|||||||
if (unitType.equals(PgsProgressUnitTypeEnum.PERCENTAGE.getValue()) ||
|
if (unitType.equals(PgsProgressUnitTypeEnum.PERCENTAGE.getValue()) ||
|
||||||
progressCategory.getUnitType().equals(PgsProgressUnitTypeEnum.PERCENTAGE.getValue())) {
|
progressCategory.getUnitType().equals(PgsProgressUnitTypeEnum.PERCENTAGE.getValue())) {
|
||||||
progressCategory.setTotal(req.getTotal());
|
progressCategory.setTotal(req.getTotal());
|
||||||
ownerOutputValue = req.getTotal().multiply(ownerPrice);
|
ownerOutputValue = req.getTotal().multiply(ownerPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
constructionOutputValue = req.getTotal().multiply(constructionPrice);
|
constructionOutputValue = req.getTotal().multiply(constructionPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
} else if (((unitType.equals(PgsProgressUnitTypeEnum.NUMBER.getValue())) ||
|
} else if (((unitType.equals(PgsProgressUnitTypeEnum.NUMBER.getValue())) ||
|
||||||
(progressCategory.getUnitType().equals(PgsProgressUnitTypeEnum.NUMBER.getValue())))
|
(progressCategory.getUnitType().equals(PgsProgressUnitTypeEnum.NUMBER.getValue())))
|
||||||
&& progressCategory.getWorkType() != null) {
|
&& progressCategory.getWorkType() != null) {
|
||||||
@ -466,8 +466,8 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl<PgsProgressCateg
|
|||||||
if (total == null || total.compareTo(BigDecimal.ZERO) <= 0) {
|
if (total == null || total.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
throw new ServiceException("请导入分项工程数量后再添加单价", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("请导入分项工程数量后再添加单价", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
ownerOutputValue = total.multiply(ownerPrice);
|
ownerOutputValue = total.multiply(ownerPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
constructionOutputValue = total.multiply(constructionPrice);
|
constructionOutputValue = total.multiply(constructionPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
} else {
|
} else {
|
||||||
BigDecimal total = req.getTotal();
|
BigDecimal total = req.getTotal();
|
||||||
if (total == null || total.compareTo(BigDecimal.ZERO) <= 0) {
|
if (total == null || total.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
@ -477,8 +477,8 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl<PgsProgressCateg
|
|||||||
throw new ServiceException("请输入分项工程数量", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("请输入分项工程数量", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
progressCategory.setTotal(total);
|
progressCategory.setTotal(total);
|
||||||
ownerOutputValue = total.multiply(ownerPrice);
|
ownerOutputValue = total.multiply(ownerPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
constructionOutputValue = total.multiply(constructionPrice);
|
constructionOutputValue = total.multiply(constructionPrice).setScale(4, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
// 填入数据
|
// 填入数据
|
||||||
progressCategory.setName(req.getName());
|
progressCategory.setName(req.getName());
|
||||||
|
@ -48,6 +48,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
@ -926,8 +927,8 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl<PgsProgressPla
|
|||||||
// 计算产值
|
// 计算产值
|
||||||
BigDecimal constructionPrice = category.getConstructionPrice();
|
BigDecimal constructionPrice = category.getConstructionPrice();
|
||||||
BigDecimal ownerPrice = category.getOwnerPrice();
|
BigDecimal ownerPrice = category.getOwnerPrice();
|
||||||
value.setOutValue(constructionPrice.multiply(BigDecimal.valueOf(artificialNum)).add(constructionPrice.multiply(BigDecimal.valueOf(uavNum))));
|
value.setOutValue(constructionPrice.multiply(BigDecimal.valueOf(artificialNum)).setScale(4, RoundingMode.HALF_UP).add(constructionPrice.multiply(BigDecimal.valueOf(uavNum)).setScale(4, RoundingMode.HALF_UP)));
|
||||||
value.setOwnerValue(ownerPrice.multiply(BigDecimal.valueOf(artificialNum)).add(ownerPrice.multiply(BigDecimal.valueOf(uavNum))));
|
value.setOwnerValue(ownerPrice.multiply(BigDecimal.valueOf(artificialNum)).setScale(4, RoundingMode.HALF_UP).add(ownerPrice.multiply(BigDecimal.valueOf(uavNum)).setScale(4, RoundingMode.HALF_UP)));
|
||||||
saveList.add(value);
|
saveList.add(value);
|
||||||
}
|
}
|
||||||
// 保存数据
|
// 保存数据
|
||||||
|
@ -362,7 +362,7 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
|
|||||||
// 如果是叶子节点,计算 price = quantity * unitPrice
|
// 如果是叶子节点,计算 price = quantity * unitPrice
|
||||||
if (node.getChildren().isEmpty()) {
|
if (node.getChildren().isEmpty()) {
|
||||||
if (node.getQuantity() != null && node.getUnitPrice() != null) {
|
if (node.getQuantity() != null && node.getUnitPrice() != null) {
|
||||||
node.setPrice(node.getQuantity().multiply(node.getUnitPrice()));
|
node.setPrice(node.getQuantity().multiply(node.getUnitPrice()).setScale(4, RoundingMode.HALF_UP));
|
||||||
} else {
|
} else {
|
||||||
node.setPrice(BigDecimal.ZERO); // 默认值
|
node.setPrice(BigDecimal.ZERO); // 默认值
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ public class BusSegmentedIndicatorPlanningServiceImpl extends ServiceImpl<BusSeg
|
|||||||
private void validEntityBeforeSave(BusSegmentedIndicatorPlanning entity) {
|
private void validEntityBeforeSave(BusSegmentedIndicatorPlanning entity) {
|
||||||
//TODO 做一些数据校验,如唯一约束
|
//TODO 做一些数据校验,如唯一约束
|
||||||
String dictName = entity.getDictName();
|
String dictName = entity.getDictName();
|
||||||
BigDecimal contractPrice = entity.getPrice().multiply(new BigDecimal("10000"));
|
BigDecimal contractPrice = entity.getPrice().multiply(new BigDecimal("10000")).setScale(4, RoundingMode.HALF_UP);
|
||||||
switch (dictName) {
|
switch (dictName) {
|
||||||
case "1" -> {
|
case "1" -> {
|
||||||
if (contractPrice.compareTo(BigDecimal.valueOf(100000000)) > 0) {
|
if (contractPrice.compareTo(BigDecimal.valueOf(100000000)) > 0) {
|
||||||
|
Reference in New Issue
Block a user