From dd301742784e570ec01098907f56e5c9c19b5a99 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 23 七月 2024 17:26:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java | 98 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 93 insertions(+), 5 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java index 0b055d1..d8609a0 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java @@ -1,16 +1,30 @@ package com.yuanchu.mom.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.DeviceDto; +import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.DeviceMapper; +import com.yuanchu.mom.mapper.StructureItemParameterMapper; +import com.yuanchu.mom.pojo.DataConfig; import com.yuanchu.mom.pojo.Device; +import com.yuanchu.mom.pojo.StructureItemParameter; +import com.yuanchu.mom.service.DataConfigService; import com.yuanchu.mom.service.DeviceService; +import com.yuanchu.mom.utils.DataAcquisition; import com.yuanchu.mom.utils.QueryWrappers; +import com.yuanchu.mom.vo.Result; import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,13 +40,19 @@ private DeviceMapper deviceMapper; + private StructureItemParameterMapper structureItemParameterMapper; + + @Autowired + private DataConfigService dataConfigService; + @Override - public Map<String, Object> selectDeviceParameter(Page page, Device itemParameter) { + public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) { Map<String, Object> map = new HashMap<>(); - map.put("head", PrintChina.printChina(Device.class)); + map.put("head", PrintChina.printChina(DeviceDto.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter"); if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId")); - map.put("body", deviceMapper.selectDeviceParameter(page, QueryWrappers.queryWrappers(itemParameter))); + IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter)); + map.put("body", iPage); return map; } @@ -53,7 +73,7 @@ @Override public List<Device> selectEquipmentOverview() { - return deviceMapper.selectEquipmentOverview(); + return deviceMapper.selectEquipmentOverview(new Page(1, 10), QueryWrappers.queryWrappers(new Device())); } @Override @@ -66,5 +86,73 @@ return deviceMapper.search(status, deviceName, specificationModel, largeCategory); } -} + @Override + public List<Device> selectDevicePrincipal() { + return deviceMapper.selectDevicePrincipal(); + } + @Override + public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) { + Integer id; + try { + if (ObjectUtils.isEmpty(inspectionItemSubclass)) { + id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery() + .eq(StructureItemParameter::getInspectionItem, inspectionItem) + .last("limit 1").select(StructureItemParameter::getId)).getId(); + }else { + id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery() + .eq(StructureItemParameter::getInspectionItem, inspectionItem) + .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass) + .last("limit 1").select(StructureItemParameter::getId)).getId(); + } + } catch (Exception e) { + return null; + } + List<Device> devices = deviceMapper.selectList(Wrappers.<Device>lambdaQuery() + .eq(Device::getDeviceStatus, 0) + .isNotNull(Device::getInsProductIds)); + List<Device> devices2 = new ArrayList<>(); + for (Device device : devices) { + String[] ids = device.getInsProductIds().split(","); + for (String i : ids) { + if (i.equals(id + "")) { + devices2.add(device); + break; + } + } + } + return devices2; + } + + @Override + public Device selectDeviceByCode(String code) { + return deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getFactoryNo, code).last("limit 1")); + } + + @Override + public Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode) { + String ipAddress = request.getRemoteAddr(); + // 闃叉鍥炵幆鍦板潃鍙樹负IPv6 + String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; + List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery() + .eq(Device::getIp, ip)); + if (ObjectUtils.isEmpty(device)) { + throw new ErrorException("鏈粰璇P锛�" + ip + "閰嶇疆璁惧锛屾棤娉曡繘琛屾暟閲囷紒"); + } + List<String> inspectionItemSubclass = baseMapper.getInspectionItemSubclass(id); + Map<String, String> hashMap = new HashMap<>(); + device.forEach(i -> { + if (ObjectUtils.isEmpty(i.getFileType()) || ObjectUtils.isEmpty(i.getCollectUrl())) { + throw new ErrorException("鏈粰璇ワ細" + i.getDeviceName() + "璁惧閰嶇疆閲囬泦璺緞鎴栨枃浠跺悗缂�锛�"); + } + List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() + .eq(DataConfig::getDeviceId, i.getId()) + .in(DataConfig::getInsProductItem, inspectionItemSubclass) + .orderBy(false, false, DataConfig::getId)); + hashMap.putAll(DataAcquisition.dataAcquisitionEntrance(request, list, i, entrustCode, sampleCode, ip)); + }); + String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode); + hashMap.put("frequency", frequency); + return Result.success(hashMap); + } +} -- Gitblit v1.9.3