chenhj
8 小时以前 e7fec9ecae7757284d676f41b2fe1b32943c0f25
src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
@@ -58,7 +58,7 @@
    @Override
    public IPage<SalesLedgerSchedulingDto> listPage(Page page, SalesLedgerSchedulingDto salesLedgerSchedulingDto) {
        IPage<SalesLedgerSchedulingDto> list = salesLedgerSchedulingMapper.listPage(page, salesLedgerSchedulingDto);
        if(list.getTotal() == 0){
        if(CollectionUtils.isEmpty(list.getRecords())){
            return list;
        }
        Set<Long> collect = list.getRecords().stream().map(SalesLedgerSchedulingDto::getSalesLedgerProductId).collect(Collectors.toSet());
@@ -66,7 +66,6 @@
        salesLedgerWorkLambdaQueryWrapper.in(SalesLedgerWork::getSalesLedgerProductId, collect)
                .ne(SalesLedgerWork::getStatus, 1);
        List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
        List<SalesLedgerSchedulingDto> list1 = new ArrayList<>();
        list.getRecords().forEach(i -> {
            // 获取完成数量
            i.setSuccessNum(salesLedgerWorks
@@ -86,12 +85,14 @@
            // 状态 = 数量和完工数量比较
            if(i.getSchedulingNum().compareTo(new BigDecimal(0)) == 0){
                i.setStatus("未完成");
                i.setStatus("未开始");
            } else if(i.getQuantity().compareTo(i.getSchedulingNum()) <= 0){
                i.setStatus("已完成");
            }else{
                i.setStatus("生产中");
            }
            // 进度保留两位小数
            i.setProgress(i.getSchedulingNum().divide(i.getQuantity(),4,RoundingMode.CEILING).multiply(new BigDecimal(100)));
        });
        return list;
@@ -190,10 +191,26 @@
                i++;
                continue;
            }
            String productionLine = "";
            switch (name.get()){
                    case "炒机1":
                    productionLine = "产线1";
                    break;
                    case "炒机2":
                    productionLine = "产线2";
                    break;
                    case "炒机3":
                    productionLine = "产线3";
                    break;
                    case "炒机4":
                    productionLine = "产线4";
                    break;
            }
            SalesLedgerScheduling salesLedgerScheduling = SalesLedgerScheduling.builder()
                    .salesLedgerId(productionDispatchAddDto.getSalesLedgerId())
                    .salesLedgerProductId(productionDispatchAddDto.getSalesLedgerProductId())
                    .speculativeTradingName(name.get())
                    .productionLine(productionLine)
                    .schedulingUserId(sysUser.getUserId())
                    .schedulingUserName(sysUser.getNickName())
                    .schedulingNum(productionDispatchAddDto.getSchedulingNum())
@@ -285,12 +302,6 @@
    @Override
    public IPage<SalesLedgerSchedulingProcessDto> listPageProcess(Page page, SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto) {
        IPage<SalesLedgerSchedulingProcessDto> list = salesLedgerSchedulingMapper.listPageProcess(page, salesLedgerSchedulingDto);
//        Set<Long> collect = list.getRecords().stream().map(SalesLedgerSchedulingProcessDto::getId).collect(Collectors.toSet());
//        if(CollectionUtils.isEmpty(collect)) return list;
//        LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
//        salesLedgerWorkLambdaQueryWrapper.in(SalesLedgerWork::getSalesLedgerSchedulingId, collect)
//                .ne(SalesLedgerWork::getStatus, 1);
//        List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
        list.getRecords().forEach(i -> {
            // 计算生产总量 = 规格 * 数量 / 1000
            String[] split = i.getSpecificationModel().split("\\*");