Browse Source

附件资料库

lipenghui 3 tháng trước cách đây
mục cha
commit
b722874d49

+ 9 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java

@@ -75,4 +75,13 @@ public class NumberUtils {
         return NumberUtil.mul(values);
     }
 
+    public static int extractNumber(String code) {
+        int numberEnd = code.length() - 1;
+        while (numberEnd >= 0 && Character.isDigit(code.charAt(numberEnd))) {
+            numberEnd--;
+        }
+        String numberStr = code.substring(numberEnd + 1);
+        return numberStr.isEmpty() ? 0 : Integer.parseInt(numberStr);
+    }
+
 }

+ 13 - 6
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotDeviceController.java

@@ -5,6 +5,8 @@ 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.pojo.SortablePageParam;
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotSaveReqVO;
@@ -166,8 +168,8 @@ public class IotDeviceController {
     @GetMapping("/page")
     @Operation(summary = "获得设备台账分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
-    public CommonResult<PageResult<IotDeviceRespVO>> getIotDevicePage(@Valid IotDevicePageReqVO pageReqVO) {
-        PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO);
+    public CommonResult<PageResult<IotDeviceRespVO>> getIotDevicePage(@Valid IotDevicePageReqVO pageReqVO, @Valid SortablePageParam pageParam) {
+        PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO, pageParam);
         if (CollUtil.isEmpty(pageResult.getList())) {
             return success(new PageResult<>(pageResult.getTotal()));
         }
@@ -202,8 +204,8 @@ public class IotDeviceController {
     @GetMapping("/deviceDynamicsPage")
     @Operation(summary = "获得设备动态 分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
-    public CommonResult<PageResult<IotDeviceRespVO>> responsiblePagedeviceDynamicsPage(@Valid IotDevicePageReqVO pageReqVO) {
-        PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO);
+    public CommonResult<PageResult<IotDeviceRespVO>> responsiblePagedeviceDynamicsPage(@Valid IotDevicePageReqVO pageReqVO, @Valid SortablePageParam pageParam) {
+        PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO, pageParam);
         if (CollUtil.isEmpty(pageResult.getList())) {
             return success(new PageResult<>(pageResult.getTotal()));
         }
@@ -369,13 +371,18 @@ public class IotDeviceController {
     @Operation(summary = "导出设备台账 Excel")
     @PreAuthorize("@ss.hasPermission('rq:iot-device:export')")
     @ApiAccessLog(operateType = EXPORT)
-    public void exportIotDeviceExcel(@Valid IotDevicePageReqVO pageReqVO,
+    public void exportIotDeviceExcel(@Valid IotDevicePageReqVO pageReqVO,@Valid SortablePageParam pageParam,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<IotDeviceDO> list = iotDeviceService.getIotDevicePage(pageReqVO).getList();
+        List<IotDeviceDO> list = iotDeviceService.getIotDevicePage(pageReqVO, pageParam).getList();
         // 导出 Excel
         ExcelUtils.write(response, "设备台账.xls", "数据", IotDeviceRespVO.class,
                         BeanUtils.toBean(list, IotDeviceRespVO.class));
     }
 
+    @PermitAll
+    @GetMapping("/init")
+    public void init() {
+        iotDeviceService.updateSort();
+    }
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/IotDeviceDO.java

@@ -139,4 +139,6 @@ public class IotDeviceDO extends BaseDO {
     private String templateJson;
 
     private Long assetClass;
+
+    private Integer sortColumn;
 }

+ 4 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.pms.dal.mysql;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.SortablePageParam;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
@@ -20,8 +21,9 @@ import java.util.List;
  */
 @Mapper
 public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
-    default PageResult<IotDeviceDO> selectPage(IotDevicePageReqVO reqVO, Collection<Long> deptIds) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<IotDeviceDO>()
+    default PageResult<IotDeviceDO> selectPage(IotDevicePageReqVO reqVO, Collection<Long> deptIds, SortablePageParam sortablePageParam) {
+//        return selectPage(reqVO, new LambdaQueryWrapperX<IotDeviceDO>()
+        return selectPage(sortablePageParam, new LambdaQueryWrapperX<IotDeviceDO>()
                 .likeIfPresent(IotDeviceDO::getDeviceCode, reqVO.getDeviceCode())
                 .likeIfPresent(IotDeviceDO::getDeviceName, reqVO.getDeviceName())
                 .eqIfPresent(IotDeviceDO::getBrand, reqVO.getBrand())

+ 3 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceService.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.pms.service;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.SortablePageParam;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.DeviceVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
@@ -59,8 +60,8 @@ public interface IotDeviceService {
      * @param pageReqVO 分页查询
      * @return 设备台账分页
      */
-    PageResult<IotDeviceDO> getIotDevicePage(IotDevicePageReqVO pageReqVO);
-
+    PageResult<IotDeviceDO> getIotDevicePage(IotDevicePageReqVO pageReqVO, SortablePageParam sortablePageParam);
+    void updateSort();
     /**
      * 获得设备精简列表
      *

+ 16 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceServiceImpl.java

@@ -4,7 +4,10 @@ import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.SortablePageParam;
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.common.util.object.PageUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.DeviceVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
@@ -107,6 +110,7 @@ public class IotDeviceServiceImpl implements IotDeviceService {
         }
         // 插入
         IotDeviceDO iotDevice = BeanUtils.toBean(createReqVO, IotDeviceDO.class);
+        iotDevice.setSortColumn(NumberUtils.extractNumber(iotDevice.getDeviceCode()));
         iotDevice.setDeleted(false);
         iotDeviceMapper.insert(iotDevice);
         //插入资料
@@ -185,14 +189,24 @@ public class IotDeviceServiceImpl implements IotDeviceService {
     }
 
     @Override
-    public PageResult<IotDeviceDO> getIotDevicePage(IotDevicePageReqVO pageReqVO) {
+    public PageResult<IotDeviceDO> getIotDevicePage(IotDevicePageReqVO pageReqVO, SortablePageParam sortablePageParam) {
+        PageUtils.buildDefaultSortingField(sortablePageParam, IotDeviceDO::getSortColumn);
         Set<Long> ids = new HashSet<>();
         if (Objects.nonNull(pageReqVO.getDeptId())) {
             ids = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
             ids.add(pageReqVO.getDeptId());
         }
 
-        return iotDeviceMapper.selectPage(pageReqVO,ids);
+        return iotDeviceMapper.selectPage(pageReqVO,ids, sortablePageParam);
+    }
+
+    @Override
+    public void updateSort() {
+        List<IotDeviceDO> deviceDOS = iotDeviceMapper.selectList();
+        deviceDOS.forEach(deviceDO -> {
+            deviceDO.setSortColumn(NumberUtils.extractNumber(deviceDO.getDeviceCode()));
+        });
+        iotDeviceMapper.updateBatch(deviceDOS);
     }
 
     @Override

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotInfoServiceImpl.java

@@ -53,6 +53,7 @@ public class IotInfoServiceImpl implements IotInfoService {
         if (CollUtil.isEmpty(createReqVO.getFileList())) {
             throw exception(IOT_INFO_NOT_EXISTS);
         }
+        Long classId = createReqVO.getClassId();
         List<IotInfoDO> collect = createReqVO.getFileList().stream().map(e -> {
             IotInfoDO iotInfo = BeanUtils.toBean(createReqVO, IotInfoDO.class);
             iotInfo.setFilename(StringUtils.substringAfterLast(e.get("url"), "/"));
@@ -65,7 +66,6 @@ public class IotInfoServiceImpl implements IotInfoService {
         }).collect(Collectors.toList());
 
         iotInfoMapper.insert(collect);
-        // 返回
     }
     @Override
     public void updateIotInfo(IotInfoSaveReqVO updateReqVO) {

+ 1 - 0
yudao-server/src/main/resources/application.yaml

@@ -274,6 +274,7 @@ yudao:
   tenant: # 多租户相关配置项
     enable: true
     ignore-urls:
+      - /admin-api/rq/iot-device/init
       - /admin-api/rq/iot-device/td/test
       - /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号
       - /admin-api/system/tenant/get-by-website # 基于域名获取租户,不许带租户编号