From 11af23e0c7976eed1211ba2ca0beae3a12e19310 Mon Sep 17 00:00:00 2001 From: lxp <1928192722@qq.com> Date: 星期三, 12 三月 2025 15:37:47 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceFaultServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 0 deletions(-) diff --git a/cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceFaultServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceFaultServiceImpl.java new file mode 100644 index 0000000..3d780b1 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceFaultServiceImpl.java @@ -0,0 +1,107 @@ +package com.ruoyi.requier.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.basic.mapper.StructureItemParameterMapper; +import com.ruoyi.basic.pojo.StructureItemParameter; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.requier.mapper.DeviceFaultMapper; +import com.ruoyi.requier.mapper.DeviceFaultOneMapper; +import com.ruoyi.requier.mapper.DeviceMaintenanceMapper; +import com.ruoyi.requier.mapper.DeviceMapper; +import com.ruoyi.requier.pojo.*; +import com.ruoyi.requier.service.DeviceFaultService; +import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.system.mapper.SysDictTypeMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class DeviceFaultServiceImpl extends ServiceImpl<DeviceFaultMapper, DeviceFault> implements DeviceFaultService { + + @Autowired + private DeviceMapper deviceMapper; + + @Autowired + private QrShowServiceImpl qrShowService; + + @Resource + private SysDictDataMapper sysDictDataMapper; + + @Autowired + private DeviceMaintenanceMapper deviceMaintenanceMapper; + + @Autowired + private StructureItemParameterMapper structureItemParameterMapper; + + @Autowired + private DeviceFaultOneMapper deviceFaultOneMapper; + + @Override + public Map<String,Object> findByDeviceId(Integer deviceId) { + Map<String,Object> map = new HashMap<>(); + if(Objects.isNull(deviceId)){ + return map; + } + //鏌ヨ璁惧涓昏〃淇℃伅 + Device device = deviceMapper.selectById(deviceId); + if(!Objects.isNull(device)){ + //鏌ヨ璁惧鏍″噯淇℃伅 + DeviceMetricRecord calibrate = qrShowService.getDeviceMetricRecord(device.getId(), "calibrate"); + //鏌ヨ璁惧鏍告煡淇℃伅 + DeviceMetricRecord examine = qrShowService.getDeviceMetricRecord(device.getId(), "examine"); + //鏌ヨ璁惧缁存姢璁板綍 + DeviceMaintenance deviceMaintenance = Optional.ofNullable(deviceMaintenanceMapper.selectOne(Wrappers.<DeviceMaintenance>lambdaQuery() + .eq(DeviceMaintenance::getDeviceId, device.getId()) + .orderByDesc(DeviceMaintenance::getId) + .last("limit 1"))).orElse(new DeviceMaintenance()); + //鏌ヨ璁惧鏁呴殰淇℃伅 + List<DeviceFaultOne> deviceFaultOneList = Optional.ofNullable(deviceFaultOneMapper.selectList(Wrappers.<DeviceFaultOne>lambdaQuery() + .eq(DeviceFaultOne::getDeviceId, device.getId()) + .orderByDesc(DeviceFaultOne::getId))).orElse(new ArrayList<>()); + //鏌ヨ璁惧鐘舵�佸瓧鍏� + List<SysDictData> sysDictDataList = sysDictDataMapper.selectDictDataByType("device_status"); +// List<SysDictData> sysDictDataList = DictUtils.getDictCache("璁惧鐘舵��"); + SysDictData findEnum = sysDictDataList.stream().filter(e-> Integer.parseInt(e.getDictValue()) ==device.getDeviceStatus()).findFirst().orElse(new SysDictData()); + map.put("progress",qrShowService.calcDeviceNextCheckRatio(calibrate.getCalibrationDate(),calibrate.getNextCalibrationDate()));//璺濈涓嬫鏍″噯鏃ユ湡鐨勫ぉ鏁扮櫨鍒嗘瘮 + map.put("deviceName",device.getDeviceName());//璁惧鍚嶇О + map.put("deviceCode",device.getManagementNumber());//璁惧缂栧彿 + map.put("usedYears",qrShowService.calcUsedYears(device.getActivationDate()));//鍚敤鏃堕暱(骞�) + map.put("deviceStatus",findEnum.getDictLabel());//璁惧杩愯鐘舵�� + map.put("faultCount",deviceFaultOneList.size());//鏁呴殰娆℃暟 + String faultDate = !deviceFaultOneList.isEmpty() ?qrShowService.formatDate(deviceFaultOneList.get(0).getFaultDate(),"yyyy-MM-dd"):""; + map.put("faultDate",faultDate);//鏈�杩戞晠闅滄棩鏈� + map.put("lastCalibrationDate",qrShowService.formatDate(calibrate.getCalibrationDate(),"yyyy-MM-dd"));//鏈�杩戞牎鍑嗘棩鏈� + map.put("nextCalibrationDate",qrShowService.formatDate(calibrate.getNextCalibrationDate(),"yyyy-MM-dd"));//涓嬫鏍″噯鏃ユ湡 + String calibrateStatus = "0yes".equals(calibrate.getStatus())?"鍚堟牸":"1no".equals(calibrate.getStatus())?"涓嶅悎鏍�":"鍏朵粬"; + map.put("calibrateStatus",Objects.isNull(calibrate.getCalibrationDate())?"":calibrateStatus);//鏍″噯鎬荤粨璁� + map.put("lastExamineDate",examine.getCalibrationDate());//鏈�杩戞牳鏌ユ棩鏈� + map.put("nextExamineDate",examine.getNextCalibrationDate());//涓嬫鏍告煡鏃ユ湡 + String examineStatus = "0yes".equals(examine.getStatus())?"鍚堟牸":"1no".equals(examine.getStatus())?"涓嶅悎鏍�":"鍏朵粬"; + map.put("examineStatus",Objects.isNull(examine.getCalibrationDate())?"":examineStatus);//鏍告煡鎬荤粨璁� + map.put("maintenanceDate",deviceMaintenance.getDate());//鏈�杩戠淮鎶ゆ棩鏈� + map.put("nextMaintenanceDate",deviceMaintenance.getNextDate());//涓嬫缁存姢鏃ユ湡 + String maintenanceType = ""; + if(!Objects.isNull(deviceMaintenance.getMaintenanceType())){ + maintenanceType = 0==deviceMaintenance.getMaintenanceType()?"浣跨敤鍓嶇淮鎶�":"浣跨敤鍚庣淮鎶�"; + } + map.put("maintenanceType",maintenanceType);//缁存姢鎬荤粨璁� + //娴嬮噺椤圭洰 + String insProduct = ""; + if(StringUtils.isNotBlank(device.getInsProductIds())){ + String[] ids = device.getInsProductIds().split(","); + List<StructureItemParameter> parameters = structureItemParameterMapper.selectBatchIds(Arrays.asList(ids)); + List<String> itemList = parameters.stream().map(StructureItemParameter::getInspectionItem).distinct().collect(Collectors.toList()); + insProduct = String.join(",",itemList); + } + map.put("insProduct",insProduct);//娴嬮噺椤圭洰 + } + return map; + } +} -- Gitblit v1.9.3