liyong
3 天以前 a92b12d5adaa8827c1474d42b73c98e17953ecb5
src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
@@ -1,17 +1,27 @@
package com.ruoyi.production.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.production.dto.ProductionProductMainDto;
import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
import com.ruoyi.production.dto.UserAccountDto;
import com.ruoyi.production.dto.UserProductionAccountingDto;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * @author :yys
@@ -23,7 +33,8 @@
public class SalesLedgerProductionAccountingServiceImpl extends ServiceImpl<SalesLedgerProductionAccountingMapper, SalesLedgerProductionAccounting> implements SalesLedgerProductionAccountingService {
  
    private final SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
    private final ProductionProductMainMapper productionProductMainMapper;
    @Override
    public IPage<SalesLedgerProductionAccountingDto> listPage(Page page, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto) {
        IPage<SalesLedgerProductionAccountingDto> list = salesLedgerProductionAccountingMapper.listPage(page, salesLedgerProductionAccountingDto);
@@ -37,6 +48,52 @@
        return list;
    }
    @Override
    public IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page) {
        // TODO 管理员查询所有,其他人只能查自己
        boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
        if (!admin) {
            salesLedgerProductionAccountingDto.setSchedulingUserName(SecurityUtils.getUsername());
        }
        if (salesLedgerProductionAccountingDto.getDateType().equals("month"))  {
            salesLedgerProductionAccountingDto.setEntryDate(null);
        }else {
            salesLedgerProductionAccountingDto.setEntryDateStart(null);
            salesLedgerProductionAccountingDto.setEntryDateEnd(null);
        }
        IPage<SalesLedgerProductionAccountingDto> salesLedgerProductionAccountingDtoIPage = salesLedgerProductionAccountingMapper.pageProductionAccounting(page, salesLedgerProductionAccountingDto);
        salesLedgerProductionAccountingDtoIPage.getRecords().forEach(it->{
            // 拿到机台统计 分钟-机台, 这样排列
            String deviceWorkInfo = it.getDeviceWorkInfo();
            List<String> str = StrUtil.split(deviceWorkInfo, ">>>");
            List<Pair<String,Integer>> collect = str.stream().map(n1 -> {
                List<String> strPair = StrUtil.split(n1, "|$|");
                if (strPair.size() == 2) {
                    return Pair.of(strPair.get(1),Integer.parseInt(strPair.get(0)));
                }
                return null;
            }).filter(Objects::nonNull).collect(Collectors.toList());
            it.setDeviceWorkInfoPairList(collect);
        });
        return salesLedgerProductionAccountingDtoIPage;
    }
    @Override
    public IPage<ProductionProductMainDto> listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page) {
        if (salesLedgerProductionAccountingDto.getDateType().equals("month"))  {
            salesLedgerProductionAccountingDto.setEntryDate(null);
        }else {
            salesLedgerProductionAccountingDto.setEntryDateStart(null);
            salesLedgerProductionAccountingDto.setEntryDateEnd(null);
        }
        return productionProductMainMapper.listProductionDetails(salesLedgerProductionAccountingDto, page);
    }
    @Override
    public UserAccountDto getByUserId(UserProductionAccountingDto userProductionAccountingDto) {
        return salesLedgerProductionAccountingMapper.getByUserId( userProductionAccountingDto);
    }
    public static boolean isNumeric(String str) {
        if (str == null || str.isEmpty()) {
            return false;