Explorar el Código

设备导入接口

lipenghui hace 3 días
padre
commit
7da2cf9231

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

@@ -10,9 +10,11 @@ import cn.iocoder.yudao.framework.common.pojo.SortablePageParam;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.pms.ThingsModelDTO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonRelationSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.DeptUtil;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSaveReqVO;
@@ -37,7 +39,10 @@ import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
 import cn.iocoder.yudao.module.pms.util.IotDeviceConvert;
 import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
 import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import com.google.common.collect.ImmutableList;
@@ -47,6 +52,7 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -98,6 +104,10 @@ public class IotDeviceController {
     private IotDeviceAllotLogService iotDeviceAllotLogService;
     @Autowired
     private IotFailureReportService iotFailureReportService;
+    @Resource
+    private DeptApi deptApi;
+    @Autowired
+    private DeptUtil deptUtil;
 
     @GetMapping(value = {"/company"})
     @Operation(summary = "获取设备属于哪个公司", description = "获取设备属于哪个公司")
@@ -607,10 +617,30 @@ public class IotDeviceController {
     public void exportIotDeviceExcel(@Valid IotDevicePageReqVO pageReqVO,@Valid SortablePageParam pageParam,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        Set<Long> ids;
+        if (Objects.isNull(pageReqVO.getDeptId())){
+            Long loginUserDeptId = SecurityFrameworkUtils.getLoginUserDeptId();
+            String companyCode = deptUtil.getCompanyCode(loginUserDeptId);
+            ids = deptUtil.getDeptIds(companyCode);
+        } else {
+            ids = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
+            ids.add(pageReqVO.getDeptId());
+        }
+        pageReqVO.setDeptIds(new ArrayList<>(ids));
         List<IotDeviceDO> list = iotDeviceService.getAllDevices(pageReqVO);
+        List<IotDeviceRespVO> bean = BeanUtils.toBean(list, IotDeviceRespVO.class);
+        List<DictDataDO> pmsDeviceStatus = dictDataService.getDictDataListByDictType("pms_device_status");
+        bean.forEach(e ->{
+            DeptRespDTO dept = deptApi.getDept(e.getDeptId());
+            if (dept != null) {
+                e.setDeptName(dept.getName());
+            }
+            pmsDeviceStatus.stream().filter(f -> f.getValue().equals(e.getDeviceStatus())).findFirst().ifPresent(f -> {
+                e.setDeviceStatus(f.getLabel());
+            });
+        });
         // 导出 Excel
-        ExcelUtils.write(response, "设备台账.xls", "数据", IotDeviceRespVO.class,
-                        BeanUtils.toBean(list, IotDeviceRespVO.class));
+        ExcelUtils.write(response, "设备台账.xls", "数据", IotDeviceRespVO.class, bean);
     }
 
     @GetMapping("/map")