Lius
2024-08-22 f59452ac384766a21500857e89928a8abc0e75b5
update
已重命名1个文件
已添加55个文件
已修改26个文件
已删除2个文件
3109 ■■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyscheduleService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyscheduleServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -598,4 +598,9 @@
    Integer AUTO_FLAG_Y = 1;
    Integer AUTO_FLAG_N = 2;
    /**
     * åæ ‡è½´ç±»åž‹
     */
    String AXIS_TYPE = "axis_type";
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java
@@ -1,6 +1,5 @@
package org.jeecg.modules.mdc.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -10,7 +9,6 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.EquipmentElectricStatisticalDto;
import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
@@ -21,8 +19,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java
@@ -1,6 +1,5 @@
package org.jeecg.modules.mdc.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -10,7 +9,6 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
@@ -41,8 +41,8 @@
@RequestMapping("/mdc/home")
public class MdcHomeController {
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
//    @Resource
//    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    private IMdcProductionService mdcProductionService;
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/24 15:10
 */
@Data
public class CurrentElectricHistoryDto {
    /**
     * é‡‡é›†æ—¶é—´
     */
    private Date collectTime;
    /**
     * è®¾å¤‡ç¼–号
     */
    private String equipmentID;
    /**
     * x轴电流
     */
    private String xCurrent;
    /**
     * y轴电流
     */
    private String yCurrent;
    /**
     * z轴电流
     */
    private String zCurrent;
    /**
     * a轴电流
     */
    private String aCurrent;
    /**
     * b轴电流
     */
    private String bCurrent;
    /**
     * dao解析数据使用
     */
    private String currentValue;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/24 15:41
 */
@Data
public class EquipmentMachiningHistoryDto {
    /**
     * é‡‡é›†æ—¶é—´
     */
    private Date collectTime;
    /**
     * è®¾å¤‡ID
     */
    private String equipmentID;
    /**
     * ä¸»è½´è´Ÿè½½
     */
    private String spindleLoad;
    /**
     * ä¸»è½´è½¬é€Ÿ
     */
    private String spindleSpeed;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/29 11:40
 */
@Data
public class MachineXYZHistoryDto {
    /**
     * é‡‡é›†æ—¶é—´
     */
    private Date collectTime;
    /**
     * è®¾å¤‡ID
     */
    private String equipmentID;
    /**
     * X轴坐标值
     */
    private String xMachine;
    /**
     * Y轴坐标值
     */
    private String yMachine;
    /**
     * Z轴坐标值
     */
    private String zMachine;
    /**
     * A轴坐标值
     */
    private String aMachine;
    /**
     * B轴坐标值
     */
    private String bMachine;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package org.jeecg.modules.mdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
 * @Description: è®¾å¤‡åæ ‡å€¼è¡¨
 * @Author: lius
 * @Date: 2024-07-18
 * @Version: V1.0
 */
@Data
@TableName("CurrentXYZ_History")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "CurrentXYZ_History对象", description = "设备坐标值表")
public class CurrentXYZHistory {
    /**
     * equipmentid
     */
    @ApiModelProperty(value = "equipmentid")
    private String equipmentid;
    /**
     * collecttime
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "collecttime")
    private java.util.Date collecttime;
    /**
     * xcurrent
     */
    @ApiModelProperty(value = "xcurrent")
    private String xcurrent;
    /**
     * ycurrent
     */
    @ApiModelProperty(value = "ycurrent")
    private String ycurrent;
    /**
     * zcurrent
     */
    @ApiModelProperty(value = "zcurrent")
    private String zcurrent;
    /**
     * acurrent
     */
    @ApiModelProperty(value = "acurrent")
    private String acurrent;
    /**
     * bcurrent
     */
    @ApiModelProperty(value = "bcurrent")
    private String bcurrent;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
package org.jeecg.modules.mdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
@Data
@TableName("EquipmentMachining")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "EquipmentMachining对象", description = "设备转速负载表")
public class EquipmentMachining implements Serializable {
    private static final long serialVersionUID = -6265153727180497096L;
    /**
     * è®¾å¤‡ç¼–号
     */
    @Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
    private String equipmentid;
    /**
     * é‡‡é›†æ—¶é—´
     */
    @Excel(name = "采集时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "采集时间")
    private Date collecttime;
    /**
     * p3
     */
    @Excel(name = "p3", width = 15)
    @ApiModelProperty(value = "p3")
    private String p3;
    /**
     * p4
     */
    @Excel(name = "p4", width = 15)
    @ApiModelProperty(value = "p4")
    private String p4;
    /**
     * p5
     */
    @Excel(name = "p5", width = 15)
    @ApiModelProperty(value = "p5")
    private String p5;
    /**
     * p6
     */
    @Excel(name = "p6", width = 15)
    @ApiModelProperty(value = "p6")
    private String p6;
    /**
     * p7
     */
    @Excel(name = "p7", width = 15)
    @ApiModelProperty(value = "p7")
    private String p7;
    /**
     * p8
     */
    @Excel(name = "p8", width = 15)
    @ApiModelProperty(value = "p8")
    private String p8;
    /**
     * p9
     */
    @Excel(name = "p9", width = 15)
    @ApiModelProperty(value = "p9")
    private String p9;
    /**
     * p10
     */
    @Excel(name = "p10", width = 15)
    @ApiModelProperty(value = "p10")
    private String p10;
    /**
     * p11
     */
    @Excel(name = "p11", width = 15)
    @ApiModelProperty(value = "p11")
    private String p11;
    /**
     * p12
     */
    @Excel(name = "p12", width = 15)
    @ApiModelProperty(value = "p12")
    private String p12;
    /**
     * p13
     */
    @Excel(name = "p13", width = 15)
    @ApiModelProperty(value = "p13")
    private String p13;
    /**
     * p14
     */
    @Excel(name = "p14", width = 15)
    @ApiModelProperty(value = "p14")
    private String p14;
    /**
     * p15
     */
    @Excel(name = "p15", width = 15)
    @ApiModelProperty(value = "p15")
    private String p15;
    /**
     * p16
     */
    @Excel(name = "p16", width = 15)
    @ApiModelProperty(value = "p16")
    private String p16;
    /**
     * p17
     */
    @Excel(name = "p17", width = 15)
    @ApiModelProperty(value = "p17")
    private String p17;
    /**
     * p18
     */
    @Excel(name = "p18", width = 15)
    @ApiModelProperty(value = "p18")
    private String p18;
    /**
     * p19
     */
    @Excel(name = "p19", width = 15)
    @ApiModelProperty(value = "p19")
    private String p19;
    /**
     * p20
     */
    @Excel(name = "p20", width = 15)
    @ApiModelProperty(value = "p20")
    private String p20;
    /**
     * p21
     */
    @Excel(name = "p21", width = 15)
    @ApiModelProperty(value = "p21")
    private String p21;
    /**
     * p22
     */
    @Excel(name = "p22", width = 15)
    @ApiModelProperty(value = "p22")
    private String p22;
    /**
     * p23
     */
    @Excel(name = "p23", width = 15)
    @ApiModelProperty(value = "p23")
    private String p23;
    /**
     * p24
     */
    @Excel(name = "p24", width = 15)
    @ApiModelProperty(value = "p24")
    private String p24;
    /**
     * p25
     */
    @Excel(name = "p25", width = 15)
    @ApiModelProperty(value = "p25")
    private String p25;
    /**
     * p26
     */
    @Excel(name = "p26", width = 15)
    @ApiModelProperty(value = "p26")
    private String p26;
    /**
     * p27
     */
    @Excel(name = "p27", width = 15)
    @ApiModelProperty(value = "p27")
    private String p27;
    /**
     * p28
     */
    @Excel(name = "p28", width = 15)
    @ApiModelProperty(value = "p28")
    private String p28;
    /**
     * p29
     */
    @Excel(name = "p29", width = 15)
    @ApiModelProperty(value = "p29")
    private String p29;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package org.jeecg.modules.mdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½åŽ†å²è¡¨
 * @Author: Lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
@Data
@TableName("EquipmentMachining_History")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "EquipmentMachining_History对象", description = "设备转速负载历史表")
public class EquipmentMachiningHistory implements Serializable {
    private static final long serialVersionUID = 564127289735401596L;
    /**
     * è®¾å¤‡ç¼–号
     */
    @Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
    private String equipmentid;
    /**
     * é‡‡é›†æ—¶é—´
     */
    @Excel(name = "采集时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "采集时间")
    private Date collecttime;
    /**
     * ä¸»è½´è´Ÿè½½
     */
    @Excel(name = "主轴负载", width = 15)
    @ApiModelProperty(value = "主轴负载")
    private String spindleload;
    /**
     * ä¸»è½´è½¬é€Ÿ
     */
    @Excel(name = "主轴转速", width = 15)
    @ApiModelProperty(value = "主轴转速")
    private String spindlespeed;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package org.jeecg.modules.mdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: åŽ†å²è¡¨
 * @Author: lius
 * @Date: 2024-07-29
 * @Version: V1.0
 */
@Data
@TableName("MachineXYZ_History")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "MachineXYZ_History对象", description = "历史表")
public class MachineXYZHistory implements Serializable {
    private static final long serialVersionUID = 5921084425438371855L;
    /**
     * è®¾å¤‡ID
     */
    @ApiModelProperty(value = "设备ID")
    private String equipmentid;
    /**
     * é‡‡é›†æ—¶é—´
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "采集时间")
    private Date collecttime;
    /**
     * X轴坐标值
     */
    @ApiModelProperty(value = "X轴坐标值")
    private String xmachine;
    /**
     * Y轴坐标值
     */
    @ApiModelProperty(value = "Y轴坐标值")
    private String ymachine;
    /**
     * Z轴坐标值
     */
    @ApiModelProperty(value = "Z轴坐标值")
    private String zmachine;
    /**
     * A轴坐标值
     */
    @ApiModelProperty(value = "A轴坐标值")
    private String amachine;
    /**
     * B轴坐标值
     */
    @ApiModelProperty(value = "B轴坐标值")
    private String bmachine;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
@@ -85,7 +85,7 @@
        log.info("设备状态长期无变化报警任务 RunningEquipmentStatusJob start!  æ—¶é—´:" + DateUtils.getNow());
        long startTime = System.currentTimeMillis();
        try {
            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>());
            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
//            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "3140045"));
            // èŽ·å–åˆ©ç”¨çŽ‡åˆ¤å®šå¤©æ•°
            List<DictModel> dictModelList1 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_JUDGE);
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java
@@ -90,7 +90,7 @@
            } else {
                date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE);
            }
            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>());
            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
            MdcSystemParameters mdcSystemParameters = mdcSystemParametersService.getOne(new LambdaQueryWrapper<MdcSystemParameters>().eq(MdcSystemParameters::getCode, "equip_log_statis_time"));
            if (mdcSystemParameters == null) {
                throw new JobExecutionException("mdc_system_parameters è¡¨ä¸­æ•°æ®ç¼ºå¤±");
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,146 @@
package org.jeecg.modules.mdc.job;
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.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.Equipment;
import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
import org.jeecg.modules.mdc.service.*;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.jeecg.modules.system.service.ISysDictService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * è®¾å¤‡è¿è¡Œæœ€å¤§ç”µæµç»Ÿè®¡
 *
 * @author Lius
 * @date 2024/7/18 15:59
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class StatisticalElectricJob implements Job {
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IEquipmentService equipmentService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private IEquipmentElectricStatisticalService equipmentElectricStatisticalService;
    @Resource
    private ICurrentXYZHistoryService currentXYZHistoryService;
    @Resource
    private IMachineXYZHistoryService machineXYZHistoryService;
    @Resource
    private IEquipmentMachiningHistoryService equipmentMachiningHistoryService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("设备运行最大电流统计 StatisticalElectricJob start!  æ—¶é—´:" + DateUtils.getNow());
        long startTime = System.currentTimeMillis();
        try {
            List<Equipment> equipmentList = equipmentService.list();
            if (equipmentList != null && !equipmentList.isEmpty()) {
                Date initDate = null;
                EquipmentElectricStatistical electricStatistical;
                List<EquipmentElectricStatistical> resultList = new ArrayList<>();
                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());
                                }
                            }
                            resultList.add(electricStatistical);
                        }
                    }
                }
                if(!resultList.isEmpty()) {
                    equipmentElectricStatisticalService.saveBatch(resultList);
                }
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("设备运行最大电流统计", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
package org.jeecg.modules.mdc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.Equipment;
import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
import org.jeecg.modules.mdc.service.IEquipmentMachiningHistoryService;
import org.jeecg.modules.mdc.service.IEquipmentService;
import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
import org.jeecg.modules.mdc.service.IMachineXYZHistoryService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * è®¾å¤‡è¿è¡Œæœ€å¤§ä¸»è½´è´Ÿè½½ç»Ÿè®¡
 *
 * @author Lius
 * @date 2024/7/18 15:59
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class StatisticalSpindleJob implements Job {
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IEquipmentService equipmentService;
    @Resource
    private IEquipmentSpindleStatisticalService equipmentSpindleStatisticalService;
    @Resource
    private IEquipmentMachiningHistoryService equipmentMachiningHistoryService;
    @Resource
    private IMachineXYZHistoryService machineXYZHistoryService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("设备运行最大主轴负载统计 StatisticalSpindleJob start!  æ—¶é—´:" + DateUtils.getNow());
        long startTime = System.currentTimeMillis();
        try {
            List<Equipment> equipmentList = equipmentService.list();
            if (equipmentList != null && !equipmentList.isEmpty()) {
                Date initDate = null;
                EquipmentSpindleStatistical spindleStatistical;
                List<EquipmentSpindleStatistical> resultList = new ArrayList<>();
                for (Equipment equipment : equipmentList) {
                    Date lastDate = equipmentSpindleStatisticalService.getMaxDate(equipment.getEquipmentid());
                    if (lastDate == null) {
                        Date minCollectTime = equipmentMachiningHistoryService.getMinDate(equipment.getEquipmentid());
                        if (minCollectTime == null) {
                            continue;
                        }
                        initDate = DateUtils.removeTime(minCollectTime);
                    }
                    spindleStatistical = new EquipmentSpindleStatistical();
                    EquipmentMachiningHistoryDto machiningHistoryDto = equipmentMachiningHistoryService.getMaxSpindleLoad(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1));
                    if(machiningHistoryDto == null || machiningHistoryDto.getEquipmentID() == null || machiningHistoryDto.getCollectTime() == null) {
                        continue;
                    }
                    spindleStatistical.setCreatedate(initDate);
                    spindleStatistical.setSpindlespeed(machiningHistoryDto.getSpindleSpeed());
                    spindleStatistical.setEquipmentid(equipment.getEquipmentid());
                    spindleStatistical.setEquipmentname(equipment.getEquipmentname());
                    spindleStatistical.setSpindleload(machiningHistoryDto.getSpindleLoad());
                    spindleStatistical.setSpindletime(machiningHistoryDto.getCollectTime());
                    MachineXYZHistoryDto machineXYZHistoryDto = machineXYZHistoryService.getNearAxisType(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), machiningHistoryDto.getCollectTime());
                    if(machineXYZHistoryDto != null) {
                        spindleStatistical.setAxistime(machineXYZHistoryDto.getCollectTime());
                        spindleStatistical.setAxisx(machineXYZHistoryDto.getXMachine());
                        spindleStatistical.setAxisy(machineXYZHistoryDto.getYMachine());
                        spindleStatistical.setAxisz(machineXYZHistoryDto.getZMachine());
                        spindleStatistical.setAxisa(machineXYZHistoryDto.getAMachine());
                        spindleStatistical.setAxisb(machineXYZHistoryDto.getBMachine());
                    }
                    resultList.add(spindleStatistical);
                }
                if (!resultList.isEmpty()) {
                    equipmentSpindleStatisticalService.saveBatch(resultList);
                }
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("设备运行最大主轴负载统计", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package org.jeecg.modules.mdc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
import java.util.Date;
/**
 * @Description: è®¾å¤‡åæ ‡å€¼è¡¨
 * @Author: lius
 * @Date: 2024-07-18
 * @Version: V1.0
 */
public interface CurrentXYZHistoryMapper extends BaseMapper<CurrentXYZHistory> {
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    Date getMinDate(@Param("equipmentId") String equipmentId);
    /**
     * èŽ·å–æŸå°è®¾å¤‡æŸä¸ªåæ ‡çš„æœ€å¤§ç”µæµ
     *
     * @param equipmentId
     * @param axisType
     * @param startDate
     * @param endDate
     * @return
     */
    CurrentElectricHistoryDto getMaxElectric(@Param("equipmentId") String equipmentId, @Param("axisType") Integer axisType, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java
@@ -8,6 +8,7 @@
import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
import org.jeecg.modules.mdc.vo.EquipmentElectricStatisticalVo;
import java.util.Date;
import java.util.List;
/**
@@ -42,4 +43,12 @@
     * @return
     */
    List<EquipmentElectricStatisticalDto> getElectricValue(@Param("equipmentElectricStatisticalVo") EquipmentElectricStatisticalVo equipmentElectricStatisticalVo);
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    Date getMaxDate(@Param("equipmentId") String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package org.jeecg.modules.mdc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½åŽ†å²è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
public interface EquipmentMachiningHistoryMapper extends BaseMapper<EquipmentMachiningHistory> {
    /**
     * èŽ·å–æŸä¸ªæ—¶é—´é™„è¿‘çš„ä¸»è½´è½¬é€Ÿå’Œä¸»è½´è´Ÿè½½
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    EquipmentMachiningHistoryDto getNearTimeSpindleLoad(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("nearTime") Date nearTime);
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    Date getMinDate(@Param("equipmentId") String equipmentId);
    /**
     * èŽ·å–è®¾å¤‡æŸæ®µæ—¶é—´å†…çš„æœ€å¤§ä¸»è½´è´Ÿè½½æ•°æ®
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @return
     */
    EquipmentMachiningHistoryDto getMaxSpindleLoad(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.mdc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.mdc.entity.EquipmentMachining;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
public interface EquipmentMachiningMapper extends BaseMapper<EquipmentMachining> {
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java
@@ -7,6 +7,7 @@
import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
import org.jeecg.modules.mdc.vo.EquipmentSpindleStatisticalVo;
import java.util.Date;
import java.util.List;
/**
@@ -34,4 +35,12 @@
     */
    List<EquipmentSpindleStatistical> list(@Param("equipmentSpindleStatisticalVo") EquipmentSpindleStatisticalVo equipmentSpindleStatisticalVo);
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    Date getMaxDate(@Param("equipmentId") String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.mdc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.MachineXYZHistory;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/29 14:36
 */
public interface MachineXYZHistoryMapper extends BaseMapper<MachineXYZHistory> {
    /**
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    MachineXYZHistoryDto getNearAxisType(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("nearTime") Date nearTime);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdc.mapper.CurrentXYZHistoryMapper">
    <!--获取数据的最小时间-->
    <select id="getMinDate" resultType="java.util.Date">
        select MIN(CollectTime) CollectTime from CurrentXYZ_History where equipmentID = #{ equipmentId }
    </select>
    <!--获取某台设备某个坐标的最大电流-->
    <select id="getMaxElectric" resultType="org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto">
        <if test="axisType != null and axisType != '' and axisType == 1">
            SELECT
                n.XCurrent currentValue,
                m.EquipmentID,
                n.CollectTime
            FROM
            (
                SELECT
                MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), XCurrent ) ) ) currentValue,
                MIN ( EquipmentID ) EquipmentID
        </if>
        <if test="axisType != null and axisType != '' and axisType == 2">
            SELECT
            n.YCurrent currentValue,
            m.EquipmentID,
            n.CollectTime
            FROM
            (
            SELECT
            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), YCurrent ) ) ) currentValue,
            MIN ( EquipmentID ) EquipmentID
        </if>
        <if test="axisType != null and axisType != '' and axisType == 3">
            SELECT
            n.ZCurrent currentValue,
            m.EquipmentID,
            n.C
            ollectTime
            FROM
            (
            SELECT
            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), ZCurrent ) ) ) currentValue,
            MIN ( EquipmentID ) EquipmentID
        </if>
        <if test="axisType != null and axisType != '' and axisType == 4">
            SELECT
            n.ACurrent currentValue,
            m.EquipmentID,
            n.CollectTime
            FROM
            (
            SELECT
            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), ACurrent ) ) ) currentValue,
            MIN ( EquipmentID ) EquipmentID
        </if>
        <if test="axisType != null and axisType != '' and axisType == 5">
            SELECT
            n.BCurrent currentValue,
            m.EquipmentID,
            n.CollectTime
            FROM
            (
            SELECT
            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), BCurrent ) ) ) currentValue,
            MIN ( EquipmentID ) EquipmentID
        </if>
        FROM
            CurrentXYZ_History
        WHERE
            CollectTime &gt;= #{startDate}
            AND CollectTime &lt; #{endDate}
            AND EquipmentID = #{equipmentId}
            ) m
        LEFT JOIN (
        SELECT
            EquipmentID,
            CollectTime,
            ABS( CONVERT ( DECIMAL ( 18, 3 ), XCurrent ) ) xValue,
            XCurrent,
            ABS( CONVERT ( DECIMAL ( 18, 3 ), YCurrent ) ) yValue,
            YCurrent,
            ABS( CONVERT ( DECIMAL ( 18, 3 ), ZCurrent ) ) zValue,
            ZCurrent,
            ABS( CONVERT ( DECIMAL ( 18, 3 ), ACurrent ) ) aValue,
            ACurrent,
            ABS( CONVERT ( DECIMAL ( 18, 3 ), BCurrent ) ) bValue,
            BCurrent
        FROM
            CurrentXYZ_History
        WHERE
            CollectTime &gt;= #{startDate}
            AND CollectTime &lt; #{endDate}
            AND EquipmentID = #{equipmentId}
        ) n ON m.EquipmentID= n.EquipmentID
        <if test="axisType != null and axisType != '' and axisType == 1">
            AND m.currentValue= n.xValue
        </if>
        <if test="axisType != null and axisType != '' and axisType == 2">
            AND m.currentValue= n.yValue
        </if>
        <if test="axisType != null and axisType != '' and axisType == 3">
            AND m.currentValue= n.zValue
        </if>
        <if test="axisType != null and axisType != '' and axisType == 4">
            AND m.currentValue= n.aValue
        </if>
        <if test="axisType != null and axisType != '' and axisType == 5">
            AND m.currentValue= n.bValue
        </if>
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml
@@ -85,4 +85,9 @@
        </where>
        ORDER BY id ASC
    </select>
    <!--根据设备id获取最新一条数据-->
    <select id="getMaxDate" resultType="java.util.Date">
        SELECT MAX( createDate ) createDate FROM equipment_electric_statistical WHERE equipmentID = #{equipmentId}
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentMachiningHistoryMapper">
    <!--获取某个时间附近的主轴转速和主轴负载-->
    <select id="getNearTimeSpindleLoad" resultType="org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto">
        SELECT
            t1.CollectTime collectTime,
            t1.EquipmentID equipmentID,
            t2.SpindleLoad spindleLoad,
            t2.SpindleSpeed spindleSpeed
        FROM
            (
            SELECT
                m.diff,
                m.EquipmentID,
                n.CollectTime
            FROM
            (
            SELECT
                MIN( p.diff ) diff,
                MIN( p.EquipmentID ) EquipmentID
            FROM
                (
                SELECT
                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
                    CollectTime,
                    EquipmentID
                FROM
                    EquipmentMachining_History
                WHERE
                    CollectTime &gt;= #{startDate}
                    AND CollectTime &lt; #{endDate}
                    AND EquipmentID = #{equipmentId}
                ) p
            ) m
            LEFT JOIN (
                SELECT
                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
                    CollectTime,
                    EquipmentID
                FROM
                    EquipmentMachining_History
                WHERE
                    CollectTime &gt;= #{startDate}
                    AND CollectTime &lt; #{endDate}
                    AND EquipmentID = #{equipmentId}
                ) n ON m.EquipmentID = n.EquipmentID
                AND m.diff = n.diff
            ) t1
        LEFT JOIN ( SELECT EquipmentID, CollectTime, SpindleLoad, SpindleSpeed FROM EquipmentMachining_History WHERE CollectTime &gt;= #{startDate} AND CollectTime &lt; #{endDate} AND EquipmentID = #{equipmentId} ) t2 ON t1.EquipmentID = t2.EquipmentID
        AND t1.CollectTime = t2.CollectTime
    </select>
    <select id="getMinDate" resultType="java.util.Date">
        SELECT MIN(CollectTime) CollectTime FROM EquipmentMachining_History WHERE EquipmentID = #{equipmentId}
    </select>
    <select id="getMaxSpindleLoad" resultType="org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto">
        SELECT
            n.SpindleLoad,
            m.EquipmentID,
            n.CollectTime,
            n.SpindleSpeed
        FROM
            (
            SELECT
                MAX ( ABS( CONVERT ( DECIMAL ( 8, 3 ), SpindleLoad ) ) ) SpindleLoad,
                MAX ( EquipmentID ) EquipmentID
            FROM
                EquipmentMachining_History
            WHERE
                CollectTime &gt;= #{startDate}
                AND CollectTime &lt; #{endDate}
                AND EquipmentID = #{equipmentId}
            ) m
        LEFT JOIN (
            SELECT
                EquipmentID,
                CollectTime,
                ABS( CONVERT ( DECIMAL ( 8, 3 ), SpindleLoad ) ) loadValue,
                SpindleLoad,
                SpindleSpeed
            FROM
                EquipmentMachining_History
            WHERE
                CollectTime &gt;= #{startDate}
                AND CollectTime &lt; #{endDate}
                AND EquipmentID = #{equipmentId}
            ) n ON m.SpindleLoad= n.loadValue
        AND m.EquipmentID= n.EquipmentID
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentMachiningMapper">
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml
@@ -51,4 +51,8 @@
        </where>
        ORDER BY id ASC
    </select>
    <select id="getMaxDate" resultType="java.util.Date">
        SELECT MAX( createDate ) createDate FROM equipment_spindle_statistical WHERE equipmentID = #{equipmentId}
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdc.mapper.MachineXYZHistoryMapper">
    <select id="getNearAxisType" resultType="org.jeecg.modules.mdc.dto.MachineXYZHistoryDto">
        SELECT
            t1.CollectTime,
            t1.EquipmentID,
            t2.XMachine,
            t2.YMachine,
            t2.ZMachine,
            t2.AMachine,
            t2.BMachine
        FROM
            (
            SELECT
                m.diff,
                m.EquipmentID,
                n.CollectTime
            FROM
                (
                SELECT
                    MIN ( p.diff ) diff,
                    MIN ( p.EquipmentID ) EquipmentID
                FROM
                (
                SELECT
                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
                    CollectTime,
                    EquipmentID
                FROM
                    MachineXYZ_History
                WHERE
                    CollectTime &gt;= #{startDate}
                    AND CollectTime &lt; #{endDate}
                    AND EquipmentID = #{equipmentId}
                ) p
            ) m
            LEFT JOIN (
            SELECT
                ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
                CollectTime,
                EquipmentID
            FROM
                MachineXYZ_History
            WHERE
                CollectTime &gt;= #{startDate}
                AND CollectTime &lt; #{endDate}
                AND EquipmentID = #{equipmentId}
                ) n ON m.EquipmentID = n.EquipmentID
                AND m.diff = n.diff
            ) t1
        LEFT JOIN ( SELECT CollectTime, EquipmentID, XMachine, YMachine, ZMachine, AMachine, BMachine FROM MachineXYZ_History WHERE CollectTime &gt;= #{startDate} AND CollectTime &lt; #{endDate} AND EquipmentID = #{equipmentId} ) t2 ON t1.EquipmentID= t2.EquipmentID
        AND t1.CollectTime= t2.CollectTime
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package org.jeecg.modules.mdc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
import java.util.Date;
/**
 * @Description: è®¾å¤‡åæ ‡å€¼è¡¨
 * @Author: lius
 * @Date: 2024-07-18
 * @Version: V1.0
 */
public interface ICurrentXYZHistoryService extends IService<CurrentXYZHistory> {
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    Date getMinDate(String equipmentId);
    /**
     * èŽ·å–æŸå°è®¾å¤‡æŸä¸ªåæ ‡çš„æœ€å¤§ç”µæµ
     *
     * @param equipmentId
     * @param axisType
     * @param startDate
     * @param endDate
     * @return
     */
    CurrentElectricHistoryDto getMaxElectric(String equipmentId, Integer axisType, Date startDate, Date endDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java
@@ -9,6 +9,7 @@
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
@@ -47,4 +48,13 @@
     * @return
     */
    List<EquipmentElectricStatisticalDto> getElectricValue(String userId, EquipmentElectricStatisticalVo equipmentElectricStatisticalVo);
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    Date getMaxDate(String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package org.jeecg.modules.mdc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½åŽ†å²è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
public interface IEquipmentMachiningHistoryService extends IService<EquipmentMachiningHistory> {
    /**
     * èŽ·å–æŸä¸ªæ—¶é—´é™„è¿‘çš„ä¸»è½´è½¬é€Ÿå’Œä¸»è½´è´Ÿè½½
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    EquipmentMachiningHistoryDto getNearTimeSpindleLoad(String equipmentId, Date startDate, Date endDate, Date nearTime);
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    Date getMinDate(String equipmentId);
    /**
     * èŽ·å–è®¾å¤‡æŸæ®µæ—¶é—´å†…çš„æœ€å¤§ä¸»è½´è´Ÿè½½æ•°æ®
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @return
     */
    EquipmentMachiningHistoryDto getMaxSpindleLoad(String equipmentId, Date startDate, Date endDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.mdc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.entity.EquipmentMachining;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
public interface IEquipmentMachiningService extends IService<EquipmentMachining> {
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java
@@ -8,6 +8,7 @@
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è´Ÿè½½
@@ -36,4 +37,13 @@
     * @return
     */
    ModelAndView exportXls(String userId, EquipmentSpindleStatisticalVo equipmentSpindleStatisticalVo);
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    Date getMaxDate(String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package org.jeecg.modules.mdc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.MachineXYZHistory;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/29 14:22
 */
public interface IMachineXYZHistoryService extends IService<MachineXYZHistory> {
    /**
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    MachineXYZHistoryDto getNearAxisType(String equipmentId, Date startDate, Date endDate, Date nearTime);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
import org.jeecg.modules.mdc.mapper.CurrentXYZHistoryMapper;
import org.jeecg.modules.mdc.service.ICurrentXYZHistoryService;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * @Description: è®¾å¤‡åæ ‡å€¼è¡¨
 * @Author: lius
 * @Date: 2024-07-18
 * @Version: V1.0
 */
@Service
public class CurrentXYZHistoryServiceImpl extends ServiceImpl<CurrentXYZHistoryMapper, CurrentXYZHistory> implements ICurrentXYZHistoryService {
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    @Override
    public Date getMinDate(String equipmentId) {
        return this.baseMapper.getMinDate(equipmentId);
    }
    /**
     * èŽ·å–æŸå°è®¾å¤‡æŸä¸ªåæ ‡çš„æœ€å¤§ç”µæµ
     *
     * @param equipmentId
     * @param axisType
     * @param startDate
     * @param endDate
     * @return
     */
    @Override
    public CurrentElectricHistoryDto getMaxElectric(String equipmentId, Integer axisType, Date startDate, Date endDate) {
        return this.baseMapper.getMaxElectric(equipmentId, axisType, startDate, endDate);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java
@@ -1,13 +1,11 @@
package org.jeecg.modules.mdc.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
import org.jeecg.modules.mdc.dto.EquipmentElectricStatisticalDto;
import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
import org.jeecg.modules.mdc.mapper.EquipmentElectricStatisticalMapper;
@@ -25,6 +23,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
@@ -138,4 +137,15 @@
        }
        return equipmentElectricStatisticals;
    }
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    @Override
    public Date getMaxDate(String equipmentId) {
        return this.baseMapper.getMaxDate(equipmentId);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
import org.jeecg.modules.mdc.mapper.EquipmentMachiningHistoryMapper;
import org.jeecg.modules.mdc.service.IEquipmentMachiningHistoryService;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½åŽ†å²è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
@Service
public class EquipmentMachiningHistoryServiceImpl extends ServiceImpl<EquipmentMachiningHistoryMapper, EquipmentMachiningHistory> implements IEquipmentMachiningHistoryService {
    /**
     * èŽ·å–æŸä¸ªæ—¶é—´é™„è¿‘çš„ä¸»è½´è½¬é€Ÿå’Œä¸»è½´è´Ÿè½½
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    @Override
    public EquipmentMachiningHistoryDto getNearTimeSpindleLoad(String equipmentId, Date startDate, Date endDate, Date nearTime) {
        return this.baseMapper.getNearTimeSpindleLoad(equipmentId, startDate, endDate, nearTime);
    }
    /**
     * èŽ·å–æ•°æ®çš„æœ€å°æ—¶é—´
     *
     * @param equipmentId
     * @return
     */
    @Override
    public Date getMinDate(String equipmentId) {
        return this.baseMapper.getMinDate(equipmentId);
    }
    /**
     * èŽ·å–è®¾å¤‡æŸæ®µæ—¶é—´å†…çš„æœ€å¤§ä¸»è½´è´Ÿè½½æ•°æ®
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @return
     */
    @Override
    public EquipmentMachiningHistoryDto getMaxSpindleLoad(String equipmentId, Date startDate, Date endDate) {
        return this.baseMapper.getMaxSpindleLoad(equipmentId, startDate, endDate);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.entity.EquipmentMachining;
import org.jeecg.modules.mdc.mapper.EquipmentMachiningMapper;
import org.jeecg.modules.mdc.service.IEquipmentMachiningService;
import org.springframework.stereotype.Service;
/**
 * @Description: è®¾å¤‡è½¬é€Ÿè´Ÿè½½è¡¨
 * @Author: lius
 * @Date: 2024-07-24
 * @Version: V1.0
 */
@Service
public class EquipmentMachiningServiceImpl extends ServiceImpl<EquipmentMachiningMapper, EquipmentMachining> implements IEquipmentMachiningService {
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java
@@ -6,7 +6,6 @@
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
import org.jeecg.modules.mdc.mapper.EquipmentSpindleStatisticalMapper;
import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
@@ -22,6 +21,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
@@ -133,4 +133,15 @@
        mv.addObject(NormalExcelConstants.DATA_LIST, equipmentSpindleStatisticals);
        return mv;
    }
    /**
     * æ ¹æ®è®¾å¤‡id获取最新一条数据
     *
     * @param equipmentId
     * @return
     */
    @Override
    public Date getMaxDate(String equipmentId) {
        return this.baseMapper.getMaxDate(equipmentId);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
import org.jeecg.modules.mdc.entity.MachineXYZHistory;
import org.jeecg.modules.mdc.mapper.MachineXYZHistoryMapper;
import org.jeecg.modules.mdc.service.IMachineXYZHistoryService;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/29 14:34
 */
@Service
public class MachineXYZHistoryServiceImpl extends ServiceImpl<MachineXYZHistoryMapper, MachineXYZHistory> implements IMachineXYZHistoryService {
    /**
     *
     * @param equipmentId
     * @param startDate
     * @param endDate
     * @param nearTime
     * @return
     */
    @Override
    public MachineXYZHistoryDto getNearAxisType(String equipmentId, Date startDate, Date endDate, Date nearTime) {
        return this.baseMapper.getNearAxisType(equipmentId, startDate, endDate, nearTime);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java
ÎļþÃû´Ó lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyscheduleController.java ÐÞ¸Ä
@@ -6,8 +6,7 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
import org.jeecg.modules.mdcJc.mapper.ClassMonthlyscheduleMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,15 +20,15 @@
@Api(tags = "集成")
@RestController
@RequestMapping("/mdcJc/mdcAlarmInfo")
public class ClassMonthlyscheduleController extends JeecgController<ClassMonthlyschedule,IClassMonthlyscheduleService> {
public class ClassMonthlyScheduleController extends JeecgController<ClassMonthlyschedule, IClassMonthlyScheduleService> {
    @Autowired
    private IClassMonthlyscheduleService classMonthlyscheduleService;
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @ApiOperation(value = "mes", notes = "mes")
    @GetMapping("/findListClass")
    public Result<?> findListClass() {
        classMonthlyscheduleService.findListClass("2024-06");
        classMonthlyScheduleService.findListClass("2024-06");
        return null;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java
@@ -22,7 +22,7 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mdcJc_OnLine_Queue")
@TableName("mdcJc_OnLineQueue")
@ApiModel(value = "自动线上线")
public class MdcOnLineQueue implements Serializable {
    private static final long serialVersionUID = -4733120585358211415L;
@@ -32,12 +32,16 @@
    @TableField(value = "id")
    private Integer id;
    @TableField(value = "devCode")
    private String devCode;
    @TableField(value = "partBarCode")
    private String partBarCode;
    @TableField(value = "productNo")
    private String productNo;
    @TableField(value = "productName")
    private String productName;
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "scanTime")
    private Date scanTime;
    @TableField(value = "remark")
@@ -49,5 +53,6 @@
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    @TableField(value = "createTime")
    private Date createTime;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java
@@ -31,33 +31,68 @@
    @TableId(type = IdType.ASSIGN_ID)
    private String mdc_id;
    @TableField(value = "ID")
    @TableField(value = "id")
    private Integer id;
    @TableField(value = "PlanDate")
    /**
     * è®¡åˆ’日期
     */
    @TableField(value = "planDate")
    private String planDate;
    @TableField(value = "ProductNo")
    /**
     * é›¶éƒ¨ä»¶å·
     */
    @TableField(value = "productNo")
    private String productNo;
    @TableField(value = "ProductName")
    /**
     * é›¶éƒ¨ä»¶åç§°
     */
    @TableField(value = "productName")
    private String productName;
    @TableField(value = "OrderID")
    /**
     * å·¥å•号
     */
    @TableField(value = "orderId")
    private String orderId;
    @TableField(value = "ProcedureName")
    /**
     * å·¥å•名称
     */
    @TableField(value = "procedureName")
    private String procedureName;
    @TableField(value = "Clazz")
    /**
     * ç­ç»„
     */
    @TableField(value = "clazz")
    private String clazz;
    @TableField(value = "PlanCount")
    /**
     * è®¡åˆ’量
     */
    @TableField(value = "planCount")
    private Integer planCount;
    @TableField(value = "CompletionCount")
    /**
     * å®Œæˆé‡
     */
    @TableField(value = "completionCount")
    private Integer completionCount;
    @TableField(value = "QualifiedCount")
    /**
     * åˆæ ¼é‡
     */
    @TableField(value = "qualifiedCount")
    private Integer qualifiedCount;
    @TableField(value = "ProcessRoute")
    /**
     * å·¥è‰ºè·¯çº¿
     */
    @TableField(value = "processRoute")
    private String processRoute;
    @TableField(value = "EquipmentID")
    /**
     * è®¾å¤‡ç¼–号
     */
    @TableField(value = "equipmentId")
    private String equipmentId;
    @TableField(value = "IsAutomaticLine")
    /**
     * è‡ªåŠ¨çº¿æ ‡è¯†
     */
    @TableField(value = "isAutomaticLine")
    private String isAutomaticLine;
    /**
     * åˆ›å»ºæ—¥æœŸ
     */
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java
@@ -22,7 +22,7 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mdcJc_UnderLine_Queue")
@TableName("mdcJc_UnderLineQueue")
@ApiModel(value = "自动线下线队列MES")
public class MdcUnderLineQueue implements Serializable {
@@ -51,5 +51,6 @@
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    @TableField(value = "createTime")
    private Date createTime;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java
@@ -15,7 +15,7 @@
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_ProductDayschedule")
@ApiModel(value = "当月零部件计划进度")
@ApiModel(value = "当日零部件计划进度")
public class ProductDayschedule {
    @TableField(value = "ID")
    private Integer id;
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcOnLineQueueService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:35
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class OnLineQueueJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcOnLineQueueService mdcOnLineQueueService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("自动上线任务 OnLineQueueJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcOnLineQueueService.saveOnLineQueueList();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("自动上线任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcQualityMonthService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:34
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class QualityMonthJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcQualityMonthService mdcQualityMonthService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("零部件月生产量任务 QualityMonthJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcQualityMonthService.saveQualityMonth();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("零部件月生产量任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:31
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class ScheduleClassMonthJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcClassMonthService mdcClassMonthService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("月班组完成情况任务 ScheduleClassMonthJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcClassMonthService.saveOrUpdateClassMonthSchedule();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("月班组完成情况任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:34
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class ScheduleProductDayJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcProductDayScheduleService mdcProductDayScheduleService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("计算当日零部件任务 ScheduleProductDayJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcProductDayScheduleService.scheduleProductDayList();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("计算当日零部件任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:30
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class ScheduleProductMonthJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcProductMonthScheduleService mdcProductMonthScheduleService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("计算当月零部件任务 ScheduleProductMonthJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcProductMonthScheduleService.scheduleProductMonthList();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("计算当月零部件任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.mdcJc.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdcJc.service.IMdcUnderLineQueueService;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.system.service.ISysAnnouncementService;
import org.quartz.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/12 10:35
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class UnderLineQueueJob implements Job {
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysAnnouncementService sysAnnouncementService;
    @Resource
    private IMdcUnderLineQueueService mdcUnderLineQueueService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("自动下线任务 UnderLineQueueJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            mdcUnderLineQueueService.saveUnderLineQueue();
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
            // å‘送消息通知
            sysAnnouncementService.jobSendMessage("自动下线任务", quartzLog.getExceptionDetail());
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java
@@ -3,9 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.QualityMonth;
import org.jeecg.modules.mdcJc.entity.*;
import java.util.List;
@@ -24,6 +22,7 @@
    /**
     * å½“月零部件计划进度信息
     *
     * @param dateTime
     * @return
     */
@@ -31,8 +30,55 @@
    /**
     * æœˆåˆæ ¼å’Œä¸åˆæ ¼
     *
     * @param dateTime
     * @return
     */
    List<QualityMonth> findListQualityMonth(@Param("dateTime") String dateTime);
    /**
     * å½“日零部件
     *
     * @param dateTime
     * @return
     */
    List<ProductDayschedule> findListProductDay(@Param("dateTime") String dateTime);
    /**
     * è‡ªåŠ¨çº¿ä¸Šçº¿
     *
     * @return
     */
    List<OnLineQueue> onLineQueueList();
    /**
     * è‡ªåŠ¨çº¿ä¸Šçº¿
     *
     * @param id
     * @return
     */
    List<OnLineQueue> findListOnLineQueue(@Param("id") Integer id);
    /**
     * è‡ªåŠ¨çº¿ä¸‹çº¿
     *
     * @return
     */
    List<UnderLineQueue> underLineQueueList();
    /**
     * è‡ªåŠ¨çº¿ä¸‹çº¿
     *
     * @param id
     * @return
     */
    List<UnderLineQueue> findListUnderLineQueue(@Param("id") Integer id);
    /**
     * èŽ·å–æ˜¨æ—¥æ•°æ®
     *
     * @param date
     * @return
     */
    MdcProductDayschedule findYesterdayData(@Param("date") String date);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package org.jeecg.modules.mdcJc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
/**
 * @author Lius
 * @date 2024/8/8 15:04
 */
public interface MdcOnLineQueueMapper extends BaseMapper<MdcOnLineQueue> {
    MdcOnLineQueue findLastOne();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.modules.mdcJc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
import java.util.List;
/**
 * @author Lius
 * @date 2024/7/30 15:17
 */
public interface MdcProductDayscheduleMapper extends BaseMapper<MdcProductDayschedule> {
    List<String> selectDateList(@Param("dateTime") String dateTime);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package org.jeecg.modules.mdcJc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
/**
 * @author Lius
 * @date 2024/8/8 15:07
 */
public interface MdcUnderLineQueueMapper extends BaseMapper<MdcUnderLineQueue> {
    MdcUnderLineQueue findLastOne();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml
@@ -14,4 +14,35 @@
        SELECT  * FROM T_Quality_monthy WHERE NY = #{ dateTime }
    </select>
    <select id="findListProductDay" resultType="org.jeecg.modules.mdcJc.entity.ProductDayschedule">
        SELECT  * FROM T_ProductDayschedule WHERE PlanDate = #{ dateTime }
    </select>
    <select id="onLineQueueList" resultType="org.jeecg.modules.mdcJc.entity.OnLineQueue">
        SELECT * FROM T_OnLine_Queue
    </select>
    <select id="findListOnLineQueue" resultType="org.jeecg.modules.mdcJc.entity.OnLineQueue">
        SELECT * FROM T_OnLine_Queue WHERE ID &gt; #{id}
    </select>
    <select id="underLineQueueList" resultType="org.jeecg.modules.mdcJc.entity.UnderLineQueue">
        SELECT * FROM T_UnderLine_Queue
    </select>
    <select id="findListUnderLineQueue" resultType="org.jeecg.modules.mdcJc.entity.UnderLineQueue">
        SELECT * FROM T_UnderLine_Queue WHERE ID &gt; #{id}
    </select>
    <select id="findYesterdayData" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule">
        SELECT
            SUM(planCount) planDate,
            SUM ( completionCount ) completionCount,
            SUM ( qualifiedCount ) qualifiedCount
        FROM
            mdcJc_ProductDayschedule
        WHERE
            planDate = #{date}
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdcJc.mapper.MdcOnLineQueueMapper">
    <select id="findLastOne" resultType="org.jeecg.modules.mdcJc.entity.MdcOnLineQueue">
        SELECT TOP 1 * FROM mdcJc_OnLineQueue ORDER BY id DESC
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdcJc.mapper.MdcProductDayscheduleMapper">
    <select id="selectDateList" resultType="java.lang.String">
        SELECT mdc_id FROM mdcJc_ProductDayschedule WHERE planDate = #{ dateTime }
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdcJc.mapper.MdcUnderLineQueueMapper">
    <select id="findLastOne" resultType="org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue">
        SELECT TOP 1 * FROM mdcJc_UnderLineQueue ORDER BY id DESC
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package org.jeecg.modules.mdcJc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdcJc.entity.*;
import java.util.List;
/**
 * @author clown
 * * @date 2024/7/15
 */
public interface IClassMonthlyScheduleService extends IService<ClassMonthlyschedule> {
    /**
     * å½“月零部件
     * @param dateTime
     * @return
     */
    List<ProductMonthlyschedule> findListProductMonth(String dateTime);
    /**
     * æŸ¥è¯¢æŸä¸ªæœˆæ•°æ® æœˆç­ç»„完成情况
     * @param dateTime
     * @return
     */
    List<ClassMonthlyschedule> findListClass(String dateTime);
    /**
     * æœˆåˆæ ¼å’Œä¸åˆæ ¼
     * @param dateTime
     * @return
     */
    List<QualityMonth> findListQualityMonth( String dateTime);
    /**
     * å½“日零部件
     * @param dateTime
     * @return
     */
    List<ProductDayschedule> findListProductDay(String dateTime);
    /**
     * è‡ªåŠ¨çº¿ä¸Šçº¿é›†åˆ
     * @return
     */
    List<OnLineQueue> onLineQueueList();
    /**
     * ä¸Šçº¿é˜Ÿåˆ—
     * @return
     */
    List<OnLineQueue> findListOnLineQueue(Integer id);
    /**
     * ä¸‹çº¿é›†åˆ
     * @return
     */
    List<UnderLineQueue> underLineQueueList();
    /**
     * ä¸‹çº¿é˜Ÿåˆ—
     * @return
     */
    List<UnderLineQueue> findListUnderLineQueue(Integer id);
    /**
     * èŽ·å–æ˜¨æ—¥æ•°æ®
     * @param date
     * @return
     */
    MdcProductDayschedule findYesterdayData(String date);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyscheduleService.java
ÎļþÒÑɾ³ý
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.mdcJc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
/**
 * @author Lius
 * @date 2024/8/8 15:00
 */
public interface IMdcOnLineQueueService extends IService<MdcOnLineQueue> {
    /**
     * è‡ªåŠ¨ä¸Šçº¿
     * @return
     */
    boolean saveOnLineQueueList();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package org.jeecg.modules.mdcJc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
import java.math.BigDecimal;
/**
 * @author Lius
 * @date 2024/7/30 15:14
 */
public interface IMdcProductDayScheduleService extends IService<MdcProductDayschedule> {
    /**
     * å½“日零部件
     *
     * @return
     */
    boolean scheduleProductDayList();
    /**
     * èŽ·å–æ˜¨æ—¥è®¡åˆ’é›¶éƒ¨ä»¶æ•°é‡
     *
     * @return
     */
    MdcProductDayschedule findYesterdayData();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.mdcJc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
/**
 * @author Lius
 * @date 2024/8/8 15:08
 */
public interface IMdcUnderLineQueueService extends IService<MdcUnderLineQueue> {
    /**
     * è‡ªåŠ¨ä¸‹çº¿
     * @return
     */
    boolean saveUnderLineQueue();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package org.jeecg.modules.mdcJc.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdcJc.entity.*;
import org.jeecg.modules.mdcJc.mapper.ClassMonthlyscheduleMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author clown
 * * @date 2024/7/15
 */
@Service
@DS("mesSoAdb")
public class ClassMonthlyScheduleServiceImpl extends ServiceImpl<ClassMonthlyscheduleMapper,ClassMonthlyschedule> implements IClassMonthlyScheduleService {
    @Override
    public List<ClassMonthlyschedule> findListClass(String dateTime) {
        return super.baseMapper.findListClass(dateTime);
    }
    @Override
    public List<ProductMonthlyschedule> findListProductMonth(String dateTime) {
        return super.baseMapper.findListProductMonth(dateTime);
    }
    @Override
    public List<QualityMonth> findListQualityMonth(String dateTime) {
        return super.baseMapper.findListQualityMonth(dateTime);
    }
    @Override
    public List<ProductDayschedule> findListProductDay(String dateTime) {
        return super.baseMapper.findListProductDay(dateTime);
    }
    @Override
    public List<OnLineQueue> onLineQueueList() {
        return super.baseMapper.onLineQueueList();
    }
    @Override
    public List<OnLineQueue> findListOnLineQueue(Integer id) {
        return super.baseMapper.findListOnLineQueue(id);
    }
    @Override
    public List<UnderLineQueue> underLineQueueList() {
        return super.baseMapper.underLineQueueList();
    }
    @Override
    public List<UnderLineQueue> findListUnderLineQueue(Integer id) {
        return super.baseMapper.findListUnderLineQueue(id);
    }
    @Override
    public MdcProductDayschedule findYesterdayData(String date) {
        return this.baseMapper.findYesterdayData(date);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyscheduleServiceImpl.java
ÎļþÒÑɾ³ý
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java
@@ -5,7 +5,7 @@
import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
import org.jeecg.modules.mdcJc.mapper.MdcClassMonthlyscheduleMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
public class MdcClassMonthServiceImpl extends ServiceImpl<MdcClassMonthlyscheduleMapper,MdcClassMonthlyschedule> implements IMdcClassMonthService {
    @Autowired
    private IClassMonthlyscheduleService classMonthlyscheduleService;
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @Override
    public boolean saveOrUpdateClassMonthSchedule() {
        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
        List<ClassMonthlyschedule> list = classMonthlyscheduleService.findListClass(date);
        List<ClassMonthlyschedule> list = classMonthlyScheduleService.findListClass(date);
        if (list == null || list.isEmpty()) {
            return true;
        }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.jeecg.modules.mdcJc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
import org.jeecg.modules.mdcJc.entity.OnLineQueue;
import org.jeecg.modules.mdcJc.mapper.MdcOnLineQueueMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcOnLineQueueService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/8 15:02
 */
@Service
public class MdcOnLineQueueServiceImpl extends ServiceImpl<MdcOnLineQueueMapper, MdcOnLineQueue> implements IMdcOnLineQueueService {
    @Resource
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    /**
     * è‡ªåŠ¨ä¸Šçº¿
     * @return
     */
    @Override
    public boolean saveOnLineQueueList() {
        MdcOnLineQueue mdcOnLineQueue = this.baseMapper.findLastOne();
        List<OnLineQueue> onLineQueueList = new ArrayList<>();
        if (mdcOnLineQueue == null) {
            // é¦–次
            onLineQueueList = classMonthlyScheduleService.onLineQueueList();
        } else {
            onLineQueueList = classMonthlyScheduleService.findListOnLineQueue(mdcOnLineQueue.getId());
        }
        if (onLineQueueList == null || onLineQueueList.isEmpty()) {
            return true;
        }
        List<MdcOnLineQueue> mesO = new ArrayList<>();
        for (OnLineQueue o : onLineQueueList) {
            MdcOnLineQueue mdc = new MdcOnLineQueue();
            BeanMapper.copy(o, mdc);
            mesO.add(mdc);
        }
        return this.saveBatch(mesO);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package org.jeecg.modules.mdcJc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
import org.jeecg.modules.mdcJc.entity.ProductDayschedule;
import org.jeecg.modules.mdcJc.mapper.MdcProductDayscheduleMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
 * @author Lius
 * @date 2024/7/30 15:14
 */
@Service
public class MdcProductDayScheduleServiceImpl extends ServiceImpl<MdcProductDayscheduleMapper, MdcProductDayschedule> implements IMdcProductDayScheduleService {
    @Resource
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @Override
    public boolean scheduleProductDayList() {
        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_DATE);
        List<ProductDayschedule> list = classMonthlyScheduleService.findListProductDay(date);
        if (list == null || list.isEmpty()) {
            return true;
        }
        List<String> mdcListIds = super.baseMapper.selectDateList(date);
        if (mdcListIds != null && !mdcListIds.isEmpty()) {
            this.removeBatchByIds(mdcListIds);
        }
        List<MdcProductDayschedule> mesC = new ArrayList<>();
        for (ProductDayschedule c : list) {
            MdcProductDayschedule mdc = new MdcProductDayschedule();
            BeanMapper.copy(c, mdc);
            mesC.add(mdc);
        }
        boolean b = this.saveBatch(mesC);
        return b;
    }
    @Override
    public MdcProductDayschedule findYesterdayData() {
        String date = LocalDate.now().plusDays(-1).toString();
        return classMonthlyScheduleService.findYesterdayData(date);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java
@@ -5,7 +5,7 @@
import org.jeecg.modules.mdcJc.entity.MdcProductMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
import org.jeecg.modules.mdcJc.mapper.MdcProductMonthScheduleMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
public class MdcProductMonthScheduleServiceImp  extends ServiceImpl<MdcProductMonthScheduleMapper,MdcProductMonthlyschedule> implements IMdcProductMonthScheduleService {
    @Autowired
    private IClassMonthlyscheduleService classMonthlyscheduleService;
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @Override
    public boolean scheduleProductMonthList() {
        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
        List<ProductMonthlyschedule> list = classMonthlyscheduleService.findListProductMonth(date);
        List<ProductMonthlyschedule> list = classMonthlyScheduleService.findListProductMonth(date);
        if (list == null || list.isEmpty()) {
            return true;
        }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java
@@ -2,12 +2,10 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.MdcQualityMonth;
import org.jeecg.modules.mdcJc.entity.QualityMonth;
import org.jeecg.modules.mdcJc.mapper.MdcQualityMonthMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcQualityMonthService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,12 +22,12 @@
public class MdcQualityMonthServiceImpl extends ServiceImpl<MdcQualityMonthMapper,MdcQualityMonth> implements IMdcQualityMonthService {
    @Autowired
    private IClassMonthlyscheduleService classMonthlyscheduleService;
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @Override
    public boolean saveQualityMonth() {
        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
        List<QualityMonth> list = classMonthlyscheduleService.findListQualityMonth(date);
        List<QualityMonth> list = classMonthlyScheduleService.findListQualityMonth(date);
        if (list == null || list.isEmpty()) {
            return true;
        }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.jeecg.modules.mdcJc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
import org.jeecg.modules.mdcJc.entity.UnderLineQueue;
import org.jeecg.modules.mdcJc.mapper.MdcUnderLineQueueMapper;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMdcUnderLineQueueService;
import org.jeecg.modules.utils.BeanMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/8 15:09
 */
@Service
public class MdcUnderLineQueueServiceImpl extends ServiceImpl<MdcUnderLineQueueMapper, MdcUnderLineQueue> implements IMdcUnderLineQueueService {
    @Resource
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    /**
     * è‡ªåŠ¨ä¸‹çº¿
     * @return
     */
    @Override
    public boolean saveUnderLineQueue() {
        MdcUnderLineQueue mdcUnderLineQueue = this.baseMapper.findLastOne();
        List<UnderLineQueue> underLineQueueList = new ArrayList<>();
        if (mdcUnderLineQueue == null) {
            // é¦–次
            underLineQueueList = classMonthlyScheduleService.underLineQueueList();
        } else {
            underLineQueueList = classMonthlyScheduleService.findListUnderLineQueue(mdcUnderLineQueue.getId());
        }
        if (underLineQueueList == null || underLineQueueList.isEmpty()) {
            return true;
        }
        List<MdcUnderLineQueue> mdcU = new ArrayList<>();
        for (UnderLineQueue u : underLineQueueList) {
            MdcUnderLineQueue mdc = new MdcUnderLineQueue();
            BeanMapper.copy(u, mdc);
            mdcU.add(mdc);
        }
        return this.saveBatch(mdcU);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java
@@ -4,7 +4,7 @@
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
import org.jeecg.modules.mdcJc.service.IMesInfoInMdcService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
public class MesInfoInMdcServiceImpl implements IMesInfoInMdcService {
    @Autowired
    private IClassMonthlyscheduleService classMonthlyscheduleService;
    private IClassMonthlyScheduleService classMonthlyScheduleService;
    @Override
    public List<MdcClassMonthlyschedule> mesClass() {
        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
        List<ClassMonthlyschedule> list = classMonthlyscheduleService.findListClass(date);
        List<ClassMonthlyschedule> list = classMonthlyScheduleService.findListClass(date);
        List<MdcClassMonthlyschedule> mesC = new ArrayList<>();
        BeanUtils.copyProperties(list,mesC);
        return mesC;
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package org.jeecg.modules.screen.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.screen.dto.*;
import org.jeecg.modules.screen.service.MdcLargeScreenService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * @author Lius
 * @date 2024/8/16 10:44
 */
@Slf4j
@Api(tags = "总控看板")
@RestController
@RequestMapping("/mdc/largeScreen")
public class MdcLargeScreenController {
    @Resource
    private MdcLargeScreenService mdcLargeScreenService;
    @ApiOperation(value = "总控看板-今日生产进度", notes = "总控看板-今日生产进度")
    @GetMapping("/todayProductionSchedule")
    public Result<?> todayProductionSchedule() {
        List<TodayProductionDto> result =  mdcLargeScreenService.todayProductionSchedule();
        return Result.ok(result);
    }
    @ApiOperation(value = "总控看板-今日产品合格率", notes = "总控看板-今日产品合格率")
    @GetMapping("/todayProductionPassRate")
    public Result<?> todayProductionPassRate() {
        List<TodayProductionPassRateDto> result = mdcLargeScreenService.todayProductionPassRate();
        return Result.ok(result);
    }
    @ApiOperation(value = "总控看板-今日班组完成量", notes = "总控看板-今日班组完成量")
    @GetMapping("/todayClazzCompletionCount")
    public Result<?> todayClazzCompletionCount() {
        List<ClazzCompletionCountDto> result = mdcLargeScreenService.todayClazzCompletionCount();
        return Result.ok(result);
    }
    @ApiOperation(value = "总控看板-昨日概况", notes = "总控看板-昨日概况")
    @GetMapping("/yesterdayOverview")
    public Result<?> yesterdayOverview() {
        YesterdayOverviewDto yesterdayOverview = mdcLargeScreenService.yesterdayOverview();
        return Result.ok(yesterdayOverview);
    }
    /**
     * å¼€æœºçŽ‡åˆ©ç”¨çŽ‡
     * @return
     */
    @ApiOperation(value = "总控看板-今日设备工作效率", notes = "总控看板-今日设备工作效率")
    @GetMapping("/todayEquipmentRate")
    public Result<?> todayEquipmentRate() {
        List<EquipmentRateDto> result = mdcLargeScreenService.todayEquipmentRate();
        return Result.ok(result);
    }
    @ApiOperation(value = "总控看板-月设备利用率", notes = "总控看板-月设备利用率")
    @GetMapping("/monthEquipmentUtilizationRate")
    public Result<?> monthEquipmentUtilizationRate() {
        return Result.ok();
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.screen.dto;
import lombok.Data;
/**
 * @author Lius
 * @date 2024/8/22 10:41
 */
@Data
public class ClazzCompletionCountDto {
    /**
     * ç­ç»„
     */
    private String clazz;
    /**
     * å®Œæˆé‡
     */
    private Integer completionCount;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package org.jeecg.modules.screen.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author Lius
 * @date 2024/8/22 11:27
 */
@Data
public class EquipmentRateDto {
    /**
     * è®¾å¤‡id
     */
    private String equipmentId;
    /**
     * è®¾å¤‡åç§°
     */
    private String equipmentName;
    /**
     * åˆ©ç”¨çއ
     */
    private BigDecimal utilizationRate = BigDecimal.ZERO;
    /**
     * å¼€æœºçއ
     */
    private BigDecimal openRate = BigDecimal.ZERO;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package org.jeecg.modules.screen.dto;
import lombok.Data;
/**
 * @author Lius
 * @date 2024/8/22 10:09
 */
@Data
public class TodayProductionDto {
    /**
     * äº§çº¿åç§°
     */
    private String productionName;
    /**
     * è®¡åˆ’量
     */
    private Integer planCount;
    /**
     * å®Œæˆé‡
     */
    private Integer completionCount;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.screen.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author Lius
 * @date 2024/8/22 10:25
 */
@Data
public class TodayProductionPassRateDto {
    /**
     * äº§çº¿åç§°
     */
    private String productionName;
    /**
     * äº§å“åˆæ ¼çއ
     */
    private BigDecimal passRate;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package org.jeecg.modules.screen.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author Lius
 * @date 2024/8/20 11:44
 */
@Data
public class YesterdayOverviewDto {
    /**
     * äº§å“åˆæ ¼çއ
     */
    private BigDecimal passRate;
    /**
     * è®¾å¤‡åˆ©ç”¨çއ
     */
    private BigDecimal utilizationRate;
    /**
     * è®¡åˆ’完成率
     */
    private BigDecimal planCompleteRate;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.screen.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
import org.jeecg.modules.screen.dto.ClazzCompletionCountDto;
import org.jeecg.modules.screen.dto.TodayProductionDto;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/21 11:09
 */
@Mapper
@Repository
public interface MdcLargeScreenMapper {
    BigDecimal findEquipmentCount(@Param("date") String date);
    BigDecimal findYesterdayProcessCount(@Param("date") String date);
    List<TodayProductionDto> todayProductionSchedule(@Param("date") String date);
    List<MdcProductDayschedule> todayProductionPassRate(@Param("date") String date);
    List<ClazzCompletionCountDto> todayClazzCompletionCount(@Param("date") String date);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.screen.mapper.MdcLargeScreenMapper">
    <select id="findEquipmentCount" resultType="java.math.BigDecimal">
        SELECT DISTINCT
            COUNT(equipment_id)
        FROM
            mdc_equipment_statistical_info
        WHERE
            the_date = #{date}
    </select>
    <select id="findYesterdayProcessCount" resultType="java.math.BigDecimal">
        SELECT
            SUM( process_long )
        FROM
            mdc_equipment_statistical_info
        WHERE
            the_date = #{date}
    </select>
    <select id="todayProductionSchedule" resultType="org.jeecg.modules.screen.dto.TodayProductionDto">
        SELECT
            productName,
            SUM ( planCount ) planCount,
            SUM ( completionCount ) completionCount
        FROM
            mdcJc_ProductDayschedule
        WHERE
            planDate = #{date}
        GROUP BY
            productName
    </select>
    <select id="todayProductionPassRate" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule">
        SELECT
            productName,
            SUM ( planCount ) planCount,
            SUM ( completionCount ) completionCount,
            SUM ( qualifiedCount ) qualifiedCount
        FROM
            mdcJc_ProductDayschedule
        WHERE
            planDate = #{date}
        GROUP BY
            productName
    </select>
    <select id="todayClazzCompletionCount" resultType="org.jeecg.modules.screen.dto.ClazzCompletionCountDto">
        SELECT
            clazz,
            SUM ( completionCount ) completionCount
        FROM
            mdcJc_ProductDayschedule
        WHERE
            planDate = #{date}
        GROUP BY
            clazz
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package org.jeecg.modules.screen.service;
import org.jeecg.modules.screen.dto.*;
import java.util.List;
import java.util.Map;
/**
 * @author Lius
 * @date 2024/8/19 16:02
 */
public interface MdcLargeScreenService {
    /**
     * æ˜¨æ—¥æ¦‚况(产品合格率 è®¾å¤‡åˆ©ç”¨çއ è®¡åˆ’完成率)
     *
     * @return
     */
    YesterdayOverviewDto yesterdayOverview();
    /**
     * ä»Šæ—¥ç”Ÿäº§è¿›åº¦
     *
     * @return
     */
    List<TodayProductionDto> todayProductionSchedule();
    /**
     * ä»Šæ—¥äº§å“åˆæ ¼çއ
     *
     * @return
     */
    List<TodayProductionPassRateDto> todayProductionPassRate();
    /**
     * ä»Šæ—¥ç­ç»„完成量
     *
     * @return
     */
    List<ClazzCompletionCountDto> todayClazzCompletionCount();
    /**
     * ä»Šæ—¥è®¾å¤‡å·¥ä½œæ•ˆçއ
     *
     * @return
     */
    List<EquipmentRateDto> todayEquipmentRate();
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package org.jeecg.modules.screen.service.impl;
import org.jeecg.modules.mdc.service.IMdcEquipmentStatisticalInfoService;
import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
import org.jeecg.modules.screen.dto.*;
import org.jeecg.modules.screen.mapper.MdcLargeScreenMapper;
import org.jeecg.modules.screen.service.MdcLargeScreenService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
 * @author Lius
 * @date 2024/8/20 11:36
 */
@Service
public class MdcLargeScreenServiceImpl implements MdcLargeScreenService {
    @Resource
    private IMdcProductDayScheduleService mdcProductDayScheduleService;
    @Resource
    private MdcLargeScreenMapper mdcLargeScreenMapper;
    private final String yesterday = LocalDate.now().plusDays(-1).toString().replaceAll("-", "");
    private final String today = LocalDate.now().toString().replaceAll("-", "");
    /**
     * æ˜¨æ—¥æ¦‚况(产品合格率 è®¾å¤‡åˆ©ç”¨çއ è®¡åˆ’完成率)
     *
     * @return
     */
    @Override
    public YesterdayOverviewDto yesterdayOverview() {
        YesterdayOverviewDto yesterdayOverviewDto = new YesterdayOverviewDto();
        MdcProductDayschedule mdcProductDayschedule = mdcProductDayScheduleService.findYesterdayData();
        if (mdcProductDayschedule != null) {
            // äº§å“åˆæ ¼çއ
            yesterdayOverviewDto.setPassRate(new BigDecimal(mdcProductDayschedule.getQualifiedCount()).divide(new BigDecimal(mdcProductDayschedule.getCompletionCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
            // è®¡åˆ’完成率
            yesterdayOverviewDto.setPlanCompleteRate(new BigDecimal(mdcProductDayschedule.getCompletionCount()).divide(new BigDecimal(mdcProductDayschedule.getPlanCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
        }
        // è®¾å¤‡åˆ©ç”¨çއ
//        String date = LocalDate.now().plusDays(-1).toString().replaceAll("-", "");
        BigDecimal equipmentCount = mdcLargeScreenMapper.findEquipmentCount(yesterday);
        BigDecimal processCount = mdcLargeScreenMapper.findYesterdayProcessCount(yesterday);
        BigDecimal utilizationRate = BigDecimal.ZERO;
        if (equipmentCount != null && processCount != null) {
            utilizationRate = processCount.divide(new BigDecimal("86400").multiply(equipmentCount), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
        }
        yesterdayOverviewDto.setUtilizationRate(utilizationRate);
        return yesterdayOverviewDto;
    }
    /**
     * ä»Šæ—¥ç”Ÿäº§è¿›åº¦
     *
     * @return
     */
    @Override
    public List<TodayProductionDto> todayProductionSchedule() {
        return mdcLargeScreenMapper.todayProductionSchedule(today);
    }
    /**
     * ä»Šæ—¥äº§å“åˆæ ¼çއ
     *
     * @return
     */
    @Override
    public List<TodayProductionPassRateDto> todayProductionPassRate() {
        List<MdcProductDayschedule> list = mdcLargeScreenMapper.todayProductionPassRate(today);
        List<TodayProductionPassRateDto> result = new ArrayList<>();
        if (list != null && !list.isEmpty()) {
            for (MdcProductDayschedule mdcProductDayschedule : list) {
                TodayProductionPassRateDto todayProductionPassRateDto = new TodayProductionPassRateDto();
                todayProductionPassRateDto.setProductionName(mdcProductDayschedule.getProductName());
                todayProductionPassRateDto.setPassRate(new BigDecimal(mdcProductDayschedule.getQualifiedCount()).divide(new BigDecimal(mdcProductDayschedule.getCompletionCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
                result.add(todayProductionPassRateDto);
            }
        }
        return result;
    }
    /**
     * ä»Šæ—¥ç­ç»„完成量
     *
     * @return
     */
    @Override
    public List<ClazzCompletionCountDto> todayClazzCompletionCount() {
        return mdcLargeScreenMapper.todayClazzCompletionCount(today);
    }
    /**
     * ä»Šæ—¥è®¾å¤‡è¿è¡Œæ•ˆçއ
     *
     * @return
     */
    @Override
    public List<EquipmentRateDto> todayEquipmentRate() {
        return null;
//        return mdcLargeScreenMapper.todayEquipmentRate();
    }
}
lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java
@@ -97,8 +97,8 @@
    @Test
    public void test07() {
        LocalDate localDate = LocalDate.now().plusDays(-1);
        String date = LocalDate.now().toString();
        System.out.println(date);
//        String date = LocalDate.now().toString();
        System.out.println(localDate);
    }
    @Test
lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java
@@ -2,9 +2,7 @@
import org.jeecg.JeecgSystemApplication;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
import org.jeecg.modules.mdcJc.service.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,11 +17,20 @@
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,classes = JeecgSystemApplication.class)
public class MesTest {
    @Autowired
    private IClassMonthlyscheduleService mesInfoInMdcService;
    private IClassMonthlyScheduleService mesInfoInMdcService;
    @Autowired
    private IMdcClassMonthService mdcClassMonthService;
    @Autowired
    private IMdcProductMonthScheduleService mdcProductMonthScheduleService;
    @Autowired
    private IMdcProductDayScheduleService mdcProductDayScheduleService;
    @Autowired
    private IMdcOnLineQueueService mdcOnLineQueueService;
    @Autowired
    private IMdcUnderLineQueueService mdcUnderLineQueueService;
    @Test
    public void scheduleProductMonthList() {
@@ -42,4 +49,19 @@
        mesInfoInMdcService.findListClass(date);
    }
    @Test
    public void scheduleProductDayList() {
        mdcProductDayScheduleService.scheduleProductDayList();
    }
    @Test
    public void onLineQueueList() {
        mdcOnLineQueueService.saveOnLineQueueList();
    }
    @Test
    public void underLineQueueList() {
        mdcUnderLineQueueService.saveUnderLineQueue();
    }
}