hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -3,7 +3,6 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
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.fasterxml.jackson.databind.ObjectMapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -11,11 +10,14 @@
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.entity.request.DamageRequest;
import com.mes.damage.entity.vo.FlowCardDamageVO;
import com.mes.damage.entity.vo.GlassDamageVO;
import com.mes.damage.mapper.DamageMapper;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
import com.mes.pp.entity.DamageDetails;
import com.mes.pp.entity.ReportingWork;
import com.mes.pp.entity.ReportingWorkDetail;
@@ -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;
    }
    /**
@@ -217,6 +233,27 @@
     */
    @Override
    public void insertDamage(Damage damage) {
        LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
        glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
        GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper);
        BeanUtils.copyProperties(glassInfo, damage);
        LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>();
        workAssignmentSelectWrapper
                .eq(WorkAssignment::getLine, damage.getLine())
                .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure());
        WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper);
        if (workAssignment != null) {
            damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
            damage.setDeviceName(workAssignment.getDeviceName());
        }
        damage.setProcessId(glassInfo.getFlowCardId());
        damage.setOrderNumber(glassInfo.getGlassType());
        damage.setTechnologyNumber(glassInfo.getLayer());
        damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
        if (damage.getType() == null) {
            damage.setType(1);
        }
        List<Damage> damage1 = null;
        if (Const.GLASS_STATE_DAMAGE.equals(damage.getType()) || Const.GLASS_STATE_TAKE.equals(damage.getType())) {
            damage1 = baseMapper.selectList(
@@ -236,33 +273,18 @@
            );
        }
        if (damage1 == null || damage1.size() == 0) {
            LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
            glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
            GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper);
            BeanUtils.copyProperties(glassInfo, damage);
            LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>();
            workAssignmentSelectWrapper
                    .eq(WorkAssignment::getLine, damage.getLine())
                    .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure());
            WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper);
            if (workAssignment != null) {
                damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
                damage.setDeviceName(workAssignment.getDeviceName());
            }
            damage.setProcessId(glassInfo.getFlowCardId());
            damage.setOrderNumber(glassInfo.getGlassType());
            damage.setTechnologyNumber(glassInfo.getLayer());
            damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
            if (damage.getType() == null) {
                damage.setType(1);
            }
            if (damage.getType() == 1 && submitReport(damage)) {
                damage.setStatus(3);
            } else {
                damage.setStatus(1);
            }
            baseMapper.insert(damage);
        } else {
            if (damage.getType() == 1) {
                //重复进入
                damage.setStatus(9);
                baseMapper.insert(damage);
            }
        }
    }
@@ -342,7 +364,7 @@
            // 目标系统的API URL
            String url1 = ERP_URL + "/reportingWork/mesReportingWork";
            String url1 = ERP_URL + "/reportingWork/mesReportingWorkRedis";
            String url2 = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn";
            String url;
            if (type) {
@@ -377,7 +399,8 @@
                result.put("detail", detailsJsonArray);
            }
            JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork));
            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(formatter));
            // 将 JSON 对象和数组添加到结果对象中
            result.put("title", reportingWorkJson);
@@ -419,7 +442,7 @@
                int code = jsonResponse.getInt("code");
                String message = jsonResponse.getStr("data");
                log.info("报工情况:{},{}", code, message);
                if (code == 200 && message.equals("true")) {
                if (code == 200) {
                    return true;
                } else {
                    return false;
@@ -432,7 +455,17 @@
    }
    @Override
    public List<Damage> queryUnTempByFlowCardId(String flowCardId){
    public List<Damage> queryUnTempByFlowCardId(String flowCardId) {
        return baseMapper.queryUnTempByFlowCardId(flowCardId);
    }
    @Override
    public List<GlassDamageVO> queryProgress(DamageRequest damageRequest) {
        return baseMapper.queryProgress(damageRequest);
    }
    @Override
    public List<FlowCardDamageVO> queryFlowCardIdProgress(DamageRequest damageRequest) {
        return baseMapper.queryFlowCardIdProgress(damageRequest);
    }
}