From a5b427bc39acc0cea80e3ca44d5744968778bc74 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期二, 12 十二月 2023 15:25:13 +0800
Subject: [PATCH] 维修履历

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/FaultIntervalTimeServiceImpl.java  |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/QuanlityConfirmController.java       |   16 --------
 lxzn-module-system/lxzn-system-start/src/main/resources/db/2023_12_11(lnl)/lnl.sql                  |    5 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java           |   11 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderServiceImpl.java        |    4 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java |   47 +++++++++++++++++++++--
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderActualWorkHoursMapper.xml |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentReportRepair.java               |    3 +
 8 files changed, 64 insertions(+), 26 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
index f3b4005..595167d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
@@ -17,10 +17,7 @@
 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.eam.entity.Equipment;
-import org.jeecg.modules.eam.entity.EquipmentReportRepair;
-import org.jeecg.modules.eam.entity.FaultDescription;
-import org.jeecg.modules.eam.entity.QuanlityConfirm;
+import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.service.*;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysUserService;
@@ -30,6 +27,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -61,6 +59,8 @@
     @Autowired
     @Lazy
     private IdentityService sysIdentityService;
+    @Autowired
+    private IFaultInfoService faultInfoService;
 
 
     /**
@@ -121,6 +121,19 @@
             quanlityConfirm.setQuantity(equipmentReportRepair.getQuantity());
             quanlityConfirm.setOperator(curUser.getId());
             quanlityConfirmService.save(quanlityConfirm);
+            String fNum = sysIdentityService.getNumByTypeAndLength("FaultInfo",4);
+            FaultInfo faultInfo = new FaultInfo();
+            faultInfo.setNum(fNum);
+            faultInfo.setQuanlityId(quanlityConfirm.getId());
+            faultInfo.setOperater(quanlityConfirm.getOperator());
+            faultInfo.setIsConfirm(IS_PRODUCT_NO);
+            String eId = equipmentReportRepair.getEquipmentId();
+            Equipment equipment = equipmentService.getById(eId);
+            faultInfo.setEquipModel(equipment.getModel());
+            faultInfo.setEquipName(equipment.getName());
+            faultInfo.setEquipNum(equipment.getNum());
+            faultInfoService.save(faultInfo);
+
         }
         Equipment equipment = equipmentService.getById(equipmentReportRepair.getEquipmentId());
         equipment.setEquipmentStatus("2");
@@ -244,8 +257,34 @@
 
     @PutMapping("/accept")
     public Result<?> accept(@RequestBody EquipmentReportRepair equipmentReportRepair ){
+        if(equipmentReportRepair.getErrUda1().equals("yes")){
+            QuanlityConfirm quanlityConfirm = quanlityConfirmService.getOne(new QueryWrapper<QuanlityConfirm>().eq("report_id",equipmentReportRepair.getId()),false);
+            if(ObjectUtils.isNotNull(quanlityConfirm)){
+                String isConfirm1 = quanlityConfirm.getIsConfirm();
+                FaultInfo faultInfo = faultInfoService.getOne(new QueryWrapper<FaultInfo>().eq("quanlity_id",quanlityConfirm.getId()),false);
+                if(ObjectUtils.isNotNull(faultInfo)){
+                    String isConfirm2 = faultInfo.getIsConfirm();
+                    if(!isConfirm1.equals("yes")||isConfirm2.equals("yes")){
+                        return Result.error("楠屾敹澶辫触锛屼骇鍝佽川閲忛殣鎮g‘璁ゅ拰浜嬫晠鐧昏灏氭湭瀹屽満锛岃瀹屾垚纭鍚庡啀杩涜楠屾敹");
+                    }
+                }else {
+                    return Result.error("楠屾敹澶辫触锛屾湭鐢熸垚浜嬫晠鐧昏鍗�");
+                }
+            }else {
+                return Result.error("楠屾敹澶辫触锛屾湭鐢熸垚浜у钩璐ㄩ噺纭");
+            }
+        }
+        LoginUser user= (LoginUser)SecurityUtils.getSubject().getPrincipal();
         equipmentReportRepair.setStatus("5");
         equipmentReportRepair.setAcceptTime(new Date());
+        Date start = equipmentReportRepair.getFaultTime();
+        Date end = equipmentReportRepair.getAcceptTime();
+        if(ObjectUtils.isNotNull(start)){
+            long timeDifference =end.getTime() - start.getTime();
+            BigDecimal hours = new BigDecimal(timeDifference)
+                    .divide(new BigDecimal(60 * 60 * 1000), 3, BigDecimal.ROUND_HALF_EVEN);
+            equipmentReportRepair.setFaultHour(hours);
+        }
         equipmentReportRepairService.updateById(equipmentReportRepair);
         String equipmentId = equipmentReportRepair.getEquipmentId();
         if(StringUtils.isNotBlank(equipmentId)){
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/QuanlityConfirmController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/QuanlityConfirmController.java
index 4b87df4..793e1ec 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/QuanlityConfirmController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/QuanlityConfirmController.java
@@ -117,22 +117,6 @@
 		quanlityConfirm.setLeader(curUser.getId());
 		quanlityConfirm.setConfirmTime(new Date());
 		quanlityConfirmService.updateById(quanlityConfirm);
-		if(quanlityConfirm.getCondition().equals("yes")){
-			String num = sysIdentityService.getNumByTypeAndLength("FaultInfo",4);
-			FaultInfo faultInfo = new FaultInfo();
-			faultInfo.setNum(num);
-			faultInfo.setQuanlityId(quanlityConfirm.getId());
-			faultInfo.setOperater(quanlityConfirm.getOperator());
-			faultInfo.setIsConfirm("no");
-			String rId = quanlityConfirm.getReportId();
-			EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(rId);
-			String eId = equipmentReportRepair.getEquipmentId();
-			Equipment equipment = equipmentService.getById(eId);
-			faultInfo.setEquipModel(equipment.getModel());
-			faultInfo.setEquipName(equipment.getName());
-			faultInfo.setEquipNum(equipment.getNum());
-			faultInfoService.save(faultInfo);
-		}
 		return Result.OK("缂栬緫鎴愬姛!");
 	}
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java
index 5e968fc..aa77ba7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java
@@ -1547,6 +1547,15 @@
 	 @PutMapping(value = "/report")
 	 @Transactional(rollbackFor = {Exception.class})
 	 public Result<?> orderReport(@RequestBody RepairOrder repairOrder){
+	 	 String id = repairOrder.getId();
+         List<RepairOrderActualWorkHours> hoursList = repairOrderActualWorkHoursService.list(new QueryWrapper<RepairOrderActualWorkHours>().eq("repair_order_id",id).eq("del_flag",0));
+		 List<RepairOrderActualWorkHours> mainStuff = repairOrderActualWorkHoursService.list(new QueryWrapper<RepairOrderActualWorkHours>().eq("repair_order_id",id).eq("del_flag",0).eq("principal_contractor","1"));
+		 if(hoursList.size()<2){
+		 	return Result.error("鎿嶄綔澶辫触锛岃鑷冲皯娣诲姞涓や釜鎵夸慨浜�");
+		 }
+		 if(mainStuff.size()!=1){
+			 return Result.error("鎿嶄綔澶辫触锛岃娣诲姞涓绘壙淇汉锛屾湁涓斿彧鏈変竴涓�");
+		 }
 		 if(StringUtils.isNotBlank(repairOrder.getProjectMaintenanceOrderId())){
 			 //鍒ゆ柇椤圭洰鎬х淮淇瓙琛ㄧ姸鎬�
 			 ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder.getProjectMaintenanceOrderId());
@@ -1587,7 +1596,7 @@
 		 repairOrder.setStatus("4");
 		 repairOrder.setActualEndTime(now);
 		 repairOrder.setActualHour(hours);
-		 repairOrder.setRecipientUserId(user.getId());
+		 repairOrder.setRecipientUserId(mainStuff.get(0).getUserId());
 		 repairOrderService.updateById(repairOrder);
 		 if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){
 			 Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId());
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentReportRepair.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentReportRepair.java
index 513c4eb..dc284b0 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentReportRepair.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentReportRepair.java
@@ -16,6 +16,7 @@
 
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -177,7 +178,7 @@
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date finishTime;
-    private Double faultHour;
+    private BigDecimal faultHour;
     /**
      * 闄勪欢涓婁紶鍒楄〃
      */
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderActualWorkHoursMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderActualWorkHoursMapper.xml
index edbd955..0b4f164 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderActualWorkHoursMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderActualWorkHoursMapper.xml
@@ -18,7 +18,7 @@
                t1.theoretical_time                            theoreticalTime,
                t7.item_text                                   principalContractor_dictText,
                t1.user_num                                 as userNum,
-               t2.id                                          userId,
+               t1.user_id                                         userId,
                t1.repair_order_id                          as repairOrderId,
                t1.actual_hour,----------
                t2.username                                    username,
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/FaultIntervalTimeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/FaultIntervalTimeServiceImpl.java
index c6324fb..d4dd5a8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/FaultIntervalTimeServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/FaultIntervalTimeServiceImpl.java
@@ -92,7 +92,7 @@
                     if(equipmentReportRepair.getFaultTime() != null && equipmentReportRepair.getFaultTime().compareTo(endDate) < 0 &&  equipmentReportRepair.getFaultTime().compareTo(startDate) > 0){
                         //2銆侀獙鏀舵椂闂村湪鏌ヨ鏃堕棿娈靛唴
                         if(equipmentReportRepair.getAcceptTime() != null && equipmentReportRepair.getAcceptTime().compareTo(endDate) < 0){
-                            equipmentFaultTime = equipmentFaultTime.add(new BigDecimal(equipmentReportRepair.getFaultHour()));
+                            equipmentFaultTime = equipmentFaultTime.add(equipmentReportRepair.getFaultHour());
                             count++;
                             //3銆侀獙鏀舵椂闂村ぇ浜庢煡璇㈢粨鏉熸椂闂�
                         }else {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderServiceImpl.java
index 45d9d2c..e383048 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderServiceImpl.java
@@ -383,7 +383,7 @@
 					if(equipmentReportRepair.getFaultTime() != null && equipmentReportRepair.getFaultTime().compareTo(endDate) < 0 &&  equipmentReportRepair.getFaultTime().compareTo(startDate) > 0){
 						//2銆侀獙鏀舵椂闂村湪鏌ヨ鏃堕棿娈靛唴
 						if(equipmentReportRepair.getAcceptTime() != null && equipmentReportRepair.getAcceptTime().compareTo(endDate) < 0){
-							equipmentFaultTime = equipmentFaultTime.add(new BigDecimal(equipmentReportRepair.getFaultHour()));
+							equipmentFaultTime = equipmentFaultTime.add(equipmentReportRepair.getFaultHour());
 							int flag = 0;
 							if(CollectionUtils.isNotEmpty(faultTimeList)){
 								for(String faultTime : faultTimeList){
@@ -504,7 +504,7 @@
 					if(equipmentReportRepair.getFaultTime() != null && equipmentReportRepair.getFaultTime().compareTo(endDate) < 0 &&  equipmentReportRepair.getFaultTime().compareTo(startDate) > 0){
 						//2銆侀獙鏀舵椂闂村湪鏌ヨ鏃堕棿娈靛唴
 						if(equipmentReportRepair.getAcceptTime() != null && equipmentReportRepair.getAcceptTime().compareTo(endDate) < 0){
-							equipmentFaultTime = equipmentFaultTime.add(new BigDecimal(equipmentReportRepair.getFaultHour()));
+							equipmentFaultTime = equipmentFaultTime.add(equipmentReportRepair.getFaultHour());
 							//3銆侀獙鏀舵椂闂村ぇ浜庢煡璇㈢粨鏉熸椂闂�
 						}else {
 							long diff2 = endDate.getTime() - equipmentReportRepair.getFaultTime().getTime();
diff --git "a/lxzn-module-system/lxzn-system-start/src/main/resources/db/2023_12_11\050lnl\051/lnl.sql" "b/lxzn-module-system/lxzn-system-start/src/main/resources/db/2023_12_11\050lnl\051/lnl.sql"
new file mode 100644
index 0000000..3661494
--- /dev/null
+++ "b/lxzn-module-system/lxzn-system-start/src/main/resources/db/2023_12_11\050lnl\051/lnl.sql"
@@ -0,0 +1,5 @@
+-- 鑿滃崟缁翠慨灞ュ巻淇敼
+UPDATE [dbo].[sys_permission] SET [parent_id] = N'1647845086853693442', [name] = N'缁翠慨灞ュ巻', [url] = N'/eam/RepairOrder', [component] = N'eam/RepairOrderList', [component_name] = NULL, [redirect] = NULL, [menu_type] = 1, [perms] = NULL, [perms_type] = N'1', [sort_no] = 1.2, [always_show] = 0, [icon] = NULL, [is_route] = 1, [is_leaf] = 1, [keep_alive] = 0, [hidden] = 0, [hide_tab] = 0, [description] = NULL, [create_by] = N'admin', [create_time] = '2023-04-24 16:56:44.0000000', [update_by] = N'admin', [update_time] = '2023-12-11 11:32:06.0090000', [del_flag] = 0, [rule_flag] = 0, [status] = N'1', [internal_or_external] = 0 WHERE CONVERT(NVARCHAR(MAX), [id]) = N'1650423515662295042';
+-- 鑿滃崟璁惧浜嬫晠鐧昏琛ㄤ慨鏀�
+UPDATE [dbo].[sys_permission] SET [parent_id] = N'1647845086853693442', [name] = N'璁惧浜嬫晠鐧昏琛�', [url] = N'/eam/FaultInfoList', [component] = N'eam/FaultInfoList', [component_name] = NULL, [redirect] = NULL, [menu_type] = 1, [perms] = NULL, [perms_type] = N'1', [sort_no] = 2.1, [always_show] = 0, [icon] = NULL, [is_route] = 1, [is_leaf] = 1, [keep_alive] = 0, [hidden] = 0, [hide_tab] = 0, [description] = NULL, [create_by] = N'admin', [create_time] = '2023-11-13 09:39:39.0000000', [update_by] = N'admin', [update_time] = '2023-12-11 11:38:21.9880000', [del_flag] = 0, [rule_flag] = NULL, [status] = N'1', [internal_or_external] = 0 WHERE CONVERT(NVARCHAR(MAX), [id]) = N'1723878256194232322';
+

--
Gitblit v1.9.3