From 00f81ed9c631080dfc4595b07d77f73f9563731c Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 25 三月 2025 16:42:35 +0800 Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency --- 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