|
@@ -1,20 +1,18 @@
|
|
package cn.iocoder.yudao.module.pms.controller.admin;
|
|
package cn.iocoder.yudao.module.pms.controller.admin;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
-import cn.hutool.core.date.DateUtil;
|
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
|
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
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.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;
|
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSaveReqVO;
|
|
|
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonRelationSaveReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.vo.*;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
|
|
-import cn.iocoder.yudao.module.pms.dal.dataobject.iotbom.IotBomDO;
|
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.ThingsModelDO;
|
|
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.dataobject.yanfan.YfDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
|
|
@@ -22,13 +20,17 @@ import cn.iocoder.yudao.module.pms.service.DeviceServiceImpl;
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
|
|
import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
|
|
import cn.iocoder.yudao.module.pms.service.iotbom.IotBomService;
|
|
import cn.iocoder.yudao.module.pms.service.iotbom.IotBomService;
|
|
|
|
+import cn.iocoder.yudao.module.pms.service.iotdeviceperson.IotDevicePersonService;
|
|
import cn.iocoder.yudao.module.pms.service.iotmodel.IotModelService;
|
|
import cn.iocoder.yudao.module.pms.service.iotmodel.IotModelService;
|
|
import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
|
|
import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
|
|
import cn.iocoder.yudao.module.pms.util.IotDeviceConvert;
|
|
import cn.iocoder.yudao.module.pms.util.IotDeviceConvert;
|
|
import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
|
|
import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
|
|
import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
|
|
import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
|
|
|
|
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO;
|
|
|
|
+import cn.iocoder.yudao.module.system.convert.user.UserConvert;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
|
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.dal.dataobject.dict.DictDataDO;
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
@@ -78,6 +80,8 @@ public class IotDeviceController {
|
|
private YfDeviceService yfDeviceService;
|
|
private YfDeviceService yfDeviceService;
|
|
@Autowired
|
|
@Autowired
|
|
private DeviceServiceImpl deviceServiceImpl;
|
|
private DeviceServiceImpl deviceServiceImpl;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotDevicePersonService iotDevicePersonService;
|
|
|
|
|
|
@PostMapping("/create")
|
|
@PostMapping("/create")
|
|
@Operation(summary = "创建设备台账")
|
|
@Operation(summary = "创建设备台账")
|
|
@@ -86,6 +90,13 @@ public class IotDeviceController {
|
|
return success(iotDeviceService.createIotDevice(createReqVO));
|
|
return success(iotDeviceService.createIotDevice(createReqVO));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @PostMapping("/saveDeviceStatuses")
|
|
|
|
+ @Operation(summary = "批量调整设备状态")
|
|
|
|
+ @PreAuthorize("@ss.hasPermission('pms:iot-device-person:create')")
|
|
|
|
+ public CommonResult<Long> saveDeviceStatuses(@Valid @RequestBody List<IotDevicePersonRelationSaveReqVO> reqVOS) {
|
|
|
|
+ return success(null/*iotDevicePersonService.saveDeviceStatuses(reqVOS)*/);
|
|
|
|
+ }
|
|
|
|
+
|
|
@PutMapping("/update")
|
|
@PutMapping("/update")
|
|
@Operation(summary = "更新设备台账")
|
|
@Operation(summary = "更新设备台账")
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-device:update')")
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-device:update')")
|
|
@@ -159,6 +170,29 @@ public class IotDeviceController {
|
|
pageResult.getTotal()));
|
|
pageResult.getTotal()));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @GetMapping({"/list-all-simple", "/simple-list"})
|
|
|
|
+ @Operation(summary = "获取设备精简信息列表", description = "只包含被开启的设备,主要用于前端的下拉选项")
|
|
|
|
+ public CommonResult<List<IotDeviceSimpleRespVO>> getSimpleDeviceList(@Valid IotDevicePageReqVO reqVO) {
|
|
|
|
+ List<IotDeviceDO> list = iotDeviceService.getSimpleDeviceList(reqVO);
|
|
|
|
+ return success(BeanUtils.toBean(list, IotDeviceSimpleRespVO.class));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/responsiblePage")
|
|
|
|
+ @Operation(summary = "获得设备关联责任人 分页")
|
|
|
|
+ @PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
|
|
|
|
+ public CommonResult<PageResult<IotDeviceRespVO>> responsiblePage(@Valid IotDevicePageReqVO pageReqVO) {
|
|
|
|
+ PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO);
|
|
|
|
+ if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
|
+ return success(new PageResult<>(pageResult.getTotal()));
|
|
|
|
+ }
|
|
|
|
+ // 查询设备关联的 负责人
|
|
|
|
+ Map<Long, String> devicePersonNames = iotDevicePersonService.getIotDevicePerson(convertList(pageResult.getList(), IotDeviceDO::getId));
|
|
|
|
+ Map<Long, DeptDO> deptMap = deptService.getDeptMap(
|
|
|
|
+ convertList(pageResult.getList(), IotDeviceDO::getDeptId));
|
|
|
|
+ // return success(new PageResult<>(IotDeviceConvert.INSTANCE.convertList(pageResult.getList(), deptMap), pageResult.getTotal()));
|
|
|
|
+ return success(new PageResult<>(buildDevicePersonsList(pageResult.getList()), pageResult.getTotal()));
|
|
|
|
+ }
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TDDeviceMapper deviceMapper;
|
|
private TDDeviceMapper deviceMapper;
|
|
|
|
|
|
@@ -255,21 +289,21 @@ public class IotDeviceController {
|
|
* @param devices
|
|
* @param devices
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- private List<IotDeviceRespVO> buildDeviceAssociateBomList(List<IotDeviceDO> devices) {
|
|
|
|
|
|
+ private List<IotDeviceRespVO> buildDevicePersonsList(List<IotDeviceDO> devices) {
|
|
if (CollUtil.isEmpty(devices)) {
|
|
if (CollUtil.isEmpty(devices)) {
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
}
|
|
}
|
|
// 设备部门信息
|
|
// 设备部门信息
|
|
Map<Long, DeptDO> deptMap = deptService.getDeptMap(
|
|
Map<Long, DeptDO> deptMap = deptService.getDeptMap(
|
|
convertList(devices, IotDeviceDO::getDeptId));
|
|
convertList(devices, IotDeviceDO::getDeptId));
|
|
- // 拼接设备分类关联的BOM节点信息
|
|
|
|
- Map<Long, IotBomDO> bomMap = iotBomService.getBomMap(convertList(devices, IotDeviceDO::getAssetClass));
|
|
|
|
|
|
+ // 查询设备关联的 负责人
|
|
|
|
+ Map<Long, String> devicePersonNames = iotDevicePersonService.getIotDevicePerson(convertList(devices, IotDeviceDO::getId));
|
|
// 2. 拼接数据
|
|
// 2. 拼接数据
|
|
return BeanUtils.toBean(devices, IotDeviceRespVO.class, (deviceVO) -> {
|
|
return BeanUtils.toBean(devices, IotDeviceRespVO.class, (deviceVO) -> {
|
|
// 2.1 拼接部门信息
|
|
// 2.1 拼接部门信息
|
|
findAndThen(deptMap, deviceVO.getDeptId(), dept -> deviceVO.setDeptName(dept.getName()));
|
|
findAndThen(deptMap, deviceVO.getDeptId(), dept -> deviceVO.setDeptName(dept.getName()));
|
|
- // 2.2 设备关联的BOM节点信息
|
|
|
|
- findAndThen(bomMap, deviceVO.getAssetClass(), bom -> {deviceVO.setName(bom.getName()); deviceVO.setCode(bom.getCode());});
|
|
|
|
|
|
+ // 2.2 设备关联的负责人姓名
|
|
|
|
+ findAndThen(devicePersonNames, deviceVO.getId(), person -> deviceVO.setResponsibleNames(person));
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|