hyingbo
2025-05-27 3a740faa161ec976986c0735ba18837f570a525f
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java
@@ -9,11 +9,13 @@
import org.jeecg.modules.mdc.service.IMdcDriveTypeParamConfigService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.IMdcEquipmentWorkLineService;
import org.jeecg.modules.mdc.service.IMdcTorqueConfigService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.vo.MdcWorkChartVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -35,6 +37,9 @@
    @Resource
    private EquipmentWorklineMapper equipmentWorklineMapper;
    @Resource
    private IMdcTorqueConfigService mdcTorqueConfigService;
    /**
     * 查找指定日期的数据
     */
@@ -49,7 +54,7 @@
            endTime = DateUtils.toDateMedium(mdcWorkChartVo.getDate() + " " + mdcWorkChartVo.getEnd() + ":00");
        }
        if (startTime != null && endTime != null && (startTime.getTime() > endTime.getTime() || startTime.getTime() > new Date().getTime())) {
        if (startTime != null && endTime != null && (startTime.getTime() > endTime.getTime() || startTime.getTime() > System.currentTimeMillis())) {
            return Collections.emptyList();
        }
        MdcEquipment mdcEquipment = mdcEquipmentService.getOne(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, mdcWorkChartVo.getEquipmentId()));
@@ -66,6 +71,12 @@
            return null;
        }
        List<EquipmentMachingDto> result = this.getWorkLineList(saveTableName, mdcDriveTypeParamConfigs, mdcWorkChartVo, startTime, endTime);
        // 查找扭矩和进给参数
        List<EquipmentMachingDto> torqueList = mdcTorqueConfigService.getWorkLineList(mdcWorkChartVo.getEquipmentId(), startTime, endTime);
        if (torqueList != null && !torqueList.isEmpty()) {
            result.addAll(torqueList);
            result = result.stream().sorted(Comparator.comparing(EquipmentMachingDto::getCollectTime)).collect(Collectors.toList());
        }
        if (result == null || result.isEmpty()) {
            return null;
        }
@@ -101,6 +112,20 @@
            }
        }
        resultList = resultList.stream().sorted(Comparator.comparing(EquipmentMachingDto::getCollectTime)).collect(Collectors.toList());
        for (MdcDriveTypeParamConfig mdcDriveTypeParamConfig : mdcDriveTypeParamConfigs) {
            if ("spindleCurrent".equals(mdcDriveTypeParamConfig.getEnglishName())) {
                for (EquipmentMachingDto equipmentMachingDto : resultList) {
                    String devicePower = mdcEquipment.getDevicePower();
                    if (StringUtils.isNotBlank(devicePower)) {
                        devicePower = "2500";
                    }
                    String spindleload = equipmentMachingDto.getSpindleload();
                    if (StringUtils.isNotBlank(spindleload)) {
                        equipmentMachingDto.setSpindleCurrent(new BigDecimal(devicePower).divide(new BigDecimal("380"), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(spindleload)));
                    }
                }
            }
        }
        return resultList;
    }
@@ -110,7 +135,7 @@
            //待优化
            if ("FANUC".equals(mdcWorkChartVo.getDriveType()) || "SIEMENS840D".equals(mdcWorkChartVo.getDriveType())) {
                Map<String, Object> param = new HashMap<>();
                param.put("columns", ",spindlespeed,spindleload,spindlebeilv,feedrate,feedbeilv");
                param.put("columns", ",spindlespeed,spindleload,spindlebeilv,feedrate,feedbeilv,actualfeedrate,actualspindlespeed");
                param.put("tableName", saveTableName);
                param.put("startTime", startTime);
                param.put("endTime", endTime);
@@ -147,30 +172,27 @@
            }
            for (int i = 1; i <= collentParams.size(); i++) {
                try {
                    switch (i) {
                        case 1:
                            ei.setDataLine1(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                    switch (collentParams.get(i - 1).getEnglishName()) {
                        case "spindlespeed":
                            ei.setSpindlespeed(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 2:
                            ei.setDataLine2(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "spindleload":
                            ei.setSpindleload(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 3:
                            ei.setDataLine3(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "spindlebeilv":
                            ei.setSpindlebeilv(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 4:
                            ei.setDataLine4(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "feedrate":
                            ei.setFeedrate(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 5:
                            ei.setDataLine5(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "feedbeilv":
                            ei.setFeedbeilv(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 6:
                            ei.setDataLine6(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "actualfeedrate":
                            ei.setActualfeedrate(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 7:
                            ei.setDataLine7(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                        case 8:
                            ei.setDataLine8(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                        case "actualspindlespeed":
                            ei.setActualspindlespeed(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString());
                            break;
                    }
                } catch (Exception e) {
@@ -207,6 +229,8 @@
            ei.setSequencenumber(map.get("Sequencenumber") == null ? null : map.get("Sequencenumber").toString());
            ei.setExecutingcode(map.get("executingcode") == null ? null : map.get("executingcode").toString());
            ei.setProductName(map.get("ProductName") == null ? null : map.get("ProductName").toString());
            ei.setActualfeedrate(map.get("actualfeedrate") == null ? null : map.get("actualfeedrate").toString());
            ei.setActualspindlespeed(map.get("actualspindlespeed") == null ? null : map.get("actualspindlespeed").toString());
            dto.add(ei);
        }
        if (dto.isEmpty()) {