车车 4 сар өмнө
parent
commit
539925b400

+ 100 - 95
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/rfidtoken/RfidTokenController.java

@@ -1,95 +1,100 @@
-package cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken;
-
-import org.springframework.web.bind.annotation.*;
-import jakarta.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Operation;
-
-import jakarta.validation.constraints.*;
-import jakarta.validation.*;
-import jakarta.servlet.http.*;
-import java.util.*;
-import java.io.IOException;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
-
-import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.*;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
-import cn.iocoder.yudao.module.iscs.service.rfidtoken.RfidTokenService;
-
-@Tag(name = "管理后台 - rfid标识")
-@RestController
-@RequestMapping("/iscs/rfid-token")
-@Validated
-public class RfidTokenController {
-
-    @Resource
-    private RfidTokenService rfidTokenService;
-
-    @PostMapping("/insertRfidToken")
-    @Operation(summary = "创建rfid标识")
-    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:create')")
-    public CommonResult<Long> insertRfidToken(@Valid @RequestBody RfidTokenSaveReqVO createReqVO) {
-        return success(rfidTokenService.createRfidToken(createReqVO));
-    }
-
-    @PutMapping("/updateRfidToken")
-    @Operation(summary = "更新rfid标识")
-    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:update')")
-    public CommonResult<Boolean> updateRfidToken(@Valid @RequestBody RfidTokenSaveReqVO updateReqVO) {
-        rfidTokenService.updateRfidToken(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/deleteRfidTokenList")
-    @Parameter(name = "ids", description = "编号", required = true)
-    @Operation(summary = "批量删除rfid标识")
-                @PreAuthorize("@ss.hasPermission('iscs:rfid-token:delete')")
-    public CommonResult<Boolean> deleteRfidTokenList(@RequestParam("ids") List<Long> ids) {
-        rfidTokenService.deleteRfidTokenListByIds(ids);
-        return success(true);
-    }
-
-    @GetMapping("/selectRfidTokenById")
-    @Operation(summary = "获得rfid标识")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:query')")
-    public CommonResult<RfidTokenRespVO> selectRfidTokenById(@RequestParam("id") Long id) {
-        RfidTokenDO rfidToken = rfidTokenService.getRfidToken(id);
-        return success(BeanUtils.toBean(rfidToken, RfidTokenRespVO.class));
-    }
-
-    @GetMapping("/getRfidTokenPage")
-    @Operation(summary = "获得rfid标识分页")
-    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:query')")
-    public CommonResult<PageResult<RfidTokenRespVO>> getRfidTokenPage(@Valid RfidTokenPageReqVO pageReqVO) {
-        PageResult<RfidTokenDO> pageResult = rfidTokenService.getRfidTokenPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, RfidTokenRespVO.class));
-    }
-
-    @GetMapping("/exportRfidTokenExcel")
-    @Operation(summary = "导出rfid标识 Excel")
-    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportRfidTokenExcel(@Valid RfidTokenPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<RfidTokenDO> list = rfidTokenService.getRfidTokenPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "rfid标识.xls", "数据", RfidTokenRespVO.class,
-                        BeanUtils.toBean(list, RfidTokenRespVO.class));
-    }
-
-}
+package cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+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.module.iscs.controller.admin.rfidtoken.vo.RfidTokenPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenRespVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
+import cn.iocoder.yudao.module.iscs.service.rfidtoken.RfidTokenService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - rfid标识")
+@RestController
+@RequestMapping("/iscs/rfid-token")
+@Validated
+public class RfidTokenController {
+
+    @Resource
+    private RfidTokenService rfidTokenService;
+
+    @PostMapping("/insertRfidToken")
+    @Operation(summary = "创建rfid标识")
+    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:create')")
+    public CommonResult<Long> insertRfidToken(@Valid @RequestBody RfidTokenSaveReqVO createReqVO) {
+        return success(rfidTokenService.createRfidToken(createReqVO));
+    }
+
+    @PutMapping("/updateRfidToken")
+    @Operation(summary = "更新rfid标识")
+    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:update')")
+    public CommonResult<Boolean> updateRfidToken(@Valid @RequestBody RfidTokenSaveReqVO updateReqVO) {
+        rfidTokenService.updateRfidToken(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/deleteRfidTokenList")
+    @Parameter(name = "ids", description = "编号", required = true)
+    @Operation(summary = "批量删除rfid标识")
+                @PreAuthorize("@ss.hasPermission('iscs:rfid-token:delete')")
+    public CommonResult<Boolean> deleteRfidTokenList(@RequestParam("ids") List<Long> ids) {
+        rfidTokenService.deleteRfidTokenListByIds(ids);
+        return success(true);
+    }
+
+    @GetMapping("/selectRfidTokenById")
+    @Operation(summary = "获得rfid标识")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:query')")
+    public CommonResult<RfidTokenRespVO> selectRfidTokenById(@RequestParam("id") Long id) {
+        RfidTokenDO rfidToken = rfidTokenService.getRfidToken(id);
+        return success(BeanUtils.toBean(rfidToken, RfidTokenRespVO.class));
+    }
+
+    @GetMapping("/getRfidTokenPage")
+    @Operation(summary = "获得rfid标识分页")
+    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:query')")
+    public CommonResult<PageResult<RfidTokenRespVO>> getRfidTokenPage(@Valid RfidTokenPageReqVO pageReqVO) {
+        PageResult<RfidTokenDO> pageResult = rfidTokenService.getRfidTokenPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, RfidTokenRespVO.class));
+    }
+
+    @GetMapping("/exportRfidTokenExcel")
+    @Operation(summary = "导出rfid标识 Excel")
+    @PreAuthorize("@ss.hasPermission('iscs:rfid-token:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportRfidTokenExcel(@Valid RfidTokenPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<RfidTokenDO> list = rfidTokenService.getRfidTokenPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "rfid标识.xls", "数据", RfidTokenRespVO.class,
+                        BeanUtils.toBean(list, RfidTokenRespVO.class));
+    }
+
+    @Operation(summary = "机柜录入rfid标识")
+    @PostMapping("/insertRfidTokenByCabinet")
+    public CommonResult<Boolean> insertRfidTokenByCabinet(@RequestBody @Parameter(name = "rfidTokenDO", description = "新增数据类,放到body") RfidTokenDO rfidTokenDO)
+    {
+        return CommonResult.success(rfidTokenService.insertRfidTokenByCabinet(rfidTokenDO));
+    }
+
+}

+ 67 - 63
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/rfidtoken/RfidTokenService.java

@@ -1,63 +1,67 @@
-package cn.iocoder.yudao.module.iscs.service.rfidtoken;
-
-import java.util.*;
-import jakarta.validation.*;
-import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.*;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * rfid标识 Service 接口
- *
- * @author 芋道源码
- */
-public interface RfidTokenService extends IService<RfidTokenDO> {
-
-    /**
-     * 创建rfid标识
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createRfidToken(@Valid RfidTokenSaveReqVO createReqVO);
-
-    /**
-     * 更新rfid标识
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateRfidToken(@Valid RfidTokenSaveReqVO updateReqVO);
-
-    /**
-     * 删除rfid标识
-     *
-     * @param id 编号
-     */
-    void deleteRfidToken(Long id);
-
-    /**
-    * 批量删除rfid标识
-    *
-    * @param ids 编号
-    */
-    void deleteRfidTokenListByIds(List<Long> ids);
-
-    /**
-     * 获得rfid标识
-     *
-     * @param id 编号
-     * @return rfid标识
-     */
-    RfidTokenDO getRfidToken(Long id);
-
-    /**
-     * 获得rfid标识分页
-     *
-     * @param pageReqVO 分页查询
-     * @return rfid标识分页
-     */
-    PageResult<RfidTokenDO> getRfidTokenPage(RfidTokenPageReqVO pageReqVO);
-
-}
+package cn.iocoder.yudao.module.iscs.service.rfidtoken;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import jakarta.validation.Valid;
+
+import java.util.List;
+
+/**
+ * rfid标识 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface RfidTokenService extends IService<RfidTokenDO> {
+
+    /**
+     * 创建rfid标识
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createRfidToken(@Valid RfidTokenSaveReqVO createReqVO);
+
+    /**
+     * 更新rfid标识
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateRfidToken(@Valid RfidTokenSaveReqVO updateReqVO);
+
+    /**
+     * 删除rfid标识
+     *
+     * @param id 编号
+     */
+    void deleteRfidToken(Long id);
+
+    /**
+    * 批量删除rfid标识
+    *
+    * @param ids 编号
+    */
+    void deleteRfidTokenListByIds(List<Long> ids);
+
+    /**
+     * 获得rfid标识
+     *
+     * @param id 编号
+     * @return rfid标识
+     */
+    RfidTokenDO getRfidToken(Long id);
+
+    /**
+     * 获得rfid标识分页
+     *
+     * @param pageReqVO 分页查询
+     * @return rfid标识分页
+     */
+    PageResult<RfidTokenDO> getRfidTokenPage(RfidTokenPageReqVO pageReqVO);
+
+
+    Boolean insertRfidTokenByCabinet(RfidTokenDO rfidTokenDO);
+
+}

+ 121 - 94
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/rfidtoken/RfidTokenServiceImpl.java

@@ -1,94 +1,121 @@
-package cn.iocoder.yudao.module.iscs.service.rfidtoken;
-
-import cn.hutool.core.collection.CollUtil;
-import org.springframework.stereotype.Service;
-import jakarta.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.*;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-import cn.iocoder.yudao.module.iscs.dal.mysql.rfidtoken.RfidTokenMapper;
-
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
-import static cn.iocoder.yudao.module.iscs.enums.ErrorCodeConstants.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * rfid标识 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Validated
-public class RfidTokenServiceImpl extends ServiceImpl<RfidTokenMapper, RfidTokenDO> implements RfidTokenService {
-
-    @Resource
-    private RfidTokenMapper rfidTokenMapper;
-
-    @Override
-    public Long createRfidToken(RfidTokenSaveReqVO createReqVO) {
-        // 插入
-        RfidTokenDO rfidToken = BeanUtils.toBean(createReqVO, RfidTokenDO.class);
-        rfidTokenMapper.insert(rfidToken);
-
-        // 返回
-        return rfidToken.getId();
-    }
-
-    @Override
-    public void updateRfidToken(RfidTokenSaveReqVO updateReqVO) {
-        // 校验存在
-        validateRfidTokenExists(updateReqVO.getId());
-        // 更新
-        RfidTokenDO updateObj = BeanUtils.toBean(updateReqVO, RfidTokenDO.class);
-        rfidTokenMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteRfidToken(Long id) {
-        // 校验存在
-        validateRfidTokenExists(id);
-        // 删除
-        rfidTokenMapper.deleteById(id);
-    }
-
-    @Override
-        public void deleteRfidTokenListByIds(List<Long> ids) {
-        // 校验存在
-        validateRfidTokenExists(ids);
-        // 删除
-        rfidTokenMapper.deleteByIds(ids);
-        }
-
-    private void validateRfidTokenExists(List<Long> ids) {
-        List<RfidTokenDO> list = rfidTokenMapper.selectByIds(ids);
-        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
-            throw exception(RFID_TOKEN_NOT_EXISTS);
-        }
-    }
-
-    private void validateRfidTokenExists(Long id) {
-        if (rfidTokenMapper.selectById(id) == null) {
-            throw exception(RFID_TOKEN_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public RfidTokenDO getRfidToken(Long id) {
-        return rfidTokenMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<RfidTokenDO> getRfidTokenPage(RfidTokenPageReqVO pageReqVO) {
-        return rfidTokenMapper.selectPage(pageReqVO);
-    }
-
-}
+package cn.iocoder.yudao.module.iscs.service.rfidtoken;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.rfidtoken.vo.RfidTokenSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.isolationpoint.IsolationPointDO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.rfidtoken.RfidTokenDO;
+import cn.iocoder.yudao.module.iscs.dal.mysql.rfidtoken.RfidTokenMapper;
+import cn.iocoder.yudao.module.iscs.service.isolationpoint.IsolationPointService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jakarta.annotation.Resource;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.iscs.enums.ErrorCodeConstants.RFID_TOKEN_NOT_EXISTS;
+
+/**
+ * rfid标识 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class RfidTokenServiceImpl extends ServiceImpl<RfidTokenMapper, RfidTokenDO> implements RfidTokenService {
+
+    @Resource
+    private RfidTokenMapper rfidTokenMapper;
+    @Resource
+    private IsolationPointService isolationPointService;
+
+    @Override
+    public Long createRfidToken(RfidTokenSaveReqVO createReqVO) {
+        // 检查rfid重复
+        List<RfidTokenDO> list1 = list(Wrappers.<RfidTokenDO>lambdaQuery()
+                .eq(RfidTokenDO::getRfid, createReqVO.getRfid()));
+        Assert.isTrue(list1.isEmpty(), "该RFID已存在!");
+        // 插入
+        RfidTokenDO rfidToken = BeanUtils.toBean(createReqVO, RfidTokenDO.class);
+        rfidTokenMapper.insert(rfidToken);
+
+        // 返回
+        return rfidToken.getId();
+    }
+
+    @Override
+    public void updateRfidToken(RfidTokenSaveReqVO updateReqVO) {
+        // 检查rfid重复
+        List<RfidTokenDO> list1 = list(Wrappers.<RfidTokenDO>lambdaQuery()
+                .eq(RfidTokenDO::getRfid, updateReqVO.getRfid())
+                .ne(RfidTokenDO::getId, updateReqVO.getId()));
+        Assert.isTrue(list1.isEmpty(), "该RFID已存在!");
+        // 校验存在
+        validateRfidTokenExists(updateReqVO.getId());
+        // 更新
+        RfidTokenDO updateObj = BeanUtils.toBean(updateReqVO, RfidTokenDO.class);
+        rfidTokenMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteRfidToken(Long id) {
+        // 校验存在
+        validateRfidTokenExists(id);
+        // 删除
+        rfidTokenMapper.deleteById(id);
+    }
+
+    @Override
+        public void deleteRfidTokenListByIds(List<Long> ids) {
+        // 查询有没有正在使用的点位,如果有则不能删除
+        List<IsolationPointDO> list = isolationPointService.list(Wrappers.<IsolationPointDO>lambdaQuery()
+                .in(IsolationPointDO::getId, ids));
+        Assert.isTrue(list.isEmpty(), "存在正在被隔离点使用的RFID,不可删除!");
+        // 校验存在
+        validateRfidTokenExists(ids);
+        // 删除
+        rfidTokenMapper.deleteByIds(ids);
+        }
+
+    private void validateRfidTokenExists(List<Long> ids) {
+        List<RfidTokenDO> list = rfidTokenMapper.selectByIds(ids);
+        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+            throw exception(RFID_TOKEN_NOT_EXISTS);
+        }
+    }
+
+    private void validateRfidTokenExists(Long id) {
+        if (rfidTokenMapper.selectById(id) == null) {
+            throw exception(RFID_TOKEN_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public RfidTokenDO getRfidToken(Long id) {
+        return rfidTokenMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<RfidTokenDO> getRfidTokenPage(RfidTokenPageReqVO pageReqVO) {
+        return rfidTokenMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public Boolean insertRfidTokenByCabinet(RfidTokenDO rfidTokenDO) {
+        Assert.isFalse(StringUtils.isBlank(rfidTokenDO.getRfid()), "请给我RFID!");
+        // 检查rfid重复
+        List<RfidTokenDO> list1 = list(Wrappers.<RfidTokenDO>lambdaQuery()
+                .eq(RfidTokenDO::getRfid, rfidTokenDO.getRfid()));
+        Assert.isTrue(list1.isEmpty(), "该RFID已存在!");
+        rfidTokenDO.setRfidType("0");
+        return save(rfidTokenDO);
+    }
+
+}