From 8345f74a285227305aa8497f24e30da3c287e679 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Thu, 20 Jun 2024 11:49:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8E=82=E4=BF=A1=E6=81=AF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=20=E5=8F=AF=E5=8F=98=E6=9B=B4=E5=B7=A5=E5=8E=82?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cameradevice/CameraDeviceController.java | 16 ++++++++----- .../factoryinfo/FactoryInfoController.java | 10 ++++++++ .../vo/FactoryUpdateStatusReqVO.java | 23 +++++++++++++++++++ .../cameradevice/CameraDeviceConvert.java | 6 +++++ .../mysql/factoryinfo/FactoryInfoMapper.java | 2 ++ .../rpc/config/RpcConfiguration.java | 3 ++- .../factoryinfo/FactoryInfoService.java | 7 ++++++ .../factoryinfo/FactoryInfoServiceImpl.java | 15 ++++++++++++ 8 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryUpdateStatusReqVO.java diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/device/cameradevice/CameraDeviceController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/device/cameradevice/CameraDeviceController.java index 83618e2f..5eb8affc 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/device/cameradevice/CameraDeviceController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/device/cameradevice/CameraDeviceController.java @@ -24,9 +24,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -110,13 +108,19 @@ public class CameraDeviceController { @GetMapping("/camera-tree") @Operation(summary = "获得设备-监控摄像头Tree") @PreAuthorize("@ss.hasPermission('smartfactory:camera-device:query')") - public CommonResult getCameraDeviceTree() { + public CommonResult getCameraDeviceTree(@RequestParam(value = "factoryId", required = false) Long factoryId) { FactoryTreeRespVO data = new FactoryTreeRespVO(); List info = new ArrayList<>(); - // 获取工厂信息 - List factoryInfo = factoryInfoService.getFactoryList(); + List factoryInfo; + if (factoryId == null) { + // 获取工厂信息 + factoryInfo = factoryInfoService.getFactoryList(); + } else { + // 获取工厂信息 + factoryInfo = factoryInfoService.getFactoryList(Collections.singletonList(factoryId)); + } List factoryIds = convertList(factoryInfo, FactoryInfoDO::getId); // 获取监控设备信息 diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java index d6920240..1d99f5b6 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.CameraUpdateStatusReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService; @@ -54,6 +55,15 @@ public class FactoryInfoController { return success(true); } + @PutMapping("/update-status") + @Operation(summary = "更新设备-工厂状态") + @PreAuthorize("@ss.hasPermission('smartfactory:camera-device:update')") + public CommonResult updateCameraDevice(@Valid @RequestBody FactoryUpdateStatusReqVO updateReqVO) { + + factoryInfoService.updateFactoryStatus(updateReqVO); + return success(true); + } + @DeleteMapping("/delete") @Operation(summary = "删除工厂信息") @Parameter(name = "id", description = "编号", required = true) diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryUpdateStatusReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryUpdateStatusReqVO.java new file mode 100644 index 00000000..26773798 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryUpdateStatusReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 监控设备更新状态 Request VO") +@Data +public class FactoryUpdateStatusReqVO { + + @Schema(description = "工厂编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "工厂编号不能为空") + private Long id; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/convert/cameradevice/CameraDeviceConvert.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/convert/cameradevice/CameraDeviceConvert.java index 94dc1590..da8e0d40 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/convert/cameradevice/CameraDeviceConvert.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/convert/cameradevice/CameraDeviceConvert.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.smartfactory.convert.cameradevice; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.CameraSimpleRespVO; @@ -9,6 +10,7 @@ import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryIn import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -24,6 +26,10 @@ public interface CameraDeviceConvert { default FactorySimpleRespVO convert(FactoryInfoDO infoDO, List cameraDeviceDOS) { + if (CollectionUtil.isEmpty(cameraDeviceDOS)) { + return null; + } + FactorySimpleRespVO respVO = BeanUtils.toBean(infoDO, FactorySimpleRespVO.class); List cameraList = BeanUtils.toBean(cameraDeviceDOS, CameraSimpleRespVO.class); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java index 2e12bee3..fe90ae32 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -34,6 +35,7 @@ public interface FactoryInfoMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eq(FactoryInfoDO::getType, 3) + .eq(FactoryInfoDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) .inIfPresent(FactoryInfoDO::getId, factoryId)); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/framework/rpc/config/RpcConfiguration.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/framework/rpc/config/RpcConfiguration.java index bb299a8c..d625527f 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/framework/rpc/config/RpcConfiguration.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/framework/rpc/config/RpcConfiguration.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.PostApi; import cn.iocoder.yudao.module.system.api.dict.DictDataApi; import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.permission.RoleApi; import cn.iocoder.yudao.module.system.api.sms.SmsSendApi; import cn.iocoder.yudao.module.system.api.subscribe.SubscribeMessageSendApi; @@ -15,7 +16,7 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableFeignClients(clients = {FileApi.class,RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class, NotifyMessageSendApi.class, - SubscribeMessageSendApi.class, ConfigApi.class + SubscribeMessageSendApi.class, ConfigApi.class, PermissionApi.class }) public class RpcConfiguration { } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java index 2b69df44..cf3b2933 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.smartfactory.service.factoryinfo; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryUpdateStatusReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.FactoryRollDataRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.ProvincesDataRespVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; @@ -119,4 +120,10 @@ public interface FactoryInfoService { * @return 工厂信息 */ FactoryInfoDO getFactoryByName(String factoryName); + + /** + * 修改 工厂状态 + * @param updateReqVO 更新信息 + */ + void updateFactoryStatus(FactoryUpdateStatusReqVO updateReqVO); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java index 9be157a0..86ed8ea6 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java @@ -8,8 +8,10 @@ import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryUpdateStatusReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.FactoryRollDataRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.ProvincesDataRespVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice.CameraDeviceDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo.FactoryInfoMapper; import cn.iocoder.yudao.module.system.api.dept.DeptApi; @@ -153,6 +155,9 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { LambdaQueryWrapperX lambdaQueryWrapperX = new LambdaQueryWrapperX(); //去除中鼐总部 lambdaQueryWrapperX.ne(FactoryInfoDO::getId, 1L); + //去除关闭状态工厂 + lambdaQueryWrapperX.eq(FactoryInfoDO::getStatus, CommonStatusEnum.ENABLE.getStatus()); + Integer type = area.getType() - 1; if (!type.equals(FactoryInfoDO.ADDRESS_TYPE_NATIONWIDE)) { lambdaQueryWrapperX.eq(FactoryInfoDO.ADDRESS_TYPE_PROVINCE.equals(type), FactoryInfoDO::getProvinceId, code) @@ -228,4 +233,14 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { return factoryInfoMapper.selectOne(FactoryInfoDO::getShortName, factoryName); } + + @Override + public void updateFactoryStatus(FactoryUpdateStatusReqVO updateReqVO) { + // 校验存在 + validateFactoryInfoExists(updateReqVO.getId()); + + // 更新 + FactoryInfoDO updateObj = BeanUtils.toBean(updateReqVO, FactoryInfoDO.class); + factoryInfoMapper.updateById(updateObj); + } } \ No newline at end of file