Lius
2024-11-04 d603739c0320f355cfc3152865918729fea790de
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java
@@ -3,7 +3,7 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
import org.jeecg.modules.mdc.dto.CurrentElectricDto;
import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.Equipment;
@@ -54,13 +54,10 @@
    private IEquipmentElectricStatisticalService equipmentElectricStatisticalService;
    @Resource
    private ICurrentXYZHistoryService currentXYZHistoryService;
    private IEquipmentWorkLineService equipmentWorkLineService;
    @Resource
    private IMachineXYZHistoryService machineXYZHistoryService;
    @Resource
    private IEquipmentMachiningHistoryService equipmentMachiningHistoryService;
    private IEquipmentXYZService equipmentXYZService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -81,50 +78,54 @@
                List<DictModel> dictList = sysDictService.queryEnableDictItemsByCode(CommonConstant.AXIS_TYPE);
                if (dictList != null && !dictList.isEmpty()) {
                    for (Equipment equipment : equipmentList) {
                        Date lastDate = equipmentElectricStatisticalService.getMaxDate(equipment.getEquipmentid());
                        if (lastDate == null) {
                            Date minCollectTime = currentXYZHistoryService.getMinDate(equipment.getEquipmentid());
                            if (minCollectTime == null) {
                                continue;
                            }
                            initDate = DateUtils.removeTime(minCollectTime);
                        }
                        for (DictModel dictModel : dictList) {
                            electricStatistical = new EquipmentElectricStatistical();
                            Integer axisType = Integer.parseInt(dictModel.getValue());
                            CurrentElectricHistoryDto currentElectricHistoryDto = currentXYZHistoryService.getMaxElectric(equipment.getEquipmentid(), axisType, initDate, DateUtils.plusTime(initDate, 1));
                            if (currentElectricHistoryDto == null || currentElectricHistoryDto.getEquipmentID() == null || currentElectricHistoryDto.getCollectTime() == null) {
                                initDate = DateUtils.plusTime(initDate, 1);
                                continue;
                            }
                            electricStatistical.setAxistype(axisType);
                            electricStatistical.setEquipmentid(equipment.getEquipmentid());
                            electricStatistical.setEquipmentname(equipment.getEquipmentname());
                            electricStatistical.setElectrictime(currentElectricHistoryDto.getCollectTime());
                            electricStatistical.setElectricvalue(currentElectricHistoryDto.getCurrentValue());
                            electricStatistical.setCreatedate(initDate);
                            EquipmentMachiningHistoryDto machiningHistoryDto = equipmentMachiningHistoryService.getNearTimeSpindleLoad(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), currentElectricHistoryDto.getCollectTime());
                            if (machiningHistoryDto != null) {
                                electricStatistical.setSpindlespeed(machiningHistoryDto.getSpindleSpeed());
                                electricStatistical.setSpindleload(machiningHistoryDto.getSpindleLoad());
                                electricStatistical.setSpindletime(machiningHistoryDto.getCollectTime());
                            }
                            MachineXYZHistoryDto machineXYZHistoryDto = machineXYZHistoryService.getNearAxisType(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), currentElectricHistoryDto.getCollectTime());
                            if (machineXYZHistoryDto != null) {
                                electricStatistical.setAxistime(machineXYZHistoryDto.getCollectTime());
                                if (axisType == 1) {
                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getXMachine());
                                } else if (axisType == 2) {
                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getYMachine());
                                } else if (axisType == 3) {
                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getZMachine());
                                } else if (axisType == 4) {
                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getAMachine());
                                } else if (axisType == 5) {
                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getBMachine());
                        if (equipment.getDrivetype().equals("SIEMENSOpcUa")) {
                            String saveTableName = equipment.getSavetablename();
                            Date lastDate = equipmentElectricStatisticalService.getMaxDate(equipment.getEquipmentid());
                            if (lastDate == null) {
                                Date minCollectTime = equipmentWorkLineService.getMinDate(saveTableName);
                                if (minCollectTime == null) {
                                    continue;
                                }
                                initDate = DateUtils.removeTime(minCollectTime);
                            } else {
                                initDate = DateUtils.plusTime(lastDate, 1);
                            }
                            resultList.add(electricStatistical);
                            for (DictModel dictModel : dictList) {
                                electricStatistical = new EquipmentElectricStatistical();
                                Integer axisType = Integer.parseInt(dictModel.getValue());
                                CurrentElectricDto currentElectricDto = equipmentWorkLineService.getMaxElectric(saveTableName, axisType, initDate, DateUtils.plusTime(initDate, 1));
                                if (currentElectricDto == null) {
                                    continue;
                                }
                                electricStatistical.setAxistype(axisType);
                                electricStatistical.setEquipmentid(equipment.getEquipmentid());
                                electricStatistical.setEquipmentname(equipment.getEquipmentname());
                                electricStatistical.setElectrictime(currentElectricDto.getCollectTime());
                                electricStatistical.setElectricvalue(currentElectricDto.getCurrentValue());
                                electricStatistical.setCreatedate(initDate);
                                EquipmentMachiningHistoryDto machiningHistoryDto = equipmentWorkLineService.getNearTimeSpindleLoad(saveTableName, initDate, DateUtils.plusTime(initDate, 1), currentElectricDto.getCollectTime());
                                if (machiningHistoryDto != null) {
                                    electricStatistical.setSpindlespeed(machiningHistoryDto.getSpindleSpeed());
                                    electricStatistical.setSpindleload(machiningHistoryDto.getSpindleLoad());
                                    electricStatistical.setSpindletime(machiningHistoryDto.getCollectTime());
                                }
                                MachineXYZHistoryDto machineXYZHistoryDto = equipmentXYZService.getNearAxisType(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), currentElectricDto.getCollectTime());
                                if (machineXYZHistoryDto != null) {
                                    electricStatistical.setAxistime(machineXYZHistoryDto.getCollectTime());
                                    if (axisType == 1) {
                                        electricStatistical.setAxisvalue(machineXYZHistoryDto.getXMachine());
                                    } else if (axisType == 2) {
                                        electricStatistical.setAxisvalue(machineXYZHistoryDto.getYMachine());
                                    } else if (axisType == 3) {
                                        electricStatistical.setAxisvalue(machineXYZHistoryDto.getZMachine());
                                    } else if (axisType == 4) {
                                        electricStatistical.setAxisvalue(machineXYZHistoryDto.getAMachine());
                                    } else if (axisType == 5) {
                                        electricStatistical.setAxisvalue(machineXYZHistoryDto.getBMachine());
                                    }
                                }
                                resultList.add(electricStatistical);
                            }
                        }
                    }
                }