From 2f07589b54d56085af77b50d580890cd4130b444 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:53 +0800
Subject: [PATCH] 设备模块后端业务规则、计划接口与日期联动
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java | 50 ++++++++++++++++++++++++++++++++------------------
1 files changed, 32 insertions(+), 18 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
index 14a060c..a0cc9d1 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -17,17 +17,22 @@
import com.ruoyi.basic.pojo.StructureItemParameter;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.SysDictData;
-import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.dto.*;
import com.ruoyi.device.excel.upload.DeviceImport;
import com.ruoyi.device.mapper.CollectBridgeMapper;
+import com.ruoyi.device.mapper.DeviceCalibrationPlanDetailMapper;
+import com.ruoyi.device.mapper.DeviceCalibrationPlanMapper;
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
import com.ruoyi.device.mapper.DeviceMapper;
import com.ruoyi.device.mapper.DeviceMetricRecordMapper;
import com.ruoyi.device.pojo.*;
import com.ruoyi.device.service.DataConfigService;
+import com.ruoyi.device.service.DeviceCalibrationPlanService;
+import com.ruoyi.device.service.DeviceExaminePlanService;
+import com.ruoyi.device.service.DeviceMaintenancePlanService;
import com.ruoyi.device.service.DeviceService;
import com.ruoyi.device.service.DeviceDocumentsService;
import com.ruoyi.device.utils.DataAcquisition;
@@ -36,7 +41,6 @@
import com.ruoyi.inspect.pojo.InsProduct;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.system.mapper.SysDictDataMapper;
-import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.UserMapper;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings;
@@ -68,8 +72,6 @@
private UserMapper userMapper;
- private SysDeptMapper sysDeptMapper;
-
private SysDictDataMapper sysDictDataMapper;
private StructureItemParameterMapper structureItemParameterMapper;
@@ -85,6 +87,12 @@
private DeviceMaintenanceMapper deviceMaintenanceMapper;
private CollectBridgeMapper collectBridgeMapper;
+
+ private DeviceCalibrationPlanService deviceCalibrationPlanService;
+
+ private DeviceExaminePlanService deviceExaminePlanService;
+
+ private DeviceMaintenancePlanService deviceMaintenancePlanService;
@Override
public IPage<DeviceDto> selectDeviceParameter(Page page, DeviceDto itemParameter, Boolean laboratoryNameIsNull) {
@@ -105,8 +113,23 @@
@Transactional(rollbackFor = Exception.class)
@Override
public int upDeviceParameter(Device itemParameter) {
-
- return deviceMapper.updateById(itemParameter);
+ int rows = deviceMapper.updateById(itemParameter);
+ // 妗f淇濉啓浜嗘牎鍑嗕俊鎭悗锛屽埌鐐圭殑鑷姩鍚屾鍒拌澶囨牎鍑嗚鍒�
+ Device device = deviceMapper.selectById(itemParameter.getId());
+ if (device != null && (device.getNextCalibrationDate() != null || device.getActivationDate() != null)) {
+ deviceCalibrationPlanService.syncDeviceCalibrationDetail(device);
+ }
+ // 妗f淇濉啓浜嗘牳鏌ヤ俊鎭悗锛屽埌鐐圭殑鑷姩鍚屾鍒拌澶囨牳鏌ヨ鍒�
+ if (device != null && (device.getNextExamineDate() != null
+ || (device.getLastExamineDate() != null && StringUtils.isNotBlank(device.getExamineCycle())))) {
+ deviceExaminePlanService.syncDeviceExamineDetail(device);
+ }
+ // 妗f淇濉啓浜嗕繚鍏讳俊鎭悗锛屽埌鐐圭殑鑷姩鍚屾鍒拌澶囦繚鍏昏鍒�
+ if (device != null && (device.getNextMaintenanceDate() != null
+ || (device.getLastMaintenanceDate() != null && StringUtils.isNotBlank(device.getMaintenanceCycle())))) {
+ deviceMaintenancePlanService.syncDeviceMaintenanceDetail(device);
+ }
+ return rows;
}
@Override
@@ -458,8 +481,9 @@
}
@Override
- public void exportEquipmentDetails(HttpServletResponse response) {
- List<Device> deviceList = baseMapper.selectList(null);
+ public void exportEquipmentDetails(DeviceDto itemParameter, HttpServletResponse response) {
+ // 鎸夊綋鍓嶇瓫閫夋潯浠跺鍑�(鏉′欢涓虹┖鏃跺鍑哄叏閮�)
+ List<Device> deviceList = baseMapper.selectList(QueryWrappers.<Device>queryWrappers(itemParameter));
List<DeviceExport> deviceExportList = new ArrayList<>();
int index = 1;
@@ -560,9 +584,6 @@
.select(Device::getDeviceName, Device::getSpecificationModel, Device::getManagementNumber))
.stream().map(d -> deviceKey(d.getDeviceName(), d.getSpecificationModel(), d.getManagementNumber())).collect(Collectors.toSet());
- Map<String, List<SysDept>> departmentMap = sysDeptMapper.selectDeptList(new SysDept()).stream()
- .filter(item -> StringUtils.isNotBlank(item.getDeptName()))
- .collect(Collectors.groupingBy(item -> item.getDeptName().trim()));
Map<String, List<User>> userMap = userMapper.selectList(Wrappers.<User>lambdaQuery()
.isNotNull(User::getName).select(User::getId, User::getName))
.stream().collect(Collectors.groupingBy(item -> item.getName().trim()));
@@ -580,18 +601,11 @@
throw new RuntimeException("绗�" + rowNumber + "琛岋細浠櫒鍚嶇О鈥�" + deviceName + "鈥�+瑙勬牸鍨嬪彿鈥�" + specificationModel + "鈥�+绠$悊缂栧彿鈥�" + managementNumber + "鈥濆凡瀛樺湪");
}
- String laboratoryName = required(row.getLaboratoryName(), rowNumber, "鎵�灞為儴闂�");
- List<SysDept> departments = departmentMap.get(laboratoryName);
- if (CollectionUtils.isEmpty(departments) || departments.size() > 1) {
- throw new RuntimeException("绗�" + rowNumber + "琛岋細鎵�灞為儴闂ㄢ��" + laboratoryName + "鈥濅笉瀛樺湪鎴栦笉鍞竴");
- }
-
Device device = new Device();
device.setDeviceName(deviceName);
device.setSpecificationModel(specificationModel);
device.setManagementNumber(managementNumber);
device.setActivationDate(parseDate(row.getActivationDate()));
- device.setSubordinateDepartmentsId(departments.get(0).getDeptId().intValue());
device.setDeviceStatus(Integer.valueOf(dictValue(statusMap, row.getDeviceStatus(), rowNumber, "褰撳墠鐘舵��", true)));
device.setCalibrationDate(required(row.getCalibrationDate(), rowNumber, "鏍″噯鍛ㄦ湡(鏈�)"));
device.setEnDeviceName(trim(row.getEnDeviceName()));
--
Gitblit v1.9.3