ZengTao
2025-10-23 57fca4f8e41c2504246459656cb3791621a039f0
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -3,6 +3,8 @@
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;
import com.github.yulichang.query.MPJQueryWrapper;
@@ -13,6 +15,7 @@
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;
@@ -56,26 +59,42 @@
    private final static String ERP_URL = "http://192.168.2.100:8086";
//    private final static String ERP_URL = "http://10.153.19.174:8086";
    /**
     * 查询报工信息
     */
    /**
     * 分页查询损坏记录
     * @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 每页条数
     * @return 分页后的损坏记录列表
     */
    @Override
    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) {
    public Page<Damage> selectDamage(
            String startTime,
            String endTime,
            int type,
            int status,
            String workingProcedure,
            int pageNum,  // 新增:动态页码
            int pageSize  // 新增:动态每页条数
    ) {
        Page<Damage> page = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
        damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime);
        if (type != 0) {
            damageSelectWrapper.eq(Damage::getType, type);
        }
        if (status != 0) {
            damageSelectWrapper.eq(Damage::getStatus, status);
        }
        if (!"0".equals(workingProcedure)) {
            damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
        }
        return baseMapper.selectList(damageSelectWrapper);
        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);
    }
    /**
@@ -135,11 +154,20 @@
                    damageDetails.setResponsibleEquipment(damagesdetails.get(0).getResponsibleEquipment());
                    damageDetails.setResponsibleTeam(damagesdetails.get(0).getResponsibleTeam());
                    damageDetails.setResponsiblePersonnel(null);
                    if (damagesdetails.get(0).getStatus() == 7) {
                        damageDetails.setQualityInspector("auto");
                        damageDetails.setPatchStatus(1);
                        damageDetails.setQualityInsStatus(2);
                    } else {
                        damageDetails.setQualityInspector("");
                        damageDetails.setPatchStatus(0);
                        damageDetails.setQualityInsStatus(0);
                    }
                    damageDetailses.add(damageDetails);
                }
            }
            reportingWorkDetails.add(reportingWorkDetail);
            reportingWorkDetail.setDamageDetailsList(damageDetailses);
            reportingWorkDetail.setDamageDetails(damageDetailses);
            sendToERP(reportingWork, reportingWorkDetails, Boolean.FALSE);
        }
    }
@@ -181,7 +209,6 @@
        damage.setLine(deviceId);
        damage.setType(type);
        damage.setRemark(remark);
        damage.setStatus(1);
        this.insertDamage(damage);
    }
@@ -195,6 +222,8 @@
            damage1 = baseMapper.selectList(
                    new LambdaQueryWrapper<Damage>()
                            .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
                            .notIn(Damage::getStatus, 7, 8)
                            .lt(Damage::getStatus, 7)
                            .eq(Damage::getGlassId, damage.getGlassId())
            );
        } else {
@@ -211,7 +240,7 @@
            glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
            GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper);
            BeanUtils.copyProperties(glassInfo, damage);
            damage.setStatus(1);
            LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>();
            workAssignmentSelectWrapper
                    .eq(WorkAssignment::getLine, damage.getLine())
@@ -228,12 +257,10 @@
            if (damage.getType() == null) {
                damage.setType(1);
            }
            if (damage.getType() == 1) {
                if (submitReport(damage)) {
                    damage.setStatus(3);
                } else {
                    damage.setStatus(1);
                }
            if (damage.getType() == 1 && submitReport(damage)) {
                damage.setStatus(3);
            } else {
                damage.setStatus(1);
            }
            baseMapper.insert(damage);
        }
@@ -304,6 +331,7 @@
                new LambdaQueryWrapper<Damage>()
                        .eq(Damage::getGlassId, glassId)
                        .in(Damage::getType, Const.GLASS_STATE_DAMAGE_TAKE)
                        .lt(Damage::getStatus, 7)
        );
    }
@@ -312,6 +340,8 @@
        log.info("报工数据reportingWork:{},reportingWorkDetails:{}", reportingWork, reportingWorkDetails);
        try {
            // 目标系统的API URL
            String url1 = ERP_URL + "/reportingWork/mesReportingWork";
            String url2 = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn";
            String url;
@@ -322,6 +352,7 @@
            }
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            // 设置请求方法和请求头
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/json; utf-8");
@@ -330,7 +361,9 @@
            // 创建 JSON 对象
            JSONObject result = new JSONObject();
            ObjectMapper objectMapper = new ObjectMapper();
            // 将 ReportingWork 转换为 JSONObject
            // 将 ReportingWorkDetail 列表转换为 JSONArray
@@ -349,12 +382,19 @@
            result.put("title", reportingWorkJson);
            result.put("type", 0);
            if (reportingWorkDetails.get(0).getDamageDetails() != null) {
                if (reportingWorkDetails.get(0).getDamageDetails().get(0).getPatchStatus() == 1) {
                    result.put("isPatch", 1);
                } else {
                    result.put("isPatch", 0);
                }
            }
            result.put("userId", "admin");
            result.put("userName", "admin");
            result.put("qualityInsStatus", 0);
            // 将 result 对象转换为字符串
            String jsonInputString = result.toString();
            log.info("jsonInputString :{} ", result);
            System.out.println("jsonInputString : " + result);
            // 发送请求
            try (OutputStream os = con.getOutputStream()) {
                byte[] input = jsonInputString.getBytes("utf-8");
@@ -363,7 +403,7 @@
            // 获取响应码
            int responseCode = con.getResponseCode();
            log.info("Response Code :{} ", responseCode);
            System.out.println("Response Code : " + responseCode);
            // 获取响应内容
            try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {