From 454545bd4207d99d153e263c68f821f856f0e884 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期日, 29 九月 2024 09:47:20 +0800
Subject: [PATCH] 430最终问题项修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java                  |   74 ++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java                   |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java |   19 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java     |   87 +++++++++++++-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml          |   87 +++++++++-----
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml               |   16 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java                   |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml           |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java                   |   14 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml            |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java          |    9 +
 11 files changed, 272 insertions(+), 52 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
index c0be5b7..b00dc2f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
@@ -677,6 +677,11 @@
         finishTransferOrder.setDelFlag(0);
         finishTransferOrderService.save(finishTransferOrder);
 
+        String equipmentId = maintenanceOrder.getEquipmentId();
+        Equipment equipment = equipmentService.getById(equipmentId);
+        equipment.setSecondMaintenanceTime(new Date());
+        equipmentService.updateById(equipment);
+
         if (!b) {
             return Result.error("鎶ュ伐澶辫触!");
         } else {
@@ -722,6 +727,20 @@
 
         this.createMaintenanceStoveExempt(maintenanceOrder);
 
+        /**
+         * 涓変繚鎶ュ伐鏃�  鏇存柊鏈涓変繚鏃ユ湡  鍜屼笅娆′笁淇濇棩鏈�
+         */
+        String equipmentImportanceId = equipment.getEquipmentImportanceId();
+        equipment.setThirdMaintenanceTime(new Date());
+        if("A".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),3));
+        }else if("B".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
+        }else if("C".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
+        }
+        equipmentService.updateById(equipment);
+
         if (!b) {
             return Result.error("鎶ュ伐澶辫触!");
         } else {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index 18dfb59..1ee1cdb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.controller;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
@@ -673,7 +674,9 @@
 					 String teamId = equipmentImportVo.getTeamId();
 					 String propertyStatus = equipmentImportVo.getPropertyStatus();
 					 String abc = equipmentImportVo.getEquipmentImportanceId();
-                     if(StringUtils.isBlank(equipmentImportVo.getNum())){
+					 Date thirdMaintenanceTime = equipmentImportVo.getThirdMaintenanceTime();
+					 Date technologyStatusQualificationTime = equipmentImportVo.getTechnologyStatusQualificationTime();
+					 if(StringUtils.isBlank(equipmentImportVo.getNum())){
 						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:缁熶竴缂栫爜缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
 						 exceptionNum++;
 						 continue;
@@ -883,12 +886,14 @@
 										 .setSourceCountry(equipmentImportVo.getSourceCountry())
 										 .setModel(equipmentImportVo.getModel())
 										 .setSpecification(equipmentImportVo.getSpecification())
-										 .setPropertyStatus(equipmentImportVo.getPropertyStatus())
+										 .setPropertyStatus("normal")
 										 .setWarrantyStart(equipmentImportVo.getWarrantyStart())
 										 .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
 										 .setIsLineEquip("no")
 										 .setIsLine("no")
 										 .setNextTechnologyStatusQualificationTime(equipmentImportVo.getNextTechnologyStatusQualificationTime())
+										 .setThirdMaintenanceTime(equipmentImportVo.getThirdMaintenanceTime())
+										 .setTechnologyStatusQualificationTime(equipmentImportVo.getTechnologyStatusQualificationTime())
 										 .setGpo(equipmentImportVo.getGpo());
 								 if(equipmentCategory.getEquipmentCategoryUda1().equals("weldingMachine")){
 								 	equipment.setCheckPeriod(365*3+"");
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
index db85b64..f395efd 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
@@ -7,6 +7,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.record.DVALRecord;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.constant.CommonConstant;
@@ -24,6 +25,8 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
 import java.util.*;
 
@@ -209,9 +212,41 @@
 				faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
 				faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
 				faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
-				faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
-				faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
 				faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
+				//璁$畻mttr
+				BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
+				BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
+				BigDecimal averageRepairTime;
+				if(new BigDecimal(0).compareTo(faultNumber) == 0){
+					averageRepairTime = new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP);
+				}else{
+					averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
+				}
+				//璁$畻mtbf
+				//褰撴湁鏁呴殰鏃堕棿鏃禡TBF锛氾紙鎬诲彲鍒╃敤鏃堕棿-鎬绘晠闅滄椂闂达級/锛堟�绘晠闅滄鏁�+1锛�
+				//褰撴棤鏁呴殰鏃堕棿鏃禡TBF锛歁TBF=鎬诲彲鍒╃敤鏃堕棿
+				BigDecimal averageFaultIntervalTime;
+				BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
+				if(new BigDecimal(0).compareTo(faultNumber) == 0){
+					averageFaultIntervalTime = new BigDecimal(totalAvailableTime + ".00").setScale(2, RoundingMode.HALF_UP);;
+				}else{
+					averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
+				}
+				//璁$畻瀹屽ソ鐜�  鍙紑鍔ㄧ巼
+				BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
+				BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
+				BigDecimal serviceabilityRate = (totalDay.subtract(repairDay)).divide(totalDay,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
+
+				//鍙紑鍔ㄧ巼
+//				BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+//				BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
+				BigDecimal startRate = (totalAvailableTime.subtract(repairTime)).divide(totalAvailableTime,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
+
+				faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
+				faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
+				faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
+				faultIntervalTime.setStartRate(startRate+"%");
 				faultIntervalTimeList.add(faultIntervalTime);
 			}else{
 				List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query);
@@ -222,12 +257,14 @@
 				}else{
 					faultIntervalTime.setTotalAvailableTime("0");
 					faultIntervalTime.setNoFaultTime("0");
-					faultIntervalTime.setAverageFaultIntervalTime("0");
+					faultIntervalTime.setAverageFaultIntervalTime("0.00");
 				}
 				faultIntervalTime.setFaultTime("0");
 				faultIntervalTime.setFaultNumber("0");
-				faultIntervalTime.setAverageRepairTime("0");
+				faultIntervalTime.setAverageRepairTime("0.00");
 				faultIntervalTime.setRepairTime("0");
+				faultIntervalTime.setServiceabilityRate("0.00%");
+				faultIntervalTime.setStartRate("0.00%");
 				faultIntervalTimeList.add(faultIntervalTime);
 			}
 
@@ -375,25 +412,54 @@
 				faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
 				faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
 				faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
-				faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
-				faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
 				faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
+				faultIntervalTime.setEquipmentNumer(equipmentMTBF.get(0).get("equipmentNumer").toString());
+
+				BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
+				BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
+				BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
+				BigDecimal equipmentNumer = new BigDecimal(equipmentMTBF.get(0).get("equipmentNumer").toString());
+				BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
+				BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
+				//璁$畻mttr 淇鏃堕棿/鏁呴殰娆℃暟
+				BigDecimal averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
+				//璁$畻mtbf 锛堟�诲彲鍒╃敤鏃堕棿-鏁呴殰鏃堕棿锛�/鏁呴殰娆℃暟
+				BigDecimal averageFaultIntervalTime;
+				if(new BigDecimal(0).compareTo(faultNumber)==0){
+					averageFaultIntervalTime = new BigDecimal("0.00").setScale(2, RoundingMode.HALF_UP);
+				}else{
+					averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
+				}
+				//瀹屽ソ鐜� 锛堢粺璁″ぉ鏁�*璁惧鏁伴噺-鏁呴殰澶╂暟锛�/锛堢粺璁″ぉ鏁�*璁惧鏁伴噺锛�
+				BigDecimal serviceabilityRate = ((totalDay.multiply(equipmentNumer)).subtract(repairDay)).divide((totalDay.multiply(equipmentNumer)), 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
+				//寮�鍔ㄧ巼  锛堟�诲彲鍒╃敤鏃堕棿-鏁呴殰鏃堕棿锛�/鎬诲彲鍒╃敤鏃堕棿
+				BigDecimal startRate = (totalAvailableTime.subtract(faultTime)).divide(totalAvailableTime, 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
+
+				faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
+				faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
+				faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
+				faultIntervalTime.setStartRate(startRate+"%");
 				faultIntervalTimeList.add(faultIntervalTime);
 			}else{
 				List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getCenterMTBFTotalAvailableTime(query);
 				if(query.get("startTime") != "" && query.get("endTime") != ""){
 					faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
 					faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
-					faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
+					faultIntervalTime.setAverageFaultIntervalTime("0.00");
 				}else{
 					faultIntervalTime.setTotalAvailableTime("0");
 					faultIntervalTime.setNoFaultTime("0");
-					faultIntervalTime.setAverageFaultIntervalTime("0");
+					faultIntervalTime.setAverageFaultIntervalTime("0.00");
 				}
 				faultIntervalTime.setFaultTime("0");
 				faultIntervalTime.setFaultNumber("0");
-				faultIntervalTime.setAverageRepairTime("0");
+				faultIntervalTime.setEquipmentNumer("0");
+				faultIntervalTime.setAverageRepairTime("0.00");
 				faultIntervalTime.setRepairTime("0");
+				faultIntervalTime.setServiceabilityRate("0.00%");
+				faultIntervalTime.setStartRate("0.00%");
+				faultIntervalTime.setStartTime("0");
 				faultIntervalTimeList.add(faultIntervalTime);
 			}
 
@@ -464,4 +530,7 @@
 	}
 
 
+
+
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
index 5ac21d5..c4aebe8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
@@ -1,9 +1,11 @@
 package org.jeecg.modules.eam.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -122,5 +124,10 @@
     @Excel(name = "涓嬫鎶�鏈姸鎬侀壌瀹氭椂闂�", width = 20, format = "yyyyMMdd")
     private Date  nextTechnologyStatusQualificationTime;
 
+    @Excel(name = "涓変繚鏃ユ湡", format = "yyyy-MM-dd")
+    private java.util.Date 	thirdMaintenanceTime;
+
+    @Excel(name = "鎶�鏈姸鎬侀壌瀹氭棩鏈�", format = "yyyy-MM-dd")
+    private java.util.Date 	technologyStatusQualificationTime;
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java
index c02fa0b..375b8e2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java
@@ -110,5 +110,12 @@
     @TableField(exist = false)
     private String endTime;
 
+    @TableField(exist = false)
+    private String serviceabilityRate;
 
+    @TableField(exist = false)
+    private String startRate;
+
+    @TableField(exist = false)
+    private String equipmentNumer;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java
new file mode 100644
index 0000000..fc51b15
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java
@@ -0,0 +1,74 @@
+package org.jeecg.modules.eam.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.common.api.dto.message.MessageDTO;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.jeecg.modules.eam.entity.Equipment;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.system.entity.*;
+import org.jeecg.modules.system.service.*;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+import java.util.List;
+
+public class TechnologyStatusAlart implements Job {
+
+    @Resource
+    private IEamEquipmentService equipmentService;
+    @Resource
+    private ISysBaseAPI sysBaseApi;
+    @Resource
+    private ISysRoleService sysRoleService;
+    @Resource
+    private ISysDictService sysDictService;
+    @Resource
+    private ISysDictItemService sysDictItemService;
+    @Resource
+    private ISysUserRoleService sysUserRoleService;
+    @Resource
+    private ISysUserService sysUserService;
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        LocalDateTime currentDateTime = LocalDateTime.now();
+        LocalDateTime dateBefore2Months = currentDateTime.plusMonths(2);
+        Date result = Date.from(dateBefore2Months.atZone(ZoneId.systemDefault()).toInstant());
+        List<Equipment> needAlerts = equipmentService.list(
+                new QueryWrapper<Equipment>()
+                .lt("next_technology_status_qualification_time",result)
+                .eq("property_status","normal")
+                .eq("del_flag",0));
+        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
+        SysDictItem sysDictItem = sysDictItemService.getOne(
+                new QueryWrapper<SysDictItem>()
+                .eq("item_text","鎶�鏈姸鎬侀壌瀹氭彁閱�")
+                .eq("dict_id",sysDict.getId()),false);
+        String roleCode = sysDictItem.getItemValue();
+        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
+        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>()
+                .eq("role_id",sysRole.getId()));
+        for(SysUserRole sysUserRole:sysUserRoles){
+            SysUser sysUser = sysUserService.getById(sysUserRole.getUserId());
+            String title = "璁惧鎶�鏈姸鎬侀壌瀹氬埌鏈熸彁閱�!";
+            String msg = "缁熶竴缂栫爜涓猴細";
+            for(Equipment equipment:needAlerts){
+                msg = msg+"銆�"+equipment.getNum()+"銆�";
+            }
+            msg = msg+"鐨勮澶囨妧鏈姸鎬侀壌瀹氱殑鏃ユ湡涓嶈冻涓や釜鏈堬紝璇峰強鏃跺鐞�";
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle(title);
+            messageDTO.setContent(msg);
+            messageDTO.setCategory("鎶�鏈姸鎬侀壌瀹氭秷鎭�");
+            messageDTO.setFromUser("admin");
+            messageDTO.setToUser(sysUser.getUsername());
+            if(needAlerts.size()!=0){
+                sysBaseApi.sendSysAnnouncement(messageDTO);
+            }
+        }
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java
index a0ccf5d..574b718 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java
@@ -42,12 +42,20 @@
         LocalDateTime currentDateTime = LocalDateTime.now();
         LocalDateTime dateBefore2Months = currentDateTime.plusMonths(2);
         Date result = Date.from(dateBefore2Months.atZone(ZoneId.systemDefault()).toInstant());
-        List<Equipment> needAlerts = equipmentService.list(new QueryWrapper<Equipment>().lt("next_third_maintenance_time",result).eq("property_status","normal").eq("del_flag",0));
+        List<Equipment> needAlerts = equipmentService.list(
+                new QueryWrapper<Equipment>()
+                .lt("next_third_maintenance_time",result)
+                .eq("property_status","normal")
+                .eq("del_flag",0));
         SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
-        SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_text","涓変繚娑堟伅").eq("dict_id",sysDict.getId()),false);
+        SysDictItem sysDictItem = sysDictItemService.getOne(
+                new QueryWrapper<SysDictItem>()
+                .eq("item_text","涓変繚娑堟伅")
+                .eq("dict_id",sysDict.getId()),false);
         String roleCode = sysDictItem.getItemValue();
         SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
-        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
+        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>()
+                .eq("role_id",sysRole.getId()));
         for(SysUserRole sysUserRole:sysUserRoles){
             SysUser sysUser = sysUserService.getById(sysUserRole.getUserId());
             String title = "璁惧涓嬫涓変繚鍒版湡鎻愰啋!";
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
index 2b4251a..fc2084d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -165,13 +165,14 @@
         mom_eam_equipment t1
         LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'equipment_status' ) t2 ON t1.equipment_status = t2.item_value
         WHERE t1.del_flag = '0'
-        <if test="params.num != 'null' and params.num != ''">
-            and t1.num like concat('%',#{params.num},'%')
-        </if>
-        <if test="params.name != 'null' and params.name != ''">
-            and t1.name like concat('%',#{params.name},'%')
-        </if>
+
     </select>
+    <!--        <if test="params.num != 'null' and params.num != ''">-->
+    <!--            and t1.num like concat('%',#{params.num},'%')-->
+    <!--        </if>-->
+    <!--        <if test="params.name != 'null' and params.name != ''">-->
+    <!--            and t1.name like concat('%',#{params.name},'%')-->
+    <!--        </if>-->
     <select id="getEquipmentList" resultType="org.jeecg.modules.eam.entity.Equipment">
     select
         t1.id id,
@@ -405,6 +406,9 @@
         t1.next_technology_status_qualification_time nextTechnologyStatusQualificationTime,
         t1.technology_status_qualification_time technologyStatusQualificationTime,
         t1.technology_status_verification_type technologyStatusVerificationType,
+        t1.second_maintenance_time secondMaintenanceTime,
+        t1.third_maintenance_time thirdMaintenanceTime,
+        t1.next_third_maintenance_time nextThirdMaintenanceTime,
         t1.line_id lineId,
         t1.is_meta isMeta,
         t1.id showId,
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml
index 0a22cc2..b85ef4e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml
@@ -22,8 +22,12 @@
             and t1.equipment_importance_id =#{params.abc}
         </if>
         <if test="params.specificEquipment != null and params.specificEquipment != ''">
-            and t1.specific_equipment in ('0','1','2')
+            and t1.specific_equipment =#{params.specificEquipment}
         </if>
+        <if test="params.equipmentNum != null and params.equipmentNum != ''">
+            and t1.num =#{params.equipmentNum}
+        </if>
+        ORDER BY t2.name ASC
     </select>
 
     <select id="getWorkCenterList"  parameterType="Map" resultType="Map">
@@ -35,14 +39,17 @@
             mom_eam_equipment t1
         LEFT JOIN mom_base_area t2 ON t1.work_center_id = t2.id
         WHERE t2.type = '1' and t1.work_center_id IS NOT NULL
-        <if test="params.abc != null and params.abc != ''">
-            and t1.equipment_importance_id =#{params.abc}
-        </if>
         <if test="params.useDepartName != null and params.useDepartName != ''">
             and t2.name =#{params.useDepartName}
         </if>
         GROUP BY t1.work_center_id,t2.name
     </select>
+<!--    <if test="params.abc != null and params.abc != ''">-->
+<!--        and t1.equipment_importance_id =#{params.abc}-->
+<!--    </if>-->
+<!--    <if test="params.specificEquipment != null and params.specificEquipment != ''">-->
+<!--        and t1.specific_equipment =#{params.specificEquipment}-->
+<!--    </if>-->
 
     <!--            <if test="params.useDepartName == ''">-->
     <!--                and t2.depart_name = '-1'-->
@@ -55,15 +62,17 @@
             SUM(tt.faultTime) AS faultTime,
             SUM(tt.repairTime) AS repairTime,
             SUM(tt.noFaultTime) AS noFaultTime,
-            SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,
-            SUM(tt.noFaultTime) /COUNT(tt.equipmentId) AS averageFaultIntervalTime
+            sum(tt.totalDay) as totalDay,
+            sum(tt.repairDay) as repairDay
         FROM(
                 SELECT
                     t1.equipment_id AS equipmentId,
                     datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
                     datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
                     datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
-                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime
+                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime,
+                    datediff( DAY, #{params.startTime}, #{params.endTime} )+1 AS totalDay,
+                    datediff( DAY, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairDay
                 FROM
                     mom_eam_equipment_report_repair t1
                 LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
@@ -75,39 +84,57 @@
         GROUP BY
             tt.equipmentId,tt.totalAvailableTime
     </select>
-
+<!--    SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,-->
+<!--    SUM(tt.noFaultTime) /(COUNT(tt.equipmentId) + 1) AS averageFaultIntervalTime,-->
+<!--    (sum(tt.totalDay) - sum(tt.repairDay))/sum(tt.totalDay) as serviceabilityRate,-->
+<!--    (tt.totalAvailableTime - SUM(tt.repairTime))/tt.totalAvailableTime as startRate-->
     <select id="getMTBFTotalAvailableTime"  parameterType="Map" resultType="Map">
         select  datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime
     </select>
 
     <select id="getCenterEquipmentMTBF"  parameterType="Map" resultType="Map">
         SELECT
-            COUNT(tt.workCenterId) AS faultNumber,
-            tt.totalAvailableTime * COUNT(tt.workCenterId) as totalAvailableTime,
-            SUM(tt.faultTime) * COUNT(tt.workCenterId) AS faultTime,
-            SUM(tt.repairTime) * COUNT(tt.workCenterId) AS repairTime,
-            SUM(tt.noFaultTime) * COUNT(tt.workCenterId) AS noFaultTime,
-            SUM(tt.repairTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageRepairTime,
-            SUM(tt.noFaultTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageFaultIntervalTime
+            COUNT(tt.equipmentNum) AS equipmentNumer,
+            sum(tt.equipmentNum) as faultNumber,
+            tt.totalAvailableTime * COUNT(tt.equipmentNum) as totalAvailableTime,
+            SUM(tt.faultTime) AS faultTime,
+            SUM(tt.repairTime) AS repairTime,
+            tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime) AS noFaultTime,
+            tt.totalDay,
+            tt.repairDay
         FROM(
-                SELECT
-                    t3.work_center_id as workCenterId,
-                    datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
-                    datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
-                    datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
-                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime
-                FROM
-                    mom_eam_equipment_report_repair t1
-                LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
-                left join mom_eam_equipment t3 on t1.equipment_id = t3.id
-                WHERE 1=1
-                  AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &gt;= #{params.startTime}
-                  AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{params.endTime}
-                  AND t3.work_center_id  = #{params.workCenterId}
+                select COUNT(ss.equipmentNum) as equipmentNum,ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay from (
+                    SELECT
+                        t3.num as equipmentNum,
+                        datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
+                        datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
+                        datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
+                        (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime,
+                        datediff( DAY, #{params.startTime}, #{params.endTime} )+1 AS totalDay,
+                        datediff( DAY, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairDay
+                    FROM
+                        mom_eam_equipment_report_repair t1
+                    LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
+                    left join mom_eam_equipment t3 on t1.equipment_id = t3.id
+                    WHERE 1=1
+                      AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &gt;= #{params.startTime}
+                      AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{params.endTime}
+                      AND t3.work_center_id  = #{params.workCenterId}
+                      <if test="params.abc != null and params.abc != ''">
+                         and t3.equipment_importance_id =#{params.abc}
+                      </if>
+                      <if test="params.specificEquipment != null and params.specificEquipment != ''">
+                         and t3.specific_equipment =#{params.specificEquipment}
+                      </if>
+                ) ss group by ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay
             ) AS tt
         GROUP BY
-            tt.workCenterId,tt.totalAvailableTime
+            tt.equipmentNum,tt.totalAvailableTime,tt.totalDay,tt.repairDay
     </select>
+<!--    SUM(tt.repairTime) /sum(tt.equipmentNum) AS averageRepairTime,-->
+<!--    (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime))/sum(tt.equipmentNum) AS averageFaultIntervalTime,-->
+<!--    (tt.totalDay * COUNT(tt.equipmentNum) -tt.repairDay)/ (tt.totalDay * COUNT(tt.equipmentNum)) as serviceabilityRate,-->
+<!--    (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.repairTime))/(tt.totalAvailableTime * COUNT(tt.equipmentNum)) as startRate-->
 
     <select id="getCenterMTBFTotalAvailableTime"  parameterType="Map" resultType="Map">
         select  datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml
index 582757a..c3897fb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml
@@ -6,7 +6,7 @@
         select
         t1.id id,
         t1.code code,
-        concat(t1.cycle,t2.item_text) name,
+        t1.cycle name,
         t1.version version,
         t1.create_by createBy,
         t1.create_time createTime,
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
index 1231877..352d482 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
@@ -6,7 +6,7 @@
         select
         t1.id id,
         t1.code code,
-        concat(t1.cycle,t2.item_text) name,
+        t1.cycle name,
         t1.version version,
         t1.create_by createBy,
         t1.create_time createTime,

--
Gitblit v1.9.3