liyong
8 天以前 ca0565e53494417b3779759f8d3898e07bfd5929
src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
@@ -1,15 +1,28 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.poi.ExcelUtil;
import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
import com.ruoyi.production.dto.SalesLedgerSchedulingDto;
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
import com.ruoyi.production.pojo.SalesLedgerWork;
import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.math.BigDecimal;
/**
 * @author :yys
@@ -25,6 +38,34 @@
    @Override
    public IPage<SalesLedgerProductionAccountingDto> listPage(Page page, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto) {
        IPage<SalesLedgerProductionAccountingDto> list = salesLedgerProductionAccountingMapper.listPage(page, salesLedgerProductionAccountingDto);
        list.getRecords().forEach(item -> {
            String[] split = item.getSpecificationModel().split("\\*");
            if(split.length == 2 && isNumeric(split[1])){
                // 计算工资 = 工时定额 * 数量 * 规格
                item.setWages(item.getWages().multiply(new BigDecimal(split[1])));
            }
        });
        return list;
    }
    public static boolean isNumeric(String str) {
        if (str == null || str.isEmpty()) {
            return false;
        }
        // 遍历字符串的每个字符,检查是否为数字
        for (int i = 0; i < str.length(); i++) {
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
    @Override
    public void export(HttpServletResponse response) {
        Page page =  new Page(-1,-1);
        IPage<SalesLedgerProductionAccountingDto> salesLedgerProductionAccountingDtoIPage = listPage(page, new SalesLedgerProductionAccountingDto());
        ExcelUtil<SalesLedgerProductionAccountingDto> util = new ExcelUtil<>(SalesLedgerProductionAccountingDto.class);
        util.exportExcel(response, salesLedgerProductionAccountingDtoIPage.getRecords(), "生产订单");
    }
}