From f90a37fa86568c94b5ed9be14942e7e234db016e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 27 一月 2026 17:48:24 +0800
Subject: [PATCH] refactor(stock): 删除getStockQuantity方法
---
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 52 ++++++++++++++++++++++++----------------------------
1 files changed, 24 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 3b48ec4..cb5d600 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -51,6 +51,7 @@
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.staff.mapper.StaffOnJobMapper;
import com.ruoyi.staff.pojo.StaffOnJob;
+import com.ruoyi.stock.mapper.StockInventoryMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -123,6 +124,7 @@
private SysUserMapper sysUserMapper;
@Autowired
private SysUserDeptMapper sysUserDeptMapper;
+ private StockInventoryMapper stockInventoryMapper;
@Override
public HomeBusinessDto business() {
@@ -135,7 +137,7 @@
salesLedgerLambdaQueryWrapper.ge(SalesLedger::getEntryDate, currentMonth.atDay(1).atStartOfDay()) // 澶т簬绛変簬鏈湀绗竴澶�
.lt(SalesLedger::getEntryDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 灏忎簬涓嬫湀绗竴澶�
List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(salesLedgerLambdaQueryWrapper);
- if(!CollectionUtils.isEmpty(salesLedgers)){
+ if (!CollectionUtils.isEmpty(salesLedgers)) {
// 鍚堣鍚堝悓閲戦
BigDecimal contractAmount = salesLedgers.stream().map(SalesLedger::getContractAmount)
.filter(Objects::nonNull)
@@ -157,7 +159,7 @@
.lt(PurchaseLedger::getEntryDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 灏忎簬涓嬫湀绗竴澶�
// 鎵ц鏌ヨ骞惰绠楁�诲拰
List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(queryWrapper);
- if(!CollectionUtils.isEmpty(purchaseLedgers)){
+ if (!CollectionUtils.isEmpty(purchaseLedgers)) {
LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductMapperLambdaQueryWrapperCopy = new LambdaQueryWrapper<SalesLedgerProduct>();
salesLedgerProductMapperLambdaQueryWrapperCopy.eq(SalesLedgerProduct::getType, 2)
.in(SalesLedgerProduct::getSalesLedgerId, purchaseLedgers.stream().map(PurchaseLedger::getId).collect(Collectors.toList()));
@@ -193,17 +195,9 @@
// .filter(Objects::nonNull)
// .reduce(BigDecimal.ZERO, BigDecimal::add);
// BigDecimal stock = stockAmount.add(customStockAmount).subtract(outboundAmount);
- IPage<ProductModel> productModelIPage = productModelMapper.listPageProductModel(new Page<>(1, -1), new ProductModel());
- if(!CollectionUtils.isEmpty(productModelIPage.getRecords())){
- //鑾峰彇瑙勬牸id
- List<Long> modelIds = productModelIPage.getRecords().stream().map(ProductModel::getId).collect(Collectors.toList());
- BigDecimal stockQuantityTotal = modelIds.stream()
- .map(stockUtils::getStockQuantity)
- .map(map -> map.get("stockQuantity"))
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- homeBusinessDto.setInventoryNum(stockQuantityTotal.setScale(2, RoundingMode.HALF_UP).toString());
- }
+ BigDecimal stockQuantityTotal = stockInventoryMapper.selectTotal();
+ homeBusinessDto.setInventoryNum(stockQuantityTotal.setScale(2, RoundingMode.HALF_UP).toString());
+
// 鑾峰彇褰撳ぉ鍏ュ簱鏁伴噺
LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -253,9 +247,9 @@
BigDecimal subtract = weekContractAmount.subtract(lastYearWeekContractAmount);
String weekYny = "";
// 鍛ㄥ悓姣�
- if(subtract.compareTo(BigDecimal.ZERO) == 0 || lastYearWeekContractAmount.compareTo(BigDecimal.ZERO) == 0){
+ if (subtract.compareTo(BigDecimal.ZERO) == 0 || lastYearWeekContractAmount.compareTo(BigDecimal.ZERO) == 0) {
weekYny = "0.00";
- }else{
+ } else {
weekYny = String.format("%.2f", subtract.divide(lastYearWeekContractAmount, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
}
@@ -278,9 +272,9 @@
BigDecimal subtract1 = todayContractAmount.subtract(lastYearYesterdayContractAmount); // 淇敼锛氫娇鐢� todayContractAmount 鑰屼笉鏄� yesterdayContractAmount
// 鏃ョ幆姣�
String chain = "";
- if(subtract1.compareTo(BigDecimal.ZERO) == 0 || lastYearYesterdayContractAmount.compareTo(BigDecimal.ZERO) == 0){
+ if (subtract1.compareTo(BigDecimal.ZERO) == 0 || lastYearYesterdayContractAmount.compareTo(BigDecimal.ZERO) == 0) {
chain = "0.00";
- }else{
+ } else {
chain = String.format("%.2f", subtract1.divide(lastYearYesterdayContractAmount, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
}
@@ -294,14 +288,14 @@
Map<String, BigDecimal> collect = salesLedgers.stream().collect(Collectors.groupingBy(SalesLedger::getCustomerName, Collectors.reducing(BigDecimal.ZERO,
SalesLedger::getContractAmount, BigDecimal::add)));
List<MapDto> mapDtos = new ArrayList<>();
- collect.forEach((k,v)->{
+ collect.forEach((k, v) -> {
MapDto mapDto = new MapDto();
mapDto.setName(k);
// 淇敼锛氬皢閲戦鍊间繚鐣欎袱浣嶅皬鏁�
mapDto.setValue(v.setScale(2, RoundingMode.HALF_UP).toString());
- if(contractAmount.compareTo(new BigDecimal(0)) == 0){
+ if (contractAmount.compareTo(new BigDecimal(0)) == 0) {
mapDto.setRate("0");
- }else{
+ } else {
mapDto.setRate(String.format("%.2f", v.divide(contractAmount, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"))));
}
mapDtos.add(mapDto);
@@ -347,7 +341,7 @@
.filter(inspect -> inspect.getInspectType().equals(1))
.map(QualityInspect::getQuantity)
.reduce(BigDecimal.ZERO, BigDecimal::add);
- processNum= processNum.add(reduce1);
+ processNum = processNum.add(reduce1);
BigDecimal reduce2 = monthInspects.stream()
.filter(inspect -> inspect.getInspectType().equals(2))
.map(QualityInspect::getQuantity)
@@ -402,7 +396,7 @@
.ne(ApproveProcess::getApproveStatus, 2);
// .eq(ApproveProcess::getTenantId, loginUser.getTenantId());
List<ApproveProcess> approveProcesses = approveProcessMapper.selectList(approveProcessLambdaQueryWrapper);
- if(CollectionUtils.isEmpty(approveProcesses)){
+ if (CollectionUtils.isEmpty(approveProcesses)) {
approveProcesses = new ArrayList<>();
}
// // 鏌ヨ鏈鐢ㄥ姵淇濊褰�
@@ -426,7 +420,6 @@
}
/**
- *
* @param type 1-鍛� 2-鏈� 3-瀛e害
* @return
*/
@@ -435,7 +428,7 @@
LocalDate today = LocalDate.now();
LocalDate startDate = null;
LocalDate endDate = null;
- switch (type){
+ switch (type) {
case 1:
// 鑾峰彇鏈懆鍛ㄤ竴
startDate = today.with(DayOfWeek.MONDAY);
@@ -493,6 +486,7 @@
return statisticsReceivablePayableDto;
}
+
public static <T> BigDecimal sumAmount(List<T> list, java.util.function.Function<T, BigDecimal> amountExtractor) {
return list.stream()
// 鎻愬彇閲戦鏃讹紝灏唍ull鏇挎崲涓築igDecimal.ZERO
@@ -500,6 +494,7 @@
// 绱姞锛屽垵濮嬪�间负0锛岄伩鍏嶇┖娴侀棶棰�
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
+
@Autowired
private DeviceRepairMapper deviceRepairMapper;
@@ -542,9 +537,10 @@
productionProgressDto.setTotalOrderCount(totalCount);
productionProgressDto.setCompletedOrderCount(count);
productionProgressDto.setUncompletedOrderCount(count2);
- productionProgressDto.setPartialCompletedOrderCount(totalCount-count-count2);
+ productionProgressDto.setPartialCompletedOrderCount(totalCount - count - count2);
return productionProgressDto;
}
+
@Override
public ProductionTurnoverDto workInProcessTurnover() {
ProductionTurnoverDto productionTurnoverDto = new ProductionTurnoverDto();
@@ -557,15 +553,15 @@
.map(ProductWorkOrder::getPlanQuantity)
.mapToLong(BigDecimal::longValue)
.sum();
- if (sum == 0)return null;
+ if (sum == 0) return null;
productionTurnoverDto.setTotalOrderCount(sum);//鎬诲湪鍒跺搧鏁伴噺
- productionTurnoverDto.setAverageTurnoverDays(BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(ChronoUnit.DAYS.between(LocalDateTime.now().minusMonths(1), LocalDateTime.now())),2,RoundingMode.HALF_UP));
+ productionTurnoverDto.setAverageTurnoverDays(BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(ChronoUnit.DAYS.between(LocalDateTime.now().minusMonths(1), LocalDateTime.now())), 2, RoundingMode.HALF_UP));
long completeQuantity = productWorkOrders.stream()
.filter(productWorkOrder -> productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) >= 0)
.map(ProductWorkOrder::getCompleteQuantity)
.mapToLong(BigDecimal::longValue)
.sum();
- productionTurnoverDto.setTurnoverEfficiency(BigDecimal.valueOf(completeQuantity).divide(BigDecimal.valueOf(sum),2,RoundingMode.HALF_UP));
+ productionTurnoverDto.setTurnoverEfficiency(BigDecimal.valueOf(completeQuantity).divide(BigDecimal.valueOf(sum), 2, RoundingMode.HALF_UP));
Map<String, List<ProductWorkOrderDto>> map = productWorkOrders.stream()
.filter(productWorkOrder -> productWorkOrder.getPlanQuantity().compareTo(productWorkOrder.getCompleteQuantity()) > 0)
.collect(Collectors.groupingBy(ProductWorkOrderDto::getProcessName));
--
Gitblit v1.9.3