工厂信息修改 可变更工厂状态

This commit is contained in:
furongxin 2024-06-20 11:49:04 +08:00
parent e906abcc96
commit 8345f74a28
8 changed files with 75 additions and 7 deletions

View File

@ -24,9 +24,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -110,13 +108,19 @@ public class CameraDeviceController {
@GetMapping("/camera-tree") @GetMapping("/camera-tree")
@Operation(summary = "获得设备-监控摄像头Tree") @Operation(summary = "获得设备-监控摄像头Tree")
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:query')") @PreAuthorize("@ss.hasPermission('smartfactory:camera-device:query')")
public CommonResult<FactoryTreeRespVO> getCameraDeviceTree() { public CommonResult<FactoryTreeRespVO> getCameraDeviceTree(@RequestParam(value = "factoryId", required = false) Long factoryId) {
FactoryTreeRespVO data = new FactoryTreeRespVO(); FactoryTreeRespVO data = new FactoryTreeRespVO();
List<FactorySimpleRespVO> info = new ArrayList<>(); List<FactorySimpleRespVO> info = new ArrayList<>();
// 获取工厂信息 List<FactoryInfoDO> factoryInfo;
List<FactoryInfoDO> factoryInfo = factoryInfoService.getFactoryList(); if (factoryId == null) {
// 获取工厂信息
factoryInfo = factoryInfoService.getFactoryList();
} else {
// 获取工厂信息
factoryInfo = factoryInfoService.getFactoryList(Collections.singletonList(factoryId));
}
List<Long> factoryIds = convertList(factoryInfo, FactoryInfoDO::getId); List<Long> factoryIds = convertList(factoryInfo, FactoryInfoDO::getId);
// 获取监控设备信息 // 获取监控设备信息

View File

@ -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.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 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.controller.admin.factoryinfo.vo.*;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService; import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService;
@ -54,6 +55,15 @@ public class FactoryInfoController {
return success(true); return success(true);
} }
@PutMapping("/update-status")
@Operation(summary = "更新设备-工厂状态")
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:update')")
public CommonResult<Boolean> updateCameraDevice(@Valid @RequestBody FactoryUpdateStatusReqVO updateReqVO) {
factoryInfoService.updateFactoryStatus(updateReqVO);
return success(true);
}
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除工厂信息") @Operation(summary = "删除工厂信息")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)

View File

@ -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;
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.smartfactory.convert.cameradevice; 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.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.CameraSimpleRespVO; 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.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -24,6 +26,10 @@ public interface CameraDeviceConvert {
default FactorySimpleRespVO convert(FactoryInfoDO infoDO, List<CameraDeviceDO> cameraDeviceDOS) { default FactorySimpleRespVO convert(FactoryInfoDO infoDO, List<CameraDeviceDO> cameraDeviceDOS) {
if (CollectionUtil.isEmpty(cameraDeviceDOS)) {
return null;
}
FactorySimpleRespVO respVO = BeanUtils.toBean(infoDO, FactorySimpleRespVO.class); FactorySimpleRespVO respVO = BeanUtils.toBean(infoDO, FactorySimpleRespVO.class);
List<CameraSimpleRespVO> cameraList = BeanUtils.toBean(cameraDeviceDOS, CameraSimpleRespVO.class); List<CameraSimpleRespVO> cameraList = BeanUtils.toBean(cameraDeviceDOS, CameraSimpleRespVO.class);

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo; 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.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
@ -34,6 +35,7 @@ public interface FactoryInfoMapper extends BaseMapperX<FactoryInfoDO> {
return selectList(new LambdaQueryWrapperX<FactoryInfoDO>() return selectList(new LambdaQueryWrapperX<FactoryInfoDO>()
.eq(FactoryInfoDO::getType, 3) .eq(FactoryInfoDO::getType, 3)
.eq(FactoryInfoDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
.inIfPresent(FactoryInfoDO::getId, factoryId)); .inIfPresent(FactoryInfoDO::getId, factoryId));
} }

View File

@ -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.dept.PostApi;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi; 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.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.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.sms.SmsSendApi; import cn.iocoder.yudao.module.system.api.sms.SmsSendApi;
import cn.iocoder.yudao.module.system.api.subscribe.SubscribeMessageSendApi; import cn.iocoder.yudao.module.system.api.subscribe.SubscribeMessageSendApi;
@ -15,7 +16,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {FileApi.class,RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class, NotifyMessageSendApi.class, @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 { public class RpcConfiguration {
} }

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.smartfactory.service.factoryinfo;
import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.FactoryInfoPageReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoSaveReqVO; 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.FactoryRollDataRespVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.ProvincesDataRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.ProvincesDataRespVO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
@ -119,4 +120,10 @@ public interface FactoryInfoService {
* @return 工厂信息 * @return 工厂信息
*/ */
FactoryInfoDO getFactoryByName(String factoryName); FactoryInfoDO getFactoryByName(String factoryName);
/**
* 修改 工厂状态
* @param updateReqVO 更新信息
*/
void updateFactoryStatus(FactoryUpdateStatusReqVO updateReqVO);
} }

View File

@ -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.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.FactoryInfoPageReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoSaveReqVO; 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.FactoryRollDataRespVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory.vo.ProvincesDataRespVO; 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.dataobject.factoryinfo.FactoryInfoDO;
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo.FactoryInfoMapper; import cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo.FactoryInfoMapper;
import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.DeptApi;
@ -153,6 +155,9 @@ public class FactoryInfoServiceImpl implements FactoryInfoService {
LambdaQueryWrapperX<FactoryInfoDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<FactoryInfoDO>(); LambdaQueryWrapperX<FactoryInfoDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<FactoryInfoDO>();
//去除中鼐总部 //去除中鼐总部
lambdaQueryWrapperX.ne(FactoryInfoDO::getId, 1L); lambdaQueryWrapperX.ne(FactoryInfoDO::getId, 1L);
//去除关闭状态工厂
lambdaQueryWrapperX.eq(FactoryInfoDO::getStatus, CommonStatusEnum.ENABLE.getStatus());
Integer type = area.getType() - 1; Integer type = area.getType() - 1;
if (!type.equals(FactoryInfoDO.ADDRESS_TYPE_NATIONWIDE)) { if (!type.equals(FactoryInfoDO.ADDRESS_TYPE_NATIONWIDE)) {
lambdaQueryWrapperX.eq(FactoryInfoDO.ADDRESS_TYPE_PROVINCE.equals(type), FactoryInfoDO::getProvinceId, code) 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); 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);
}
} }