From bcd7d1c9222431f37a6579a72456b2edb8f02402 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 07 三月 2025 10:54:38 +0800
Subject: [PATCH] art: 验收日期 与 下次三保日期计算关系

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java |  137 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 130 insertions(+), 7 deletions(-)

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 1ee1cdb..e4dc0fb 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,5 +1,6 @@
 package org.jeecg.modules.eam.controller;
 
+import java.time.LocalDate;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -20,6 +21,7 @@
 import org.jeecg.common.system.base.entity.SysUpload;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.base.entity.Constructor;
 import org.jeecg.modules.base.service.IConstructorService;
 import org.jeecg.modules.base.service.IFactoryModelService;
@@ -36,7 +38,9 @@
 import org.jeecg.common.system.base.controller.JeecgController;
 
 import org.jeecg.modules.system.entity.SysDepart;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysDepartService;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -124,7 +128,8 @@
 	 @Autowired
 	 private IMaintenanceStandardService maintenanceStandardService;
 
-
+	 @Autowired
+	 private ISysUserService sysUserService;
 
 
 	/**
@@ -159,6 +164,10 @@
 		}
 		if(StringUtils.isNotBlank(equipment.getEquipmentCategoryId())){
 			queryWrapper.eq("equipment_category_id",equipment.getEquipmentCategoryId());
+		}
+		List<String> userWorkCenterIds = getUserWorkCenterIds();
+		if(CollectionUtils.isNotEmpty(userWorkCenterIds)) {
+			queryWrapper.in("work_center_id",userWorkCenterIds);
 		}
 		if(StringUtils.isNotBlank(equipment.getWorkCenterId())){
 			queryWrapper.eq("work_center_id",equipment.getWorkCenterId());
@@ -306,9 +315,41 @@
 													  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 													  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 													  HttpServletRequest req) {
-		 QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
+		 //QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
 		 Page<Equipment> page = new Page<Equipment>(pageNo, pageSize);
 		 IPage<Equipment> pageList = equipmentService.getEquipmentTZList(page, equipment);
+		 List<Equipment> list = pageList.getRecords();
+		 list.forEach(equip -> {
+			 String id = equip.getId();
+			 List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery()
+					 .eq(DailyInspectionStandard::getEquipmentId, id)
+					 .eq(DailyInspectionStandard::getVersionStatus, "2")
+					 .list();
+			 if (dailyInspectionStandards.size() > 0) {
+				 equip.setYseNoInspectionStandard("0");
+			 } else {
+				 equip.setYseNoInspectionStandard("1");
+			 }
+			 List<MaintenanceStandard> maintenance2Standards = maintenanceStandardService.lambdaQuery()
+					 .eq(MaintenanceStandard::getEquipmentId, id)
+					 .eq(MaintenanceStandard::getMaintenanceType, "2")
+					 .eq(MaintenanceStandard::getVersionStatus, "2").list();
+			 if (maintenance2Standards.size() > 0) {
+				 equip.setYseNoMaintenance2Standard("0");
+			 } else {
+				 equip.setYseNoMaintenance2Standard("1");
+			 }
+
+			 List<MaintenanceStandard> maintenance3Standards = maintenanceStandardService.lambdaQuery()
+					 .eq(MaintenanceStandard::getEquipmentId, id)
+					 .eq(MaintenanceStandard::getMaintenanceType, "3")
+					 .eq(MaintenanceStandard::getVersionStatus, "2").list();
+			 if (maintenance3Standards.size() > 0) {
+				 equip.setYseNoMaintenance3Standard("0");
+			 } else {
+				 equip.setYseNoMaintenance3Standard("1");
+			 }
+		 });
 		 return Result.OK(pageList);
 	 }
 
@@ -329,6 +370,20 @@
 	@PostMapping(value = "/add")
 	@Transactional(rollbackFor = { Exception.class })
 	public Result<String> add(@RequestBody Equipment equipment) {
+		//涓嬫涓変繚鏃ユ湡澶勭悊
+		if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+			//濡傛灉娌℃湁涓変繚鏃ユ湡 鎸夌収楠屾敹鏃ユ湡璁$畻涓嬫涓変繚鏃ユ湡
+			int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+			LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
+			LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
+			Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
+			equipment.setNextThirdMaintenanceTime(date);
+		}else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+			//濡傛灉鏈変笁淇濇棩鏈� 鍒欎娇鐢ㄤ笁淇濇棩鏈熻绠� 涓嬫涓変繚鏃ユ湡
+			int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+			Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
+			equipment.setNextThirdMaintenanceTime(date);
+		}
 		equipmentService.save(equipment);
 		//鑾峰彇宸ヨ壓鍙傛暟妯℃澘鏄庣粏
 		String processParametersTemplateId = equipment.getProcessParametersTemplateId();
@@ -408,6 +463,21 @@
 			equipmentPrecisionParameters.setEquipmentId(equipment.getId());
 			equipmentPrecisionParameters.setPrecisionParametersId(precisionParameter.getPrecisionParametersId());
 			equipmentPrecisionParametersService.save(equipmentPrecisionParameters);
+		}
+
+		//涓嬫涓変繚鏃ユ湡澶勭悊
+		if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+			//濡傛灉娌℃湁涓変繚鏃ユ湡 鎸夌収楠屾敹鏃ユ湡璁$畻涓嬫涓変繚鏃ユ湡
+			int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+			LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
+			LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
+			Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
+			equipment.setNextThirdMaintenanceTime(date);
+		}else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+			//濡傛灉鏈変笁淇濇棩鏈� 鍒欎娇鐢ㄤ笁淇濇棩鏈熻绠� 涓嬫涓変繚鏃ユ湡
+			int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+			Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
+			equipment.setNextThirdMaintenanceTime(date);
 		}
 
 		equipmentService.updateById(equipment);
@@ -668,7 +738,9 @@
                      EquipmentImportVo equipmentImportVo = list.get(i);
 					 String equipmentCategoryName = equipmentImportVo.getEquipmentCategoryName();
 					 String useId = equipmentImportVo.getUseId();
-					 String areaId = equipmentImportVo.getFactoryModelId();
+					 String workCenterId = equipmentImportVo.getWorkCenterId();//涓績
+					 String areaId = equipmentImportVo.getFactoryModelId();//宸ュ尯
+					 String productionId = equipmentImportVo.getAreaId();//宸ユ
 					 String manageId = equipmentImportVo.getManageId();
 					 String constructorId = equipmentImportVo.getConstructorId();
 					 String teamId = equipmentImportVo.getTeamId();
@@ -701,13 +773,18 @@
 						 exceptionNum++;
 						 continue;
 					 }
-					 else if(StringUtils.isBlank(equipmentImportVo.getModel())){
-						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璁惧鍨嬪彿缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
+//					 else if(StringUtils.isBlank(equipmentImportVo.getModel())){
+//						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璁惧鍨嬪彿缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
+//						 exceptionNum++;
+//						 continue;
+//					 }
+					 else if(StringUtils.isBlank(useId)){
+						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:浣跨敤閮ㄩ棬缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
 						 exceptionNum++;
 						 continue;
 					 }
-					 else if(StringUtils.isBlank(useId)){
-						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:浣跨敤閮ㄩ棬缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
+					 else if(StringUtils.isBlank(workCenterId)){
+						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:涓績缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
 						 exceptionNum++;
 						 continue;
 					 }
@@ -793,6 +870,18 @@
 							 exceptionNum++;
 							 continue;
 						 }
+						 //涓績
+						 Area workCenterArea = areaService.getOne(new QueryWrapper<Area>().eq("name",workCenterId.trim()).eq("del_flag",0));
+						 if(ObjectUtils.isNotNull(workCenterArea)){
+							 equipment.setWorkCenterId(workCenterArea.getId());
+//						 }else if(ObjectUtils.isNotNull(area1)) {
+//							 equipment.setFactoryModelId(area1.getId());
+						 }else {
+							 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:涓嶅瓨鍦ㄨ涓績,璇风淮鎶や腑蹇冩暟鎹悗鍐嶅鍏�;";
+							 exceptionNum++;
+							 continue;
+						 }
+						 //宸ュ尯
 						 Area area = areaService.getOne(new QueryWrapper<Area>().eq("name",areaId.trim()).eq("del_flag",0));
 						 Area area1 = areaService.getOne(new QueryWrapper<Area>().eq("num",areaId.trim()).eq("del_flag",0));
 						 if(ObjectUtils.isNotNull(area)){
@@ -804,6 +893,13 @@
 							 exceptionNum++;
 							 continue;
 						 }
+
+						 //宸ユ
+						 Area productionArea = areaService.getOne(new QueryWrapper<Area>().eq("name",productionId.trim()).eq("del_flag",0));
+						 if(ObjectUtils.isNotNull(productionArea)){
+							 equipment.setAreaId(productionArea.getId());
+						 }
+
 						 SysDepart manage = departService.getOne(new QueryWrapper<SysDepart>().eq("depart_name",manageId.trim()).eq("del_flag",0));
 						 if(ObjectUtils.isNotNull(manage)){
 							 equipment.setManageId(manage.getId());
@@ -921,6 +1017,20 @@
 											equipment.setCheckPeriod(365*4+"");
 										}
 									}
+								 }
+								 //涓嬫涓変繚鏃ユ湡澶勭悊
+								 if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+									 //濡傛灉娌℃湁涓変繚鏃ユ湡 鎸夌収楠屾敹鏃ユ湡璁$畻涓嬫涓変繚鏃ユ湡
+									 int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+									 LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
+									 LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
+									 Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
+									 equipment.setNextThirdMaintenanceTime(date);
+								 }else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
+									 //濡傛灉鏈変笁淇濇棩鏈� 鍒欎娇鐢ㄤ笁淇濇棩鏈熻绠� 涓嬫涓変繚鏃ユ湡
+									 int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
+									 Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
+									 equipment.setNextThirdMaintenanceTime(date);
 								 }
 								 equipmentService.save(equipment);
 							 }else {
@@ -1073,4 +1183,17 @@
 		 return Result.OK(pageList);
 	 }
 
+	 private List<String> getUserWorkCenterIds(){
+		 LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		 SysUser sysUser = sysUserService.getById(user.getId());
+		 String areaId = sysUser.getAreaId();
+		 List<String>  workCenterIds = null;
+		 if(StringUtils.isNotBlank(areaId)){
+//            strings = new ArrayList<>();
+			 String[] split = areaId.split(",");
+			 workCenterIds = Arrays.asList(split);
+		 }
+		 return workCenterIds;
+	 }
+
 }

--
Gitblit v1.9.3