Эх сурвалжийг харах

pms功能优化 修复bug

zhangcl 3 сар өмнө
parent
commit
3f9c27c650

+ 40 - 0
yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/common/IotDeviceStatusEnum.java

@@ -0,0 +1,40 @@
+package cn.iocoder.yudao.module.pms.enums.common;
+
+import cn.hutool.core.util.StrUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 设备状态枚举
+ *
+ * @Auther ruiqi
+ * @Date
+ */
+public enum IotDeviceStatusEnum {
+    fc("封存"), dby("待保养"), wxz("维修中"), bf("报废"), xz("闲置"), sg("施工"), dq("动迁"), dm("待命");
+    private String msg;
+
+    IotDeviceStatusEnum(String msg) {
+        this.msg = msg;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+
+    public static IotDeviceStatusEnum nameOf(String name) {
+        IotDeviceStatusEnum deviceStatusEnum = null;
+        if(!StrUtil.isEmpty(name)) {
+	        try {
+                deviceStatusEnum = IotDeviceStatusEnum.valueOf(name);
+	        } catch (Exception e) {
+	            LOGGER.warn("设备状态不存在", e);
+	        }
+        }
+        return deviceStatusEnum;
+    }
+
+    private static Logger LOGGER = LoggerFactory.getLogger(IotDeviceStatusEnum.class);
+
+}

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

@@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.ThingsModelDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.YfDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
+import cn.iocoder.yudao.module.pms.enums.common.IotDeviceStatusEnum;
 import cn.iocoder.yudao.module.pms.service.DeviceServiceImpl;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
@@ -181,7 +182,9 @@ public class IotDeviceController {
     public CommonResult<List<IotDeviceSimpleRespVO>> getSimpleDeviceList(@Valid IotDevicePageReqVO reqVO) {
         List<IotDeviceDO> list = iotDeviceService.getSimpleDeviceList(reqVO);
         Map<Long, DeptDO> deptMap = deptService.getDeptMap(convertList(list, IotDeviceDO::getDeptId));
-        return success(new ArrayList<>(IotDeviceConvert.INSTANCE.convertSimpleLists(list, deptMap)));
+        // 查询设备的所有责任人列表
+        return success(new ArrayList<>(buildDeviceSimpleList(list)));
+        // return success(new ArrayList<>(IotDeviceConvert.INSTANCE.convertSimpleLists(list, deptMap)));
     }
 
     @GetMapping("/responsiblePage")
@@ -320,6 +323,25 @@ public class IotDeviceController {
         });
     }
 
+    private List<IotDeviceSimpleRespVO> buildDeviceSimpleList(List<IotDeviceDO> devices) {
+        if (CollUtil.isEmpty(devices)) {
+            return Collections.emptyList();
+        }
+        // 设备部门信息
+        Map<Long, DeptDO> deptMap = deptService.getDeptMap(
+                convertList(devices, IotDeviceDO::getDeptId));
+        // 查询设备关联的 负责人
+        Map<Long, String> devicePersonNames = iotDevicePersonService.getIotDevicePerson(convertList(devices, IotDeviceDO::getId));
+        // 2. 拼接数据
+        return BeanUtils.toBean(devices, IotDeviceSimpleRespVO.class, (deviceVO) -> {
+            deviceVO.setDeviceStatusName(IotDeviceStatusEnum.nameOf(deviceVO.getDeviceStatus()).getMsg());
+            // 2.1 拼接部门信息
+            findAndThen(deptMap, deviceVO.getDeptId(), dept -> deviceVO.setDeptName(dept.getName()));
+            // 2.2 设备关联的负责人姓名
+            findAndThen(devicePersonNames, deviceVO.getId(), person -> deviceVO.setDevicePersons(person));
+        });
+    }
+
     /**
      * 组装 设备-bom 关联关系对象
      * @param devices

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceSimpleRespVO.java

@@ -51,4 +51,10 @@ public class IotDeviceSimpleRespVO {
      */
     @Schema(description = "设备所属部门名称", example = "HY-1")
     private String deptName;
+
+    @Schema(description = "设备状态名称", example = "施工")
+    private String deviceStatusName;
+
+    @Schema(description = "设备责任人 逗号分隔", example = "张三、李四")
+    private String devicePersons;
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/util/IotDeviceConvert.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSimpleRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.enums.common.IotDeviceStatusEnum;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO;
@@ -39,6 +40,7 @@ public interface IotDeviceConvert {
         IotDeviceSimpleRespVO deviceVO = BeanUtils.toBean(device, IotDeviceSimpleRespVO.class);
         if (dept != null) {
             deviceVO.setDeptName(dept.getName());
+            deviceVO.setDeviceStatusName(IotDeviceStatusEnum.nameOf(deviceVO.getDeviceStatus()).getMsg());
         }
         return deviceVO;
     }