maven
2025-11-26 96b8e473365b305441c85162433db0705f308790
yys
1.生产报工增加字段
已修改3个文件
47 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/SalesLedgerWorkMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
@@ -101,6 +101,13 @@
    private String loss;
    /**
     * 绑定机器
     */
    @ApiModelProperty(value = "绑定机器")
    @Excel(name = "绑定机器")
    private String speculativeTradingName;
    /**
     * 口味分类
     */
    @ApiModelProperty(value = "口味分类")
src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
@@ -22,12 +22,16 @@
import com.ruoyi.production.service.SalesLedgerWorkService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.sales.mapper.LossMapper;
import com.ruoyi.sales.pojo.Loss;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -47,14 +51,45 @@
    private final SysUserMapper sysUserMapper;
    private final LossMapper lossMapper;
    private final SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
    @Override
    public IPage<SalesLedgerWorkDto> listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
        IPage<SalesLedgerWorkDto> iPage = salesLedgerWorkMapper.listPage(page, salesLedgerWorkDto);
        List<Loss> losses = lossMapper.selectList(null);
        if(!CollectionUtils.isEmpty(losses)){
            iPage.getRecords().forEach(item -> {
                String[] split = item.getSpecificationModel().split("\\*");
                if(split.length == 2 && isNumeric(split[1]) && isNumeric(split[0])){
                    // 计算损耗
                    BigDecimal divide = new BigDecimal(split[0])
                            .multiply(new BigDecimal(split[1]))
                            .multiply(item.getFinishedNum())
                            .multiply(losses.get(0).getRate())
                            .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
                    item.setLoss(divide.toString());
                }
            });
        }
        return iPage;
    }
    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;
    }
    private final ProcurementRecordServiceImpl procurementRecordService;
    @Override
src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
@@ -13,7 +13,6 @@
        t4.finished_num,
        t4.work_hours,
        t4.process,
        t4.loss,
        t4.type,
        t4.remark,
        t4.receive,
@@ -23,11 +22,13 @@
        T1.customer_name,
        t3.product_category,
        t3.specification_model,
        t3.unit
        t3.unit,
        t2.speculative_trading_name
        FROM
        sales_ledger_work t4
        LEFT JOIN sales_ledger T1 ON T1.id = t4.sales_ledger_id
        left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id
        left join sales_ledger_scheduling t2 on t4.sales_ledger_scheduling_id = t2.id
        <where>
            t3.type = 1
            <if test="salesLedgerDto.status != null and salesLedgerDto.status != '' ">