From b700b37c67c8155d3078955f2690406d814f1826 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 25 三月 2025 15:42:33 +0800
Subject: [PATCH] 第三方人事系统配置+设备导入
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java | 88 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 79 insertions(+), 9 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 61c7473..8285c04 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
@@ -1,5 +1,6 @@
package com.ruoyi.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson2.JSON;
@@ -12,7 +13,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
+import com.ruoyi.basic.mapper.LaboratoryMapper;
import com.ruoyi.basic.mapper.StructureItemParameterMapper;
+import com.ruoyi.basic.pojo.Laboratory;
import com.ruoyi.basic.pojo.StructureItemParameter;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.User;
@@ -25,19 +28,22 @@
import com.ruoyi.device.pojo.*;
import com.ruoyi.device.service.DataConfigService;
import com.ruoyi.device.service.DeviceService;
-import com.ruoyi.device.service.DocumentService;
+import com.ruoyi.device.service.DeviceDocumentsService;
import com.ruoyi.device.utils.DataAcquisition;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.mapper.InsSampleMapper;
import com.ruoyi.inspect.pojo.InsProduct;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.performance.dto.AuxiliaryCorrectionHoursDto;
+import com.ruoyi.performance.pojo.AuxiliaryCorrectionHours;
+import com.ruoyi.system.mapper.SysDictDataMapper;
import com.ruoyi.system.mapper.UserMapper;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -48,6 +54,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -61,15 +68,17 @@
private UserMapper userMapper;
+ private LaboratoryMapper laboratoryMapper;
+
+ private SysDictDataMapper sysDictDataMapper;
+
private StructureItemParameterMapper structureItemParameterMapper;
private DataConfigService dataConfigService;
- private QrShowServiceImpl qrShowService;
-
private InsSampleMapper insSampleMapper;
- private DocumentService documentService;
+ private DeviceDocumentsService documentService;
private DeviceMetricRecordMapper deviceMetricRecordMapper;
@@ -166,7 +175,7 @@
}
deviceDto.setAuthorizedPersonName(name);
//鏌ヨ璁惧鏍″噯淇℃伅
- DeviceMetricRecord calibrate = qrShowService.getDeviceMetricRecord(id, "calibrate");
+ DeviceMetricRecord calibrate = getDeviceMetricRecord(id, "calibrate");
deviceDto.setCalibrateNo(calibrate.getCertificateSerialNumber());
// 鍒颁簡鍋滅敤鏃ユ湡锛岃嚜鍔ㄥ皢鐘舵�佹敼涓哄仠鐢�
@@ -180,6 +189,21 @@
}
}
return deviceDto;
+ }
+
+ /**
+ * 鏌ヨ璁惧鏍″噯/鏍告煡璁板綍
+ * @param deviceId
+ * @param type
+ * @return
+ */
+ public DeviceMetricRecord getDeviceMetricRecord(int deviceId, String type){
+ return Optional.ofNullable(
+ deviceMetricRecordMapper.selectOne(Wrappers.<DeviceMetricRecord>lambdaQuery()
+ .eq(DeviceMetricRecord::getDeviceId, deviceId)
+ .eq(DeviceMetricRecord::getType, type)
+ .orderByDesc(DeviceMetricRecord::getCreateTime)
+ .last("limit 1"))).orElse(new DeviceMetricRecord());
}
@Override
@@ -304,7 +328,7 @@
// 璁惧淇℃伅
Device device = baseMapper.selectById(deviceId);
// 璁惧妗f
- List<Document> documentList = documentService.list(Wrappers.<Document>lambdaQuery().eq(Document::getDeviceId, deviceId));
+ List<DeviceDocuments> documentList = documentService.list(Wrappers.<DeviceDocuments>lambdaQuery().eq(DeviceDocuments::getDeviceId, deviceId));
// 璁惧鏍″噯琛�
List<DeviceMetricRecord> deviceMetricRecordList = deviceMetricRecordMapper.selectList(Wrappers.<DeviceMetricRecord>lambdaQuery().eq(DeviceMetricRecord::getDeviceId, deviceId));
// 璁惧缁翠慨琛�
@@ -406,13 +430,13 @@
* @param documentList 妗f鍒楄〃
* @param documentExportWordDtoList 杩斿洖缁檞ord鐨勬暟鎹垪琛�
*/
- private static void extracted(List<Document> documentList, List<DocumentExportWordDto> documentExportWordDtoList) {
+ private static void extracted(List<DeviceDocuments> documentList, List<DocumentExportWordDto> documentExportWordDtoList) {
// 缁欐。妗堝姞搴忓彿 骞朵笖鍒嗕负宸﹀彸涓や釜鍒楄〃鍦╳ord涓樉绀�
for (int i = 0; i < documentList.size(); i++) {
// 鍒涘缓word琛ㄦ牸涓竴琛岀殑鏁版嵁瀵硅薄
DocumentExportWordDto documentExportWordDto = new DocumentExportWordDto();
// 鑾峰彇妗f淇℃伅
- Document document = documentList.get(i);
+ DeviceDocuments document = documentList.get(i);
// 鏍煎紡鍖栨棩鏈�
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 鏍规嵁搴忓彿 鍒嗗埆鍔犲叆涓や釜鍒楄〃
@@ -484,4 +508,50 @@
throw new RuntimeException("瀵煎嚭澶辫触");
}
}
+
+
+ //瀵煎叆璁惧
+ @Override
+ public void importExcel(List<Device> list){
+ if (CollectionUtil.isEmpty(list)) {
+ return;
+ }
+ List<Device> deviceList = new ArrayList<>();
+ List<Device> devices = new ArrayList<>();
+ for (Device device : list) {
+ Device device1 = deviceMapper.selectOne(Wrappers.<Device>lambdaQuery()
+ .eq(Device::getDeviceName, device.getDeviceName())
+ .eq(Device::getSpecificationModel, device.getSpecificationModel())
+ .eq(Device::getManagementNumber, device.getManagementNumber()));
+ //绠$悊浜�
+ if (ObjectUtils.isNotEmpty(device.getEquipmentManagerName())){
+ //鏌ュ搴旂鐞嗕汉
+ User user = userMapper.selectOne(Wrappers.<User>lambdaQuery()
+ .eq(User::getName, device.getEquipmentManagerName()));
+ device.setEquipmentManager(user.getId());
+ }
+ //鎵�灞為儴闂�
+ if (ObjectUtils.isNotEmpty(device.getSubordinateDepartments())){
+ //鏌ュ搴旀墍灞為儴闂�
+ Laboratory laboratory = laboratoryMapper.selectOne(Wrappers.<Laboratory>lambdaQuery()
+ .eq(Laboratory::getLaboratoryName,device.getSubordinateDepartments()));
+ device.setSubordinateDepartmentsId(laboratory.getId());
+ }
+ //璁惧鐘舵��
+ if (ObjectUtils.isNotEmpty(device.getDeviceStatusName())){
+ //鏌ュ瓧鍏稿搴旂殑鍊�
+ String status = sysDictDataMapper.selectDictValue("device_status", device.getDeviceStatusName());
+ device.setDeviceStatus(Integer.parseInt(status));
+ }
+ if (ObjectUtils.isNotEmpty(device1)) {
+ devices.add(device1);
+ } else {
+ deviceList.add(device);
+ }
+ }
+ //鎵归噺鏂板
+ saveBatch(deviceList);
+ //鎵归噺淇敼
+ updateBatchById(devices);
+ }
}
--
Gitblit v1.9.3