|
@@ -1,22 +1,28 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin;
|
|
|
|
|
|
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.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.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.dal.dataobject.IotDeviceDO;
|
|
|
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.YfDeviceDO;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
|
|
|
+import cn.iocoder.yudao.module.pms.service.DeviceServiceImpl;
|
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
|
import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotbom.IotBomService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotmodel.IotModelService;
|
|
|
+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;
|
|
@@ -27,14 +33,18 @@ import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.annotation.security.PermitAll;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
+import java.sql.Timestamp;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
@@ -63,6 +73,10 @@ public class IotDeviceController {
|
|
|
private IotModelService iotModelService;
|
|
|
@Resource
|
|
|
private IotBomService iotBomService;
|
|
|
+ @Autowired
|
|
|
+ private YfDeviceService yfDeviceService;
|
|
|
+ @Autowired
|
|
|
+ private DeviceServiceImpl deviceServiceImpl;
|
|
|
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建设备台账")
|
|
@@ -125,11 +139,19 @@ public class IotDeviceController {
|
|
|
pageResult.getTotal()));
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TDDeviceMapper deviceMapper;
|
|
|
+
|
|
|
@GetMapping("/td/page")
|
|
|
@Operation(summary = "获得设备台账包含数采信息")
|
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
|
|
|
public CommonResult<PageResult<IotDeviceRespVO>> getIotDeviceTdPage(@Valid IotDevicePageReqVO pageReqVO) {
|
|
|
- PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO);
|
|
|
+ List<String> codes = new ArrayList<>();
|
|
|
+ List<YfDeviceDO> allDevice = yfDeviceService.getAllDevice();
|
|
|
+ allDevice.forEach(d -> {
|
|
|
+ codes.add(d.getSerialNumber());
|
|
|
+ });
|
|
|
+ PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDeviceTdPage(pageReqVO, codes);
|
|
|
if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
return success(new PageResult<>(pageResult.getTotal()));
|
|
|
}
|
|
@@ -138,12 +160,32 @@ public class IotDeviceController {
|
|
|
PageResult<IotDeviceRespVO> result = new PageResult<>(IotDeviceConvert.INSTANCE.convertList(pageResult.getList(), deptMap),
|
|
|
pageResult.getTotal());
|
|
|
for (IotDeviceRespVO iotDeviceRespVO : result.getList()) {
|
|
|
+ IotProductClassifyDO iotProductClassify = iotProductClassifyService.getIotProductClassify(iotDeviceRespVO.getAssetClass());
|
|
|
+ iotDeviceRespVO.setAssetClassName(iotProductClassify.getName());
|
|
|
String deviceCode = iotDeviceRespVO.getDeviceCode();
|
|
|
+ allDevice.stream().filter(e -> e.getSerialNumber().equals(deviceCode)).findFirst().ifPresent(e -> {
|
|
|
+ iotDeviceRespVO.setIfInline(e.getStatus());
|
|
|
+ List<DeviceVO> deviceVOS = deviceMapper.selectNew(e.getSerialNumber());
|
|
|
+ if (CollUtil.isNotEmpty(deviceVOS)) {
|
|
|
+ Timestamp ts = deviceVOS.get(0).getTs();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String format = sdf.format(ts);
|
|
|
+ iotDeviceRespVO.setLastInlineTime(format);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
return success(result);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/td/test")
|
|
|
+ @Operation(summary = "获得设备台账包含数采信息")
|
|
|
+ @PermitAll
|
|
|
+ public void getIotDeviceTdePage() {
|
|
|
+ List<YfDeviceDO> allDevice = yfDeviceService.getAllDevice();
|
|
|
+ System.out.println(allDevice);
|
|
|
+ }
|
|
|
+
|
|
|
@GetMapping("/deviceAssociateBomPage")
|
|
|
@Operation(summary = "获得设备台账分页")
|
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
|