wangfei
2025-11-24 e08c30f6a36a15be4e019b5e0d631f32f6d06029
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -11,6 +12,7 @@
import com.mes.common.config.Const;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.DamagePrint;
import com.mes.damage.entity.dto.DamageDTO;
import com.mes.damage.mapper.DamageMapper;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
@@ -36,6 +38,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -67,17 +70,18 @@
    /**
     * 分页查询损坏记录
     * @param startTime 开始时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param endTime 结束时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param type 损坏类型(0表示查询所有类型)
     * @param status 状态(0表示查询所有状态)
     *
     * @param startTime        开始时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param endTime          结束时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param type             损坏类型(0表示查询所有类型)
     * @param status           状态(0表示查询所有状态)
     * @param workingProcedure 工序("0"表示查询所有工序)
     * @param pageNum 页码(从1开始)
     * @param pageSize 每页条数
     * @param pageNum          页码(从1开始)
     * @param pageSize         每页条数
     * @return 分页后的损坏记录列表
     */
    @Override
    public Page<Damage> selectDamage(
    public Page<DamageDTO> selectDamage(
            String startTime,
            String endTime,
            int type,
@@ -86,15 +90,27 @@
            int pageNum,  // 新增:动态页码
            int pageSize  // 新增:动态每页条数
    ) {
        Page<Damage> page = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
        damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime)
                .eq(type != 0, Damage::getType, type)
                .eq(status != 0, Damage::getStatus, status)
                .eq(!"0".equals(workingProcedure), Damage::getWorkingProcedure, workingProcedure);
        return this.page(page, damageSelectWrapper);
        if (workingProcedure == null || workingProcedure.trim().isEmpty() || "0".equals(workingProcedure)) {
            workingProcedure = null;
        }
        Page<DamageDTO> page = new Page<>(pageNum, pageSize);
        List<DamageDTO> damages = this.baseMapper.selectDamageList(
                startTime,
                endTime,
                type,
                status,
                workingProcedure
        );
        page.setTotal(damages.size());
        int startIndex = (int) ((pageNum - 1) * pageSize);
        int endIndex = Math.min((int) (pageNum * pageSize), damages.size());
        if (startIndex < endIndex) {
            List<DamageDTO> pageRecords = damages.subList(startIndex, endIndex);
            page.setRecords(pageRecords);
        } else {
            page.setRecords(Collections.emptyList());
        }
        return page;
    }
    /**
@@ -430,4 +446,9 @@
            return false;
        }
    }
    @Override
    public List<Damage> queryUnTempByFlowCardId(String flowCardId) {
        return baseMapper.queryUnTempByFlowCardId(flowCardId);
    }
}