zss
2 天以前 928f17024c89d224da33e4cf7778615345ac9941
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -10,8 +10,8 @@
import com.ruoyi.procurementrecord.dto.*;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -24,10 +24,12 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -65,18 +67,18 @@
            List<ProcurementRecordStorage> collect1 = procurementRecordStorages.stream()
                    .filter(procurementRecordStorage -> procurementRecordStorage.getSalesLedgerProductId().equals(dto.getId()))
                    .collect(Collectors.toList());
            // 如果没有相关的入库记录,跳过该条数据
            if(CollectionUtils.isEmpty(collect1)){
                dto.setQuantity0(dto.getQuantity());
                continue;
            }
            // 计算已入库数量总和,并设置待入库数量
            BigDecimal totalInboundNum = collect1.stream()
                    .map(ProcurementRecordStorage::getInboundNum)
                    .reduce(BigDecimal.ZERO, BigDecimal::add);
            // 待入库数量 = 总数量 - 已入库数量
            dto.setQuantity0(dto.getQuantity().subtract(totalInboundNum));
        }
@@ -370,6 +372,30 @@
    }
    @Override
    public int addProduct(Details detail) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        ProcurementRecordStorage.ProcurementRecordStorageBuilder builder = ProcurementRecordStorage.builder()
                .id(detail.getId())
                .inboundBatches("第1批次")
                .inboundNum(detail.getInboundQuantity())
                .warnNum(detail.getWarnNum())
                .outStockQuantity(detail.getOutStockQuantity())
                .shortageDescription(detail.getShortageDescription())
                .productModelId(detail.getProductModelId())
                .updateTime(LocalDateTime.now())
                .updateUser(loginUser.getUserId());
        if (detail.getId() == null) {
            builder.createTime(LocalDateTime.now())
                    .createUser(loginUser.getUserId())
                    .createBy(loginUser.getNickName());
        }
        boolean success = this.saveOrUpdate(builder.build());
        return success ? 1 : 0;
    }
    @Override
    public IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto) {
        IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPage(page, procurementDto);
        List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords();