diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsGroupFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsGroupFeignClient.java new file mode 100644 index 0000000..c1073d7 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsGroupFeignClient.java @@ -0,0 +1,23 @@ +package com.njcn.csdevice.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.fallback.CsGroupClientFallbackFactory; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author xy + */ +@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csGroup", fallbackFactory = CsGroupClientFallbackFactory.class,contextId = "csGroup") + +public interface CsGroupFeignClient { + + @PostMapping("/getGroup") + HttpResult> getGroupData(@RequestParam("dataSet") String dataSet); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsGroupClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsGroupClientFallbackFactory.java new file mode 100644 index 0000000..0d7d25b --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsGroupClientFallbackFactory.java @@ -0,0 +1,36 @@ +package com.njcn.csdevice.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.CsGroupFeignClient; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author xy + */ +@Slf4j +@Component +public class CsGroupClientFallbackFactory implements FallbackFactory { + @Override + public CsGroupFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (cause.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) cause.getCause(); + } + Enum finalExceptionEnum = exceptionEnum; + return new CsGroupFeignClient() { + @Override + public HttpResult> getGroupData(String dataSet) { + log.error("{}异常,降级处理,异常为:{}","查询分组",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java index 6e3dce6..397deda 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java @@ -30,7 +30,9 @@ public enum AlgorithmResponseEnum { REPEAT_SHARE ("A00511","设备已分享完成,请勿再次分享"), DEVICE_LOSE("A00512","设备id缺失"), CHIRLDREN_EXIST("A00513","工程下存在项目,不能删除"), - CHIRLDREN2_EXIST("A00514","项目下存在设备,不能删除"); + CHIRLDREN2_EXIST("A00514","项目下存在设备,不能删除"), + + DATA_ARRAY_MISSING("A00515","详细数据为空") ; diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelRelationController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelRelationController.java index cde6f08..d51f93f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelRelationController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelRelationController.java @@ -81,10 +81,10 @@ public class DevModelRelationController extends BaseController { @PostMapping("/getModelByDevId") @ApiOperation("根据装置Id查询模板") @ApiImplicitParam(name = "devId", value = "装置id", required = true) - public HttpResult getModelByDevId(@RequestParam("devId") String devId){ + public HttpResult> getModelByDevId(@RequestParam("devId") String devId){ String methodDescribe = getMethodDescribe("getModelByDevId"); - CsDevModelRelationPO po = csDevModelRelationService.findModelByDevId(devId); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe); + List list = csDevModelRelationService.findModelByDevId(devId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml index 089dcc2..a800cbe 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml @@ -57,7 +57,7 @@ from cs_data_array t0 where - pid = #{id} + pid = #{id} and (stat_method = 'avg' or stat_method is null) group by id, name, diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDevModelRelationService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDevModelRelationService.java index 0b681a7..ea2f7d5 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDevModelRelationService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDevModelRelationService.java @@ -44,6 +44,6 @@ public interface CsDevModelRelationService extends IService findModelByDevId(String devId); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java index e45f60f..1b7b00a 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java @@ -1,6 +1,7 @@ package com.njcn.csdevice.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.mapper.CsDataArrayMapper; import com.njcn.csdevice.pojo.dto.DataArrayDTO; import com.njcn.csdevice.pojo.po.CsDataArray; @@ -40,6 +41,10 @@ public class CsDataArrayServiceImpl extends ServiceImpl getTargetById(String id) { List list = new ArrayList<>(); List l = this.baseMapper.getDictData(id).stream().map(CsDataArray::getDataId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(l)){ + log.error(AlgorithmResponseEnum.DATA_ARRAY_MISSING.getMessage()); + return list; + } List result = epdFeignClient.selectByIds(l).getData(); Map> map = result.stream().collect(Collectors.groupingBy(EleEpdPqd::getShowName,LinkedHashMap::new,Collectors.toList())); for (Map.Entry> entry : map.entrySet()) { diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java index 562a334..1756185 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.csdevice.service.impl; +import com.alibaba.excel.util.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.mapper.CsDataSetMapper; import com.njcn.csdevice.pojo.po.CsDataSet; @@ -7,6 +8,7 @@ import com.njcn.csdevice.pojo.vo.LineTargetVO; import com.njcn.csdevice.service.ICsDataSetService; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -22,7 +24,12 @@ public class CsDataSetServiceImpl extends ServiceImpl findDataSetByModelId(String modelId) { - return this.lambdaQuery().eq(CsDataSet::getPid,modelId).list(); + List list = new ArrayList<>(); + list = this.lambdaQuery().eq(CsDataSet::getPid,modelId).eq(CsDataSet::getType,0).list(); + if (CollectionUtils.isEmpty(list)){ + list = this.lambdaQuery().eq(CsDataSet::getPid,modelId).orderByAsc(CsDataSet::getClDev).list(); + } + return list; } @Override diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDevModelRelationServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDevModelRelationServiceImpl.java index 450ffe2..3861684 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDevModelRelationServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDevModelRelationServiceImpl.java @@ -89,7 +89,7 @@ public class CsDevModelRelationServiceImpl extends ServiceImpl findModelByDevId(String devId) { + return this.lambdaQuery().eq(CsDevModelRelationPO::getDevId,devId).eq(CsDevModelRelationPO::getStatus,1).list(); } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index f474858..be4b80f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -19,6 +19,7 @@ import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm; import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm; import com.njcn.csdevice.pojo.po.CsDataSet; +import com.njcn.csdevice.pojo.po.CsDevModelRelationPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; @@ -28,7 +29,6 @@ import com.njcn.csdevice.pojo.vo.ProjectEquipmentVO; import com.njcn.csdevice.service.*; import com.njcn.db.constant.DbConstant; import com.njcn.web.factory.PageFactory; -import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -193,8 +193,11 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl dataSetList = new ArrayList<>(); CsEquipmentDeliveryPO csEquipmentDeliveryPo = this.lambdaQuery().eq(CsEquipmentDeliveryPO::getId,deviceId).one(); - String modelId = csDevModelRelationService.findModelByDevId(deviceId).getModelId(); - List dataSet = csDataSetService.findDataSetByModelId(modelId); + List list = csDevModelRelationService.findModelByDevId(deviceId); + List dataSet = new ArrayList<>(); + list.forEach(item->{ + dataSet.addAll(csDataSetService.findDataSetByModelId(item.getModelId())); + }); BeanUtils.copyProperties(csEquipmentDeliveryPo,deviceManagerVo); dataSet.forEach(item->{ DeviceManagerVO.DataSetVO dataSetVO = new DeviceManagerVO.DataSetVO(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java index e82abd5..a3e676e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java @@ -182,7 +182,7 @@ public class CsGroupServiceImpl extends ServiceImpl impl private List getChildrenes(String tabId, List all) { return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); } - //fixme 目前组的数据插入写在这里,先查询数据集是否分组,分组了直接查询,没分组先分组再展示数据。后期根据业务需求在做调整 + //如果未做分组,则先分组 public List insertGroupData(String dataSet) { AtomicReference sort = new AtomicReference<>(0); List ls = new ArrayList<>();