Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

lipenghui 3 mēneši atpakaļ
vecāks
revīzija
78f8140c80
22 mainītis faili ar 297 papildinājumiem un 60 dzēšanām
  1. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogPageReqVO.java
  2. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogRespVO.java
  3. 1 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogSaveReqVO.java
  4. 2 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsPageReqVO.java
  5. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsRespVO.java
  6. 93 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java
  7. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillPageReqVO.java
  8. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillRespVO.java
  9. 11 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillSaveReqVO.java
  10. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/DeviceVO.java
  11. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotdevicerunlog/IotDeviceRunLogDO.java
  12. 3 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotmodeltemplateattrs/IotModelTemplateAttrsDO.java
  13. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillDO.java
  14. 13 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/TDDeviceMapper.java
  15. 1 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotdevicerunlog/IotDeviceRunLogMapper.java
  16. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotmodeltemplateattrs/IotModelTemplateAttrsMapper.java
  17. 12 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java
  18. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/DeviceServiceImpl.java
  19. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IDeviceService.java
  20. 23 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java
  21. 36 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java
  22. 70 44
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogPageReqVO.java

@@ -63,6 +63,8 @@ public class IotDeviceRunLogPageReqVO extends PageParam {
     @Schema(description = "备注", example = "你猜")
     private String remark;
 
+    private String fillContent;
+
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogRespVO.java

@@ -77,4 +77,6 @@ public class IotDeviceRunLogRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    private String fillContent;
+
 }

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdevicerunlog/vo/IotDeviceRunLogSaveReqVO.java

@@ -55,4 +55,5 @@ public class IotDeviceRunLogSaveReqVO {
     @Schema(description = "备注", example = "你猜")
     private String remark;
 
+    private String fillContent;
 }

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsPageReqVO.java

@@ -20,8 +20,8 @@ public class IotModelTemplateAttrsPageReqVO extends PageParam {
     @Schema(description = "设备分类id", example = "32238")
     private Long deviceCategoryId;
 
-    /*@Schema(description = "设备id", example = "32238")
-    private Long deviceId;*/
+    @Schema(description = "设备id", example = "32238")
+    private Long deviceId;
 
     @Schema(description = "设备模板id", example = "32238")
     private Long templateId;

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsRespVO.java

@@ -87,4 +87,6 @@ public class IotModelTemplateAttrsRespVO {
     @Schema(description = "物属性", example = "zyj")
     private String modelAttr;
 
+    private String deviceCode;
+
 }

+ 93 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -1,15 +1,23 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill;
 
+import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodel.vo.IotModelPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillSaveReqVO;
+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.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotThingsModelDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
+import cn.iocoder.yudao.module.pms.service.IDeviceService;
 import cn.iocoder.yudao.module.pms.service.iotopeationfill.IotOpeationFillService;
+import com.aliyun.tea.utils.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -18,10 +26,12 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Operation;
 
+import javax.annotation.security.PermitAll;
 import javax.validation.constraints.*;
 import javax.validation.*;
 import javax.servlet.http.*;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.io.IOException;
 
@@ -45,6 +55,8 @@ public class IotOpeationFillController {
 
     @Resource
     private IotOpeationFillService iotOpeationFillService;
+    @Resource
+    private IDeviceService iDeviceService;
 
     @PostMapping("/create")
     @Operation(summary = "创建运行记录填报")
@@ -53,6 +65,27 @@ public class IotOpeationFillController {
         return success(iotOpeationFillService.createIotOpeationFill(createReqVO));
     }
 
+    @PostMapping("/insertLog")
+    @Operation(summary = "创建运行记录填写信息")
+    public CommonResult<Integer> insertLog(@Valid @RequestBody List<IotOpeationFillSaveReqVO>createReqVO) {
+        List<IotOpeationFillSaveReqVO> fillList = createReqVO;
+        List< IotDeviceRunLogDO > logDO = new ArrayList<>();
+
+        for (IotOpeationFillSaveReqVO fill:fillList) {
+            IotDeviceRunLogDO deviceRunLogDO = new IotDeviceRunLogDO();
+            deviceRunLogDO.setDeviceId(fill.getDeviceId());
+            deviceRunLogDO.setDeviceCode(fill.getDeviceCode());
+            deviceRunLogDO.setFillContent(fill.getFillContent());
+            deviceRunLogDO.setPointCode(fill.getModelAttr());
+            deviceRunLogDO.setDeptId(fill.getDeptId());
+            deviceRunLogDO.setCreateTime(LocalDateTime.now());
+            deviceRunLogDO.setPointName(fill.getPointName());
+            logDO.add(deviceRunLogDO);
+        }
+        iotOpeationFillService.updateFill(createReqVO.get(0));
+        return success(iotOpeationFillService.insertLog(logDO));
+    }
+
     @PutMapping("/update")
     @Operation(summary = "更新运行记录填报")
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:update')")
@@ -82,9 +115,66 @@ public class IotOpeationFillController {
     @GetMapping("/page")
     @Operation(summary = "获得运行记录填报分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:query')")
-    public CommonResult<List<IotDeviceRespVO>> getIotOpeationFillPage(@Valid IotDevicePageReqVO pageReqVO) {
-        List<IotDeviceDO> pageResult = iotOpeationFillService.getFillDevices(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, IotDeviceRespVO.class));
+    public CommonResult<List<IotOpeationFillDO>> getIotOpeationFillPage(@Valid IotOpeationFillPageReqVO pageReqVO) {
+        List<IotOpeationFillDO> fillList = iotOpeationFillService.fillList(pageReqVO);
+        List<IotOpeationFillDO> pageResult = iotOpeationFillService.getFillDevices(pageReqVO);
+        if(fillList.size()==0){
+            for (IotOpeationFillDO re:pageResult) {
+                re.setDeviceId(re.getId());
+            }
+            iotOpeationFillService.insertFill(pageResult);
+        }
+        fillList = iotOpeationFillService.fillList(pageReqVO);
+        return success(BeanUtils.toBean(fillList, IotOpeationFillDO.class));
+    }
+
+    @GetMapping("/getAttrs")
+    @PermitAll
+    @Operation(summary = "获得PMS 功能优化 设备模板属性")
+    @Parameter(name = "deviceCategoryName", description = "名称", required = true, example = "1024")
+    public CommonResult<List<IotModelTemplateAttrsDO>> getModelAttrs(@Valid IotModelTemplateAttrsRespVO vo) {
+        List<IotModelTemplateAttrsDO> list = iotOpeationFillService.getAttrsById(vo );
+
+        /**
+         * 根据设备名称和物属性名称查询时序数据库
+         * 1、数采有值,已填写
+         * 2、数采有值,未填写 满足
+         * 3、数采无值,已填写 满足
+         * 4、数采无值,未填写 满足
+         */
+        for (IotModelTemplateAttrsDO attrsDO:list) {
+            DeviceVO dv= new DeviceVO();
+            dv.setDeviceName(vo.getDeviceCode().toLowerCase());
+            dv.setColName(attrsDO.getModelAttr());
+            DeviceVO deviceVO = iDeviceService.getYesInfo(dv);
+            if(!StringUtils.isEmpty(deviceVO)){
+                attrsDO.setFillContent(
+                        String.valueOf(Double.parseDouble(deviceVO.getLatestData())-Double.parseDouble(deviceVO.getEarliestData())));
+            }
+        }
+
+        IotDeviceRunLogDO logDO1 = new IotDeviceRunLogDO();
+        logDO1.setDeviceId(vo.getDeviceId());
+        List<IotDeviceRunLogDO> logList = iotOpeationFillService.getDeivceFillInfo(logDO1);
+        if(logList.size()>0){
+            for (IotDeviceRunLogDO log:logList) {
+                for (IotModelTemplateAttrsDO attrsDO:list) {
+                    if(log.getPointName().equals(attrsDO.getName())){
+                        attrsDO.setFillContent(log.getFillContent());
+                    }
+                }
+            }
+        }
+        return success(BeanUtils.toBean(list,IotModelTemplateAttrsDO.class));
+    }
+
+    @GetMapping("/getDeivceFillInfo")
+    @PermitAll
+    @Operation(summary = "获得PMS 功能优化 设备模板属性")
+    @Parameter(name = "deviceCategoryName", description = "名称", required = true, example = "1024")
+    public CommonResult<List<IotDeviceRunLogDO>> getDeivceFillInfo(@Valid IotDeviceRunLogDO vo) {
+        List<IotDeviceRunLogDO> list = iotOpeationFillService.getDeivceFillInfo(vo);
+        return success(BeanUtils.toBean(list,IotDeviceRunLogDO.class));
     }
 
     @GetMapping("/export-excel")

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillPageReqVO.java

@@ -21,6 +21,8 @@ public class IotOpeationFillPageReqVO extends PageParam {
     @Schema(description = "资产编号")
     private String deviceCode;
 
+    private Long deviceCategoryId;
+
     @Schema(description = "设备名称", example = "赵六")
     private String deviceName;
 
@@ -69,4 +71,6 @@ public class IotOpeationFillPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+    private int isFill;
+
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillRespVO.java

@@ -16,6 +16,8 @@ public class IotOpeationFillRespVO {
     @ExcelProperty("主键id")
     private Long id;
 
+    private Long deviceCategoryId;
+
     @Schema(description = "资产编号", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("资产编号")
     private String deviceCode;

+ 11 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillSaveReqVO.java

@@ -14,16 +14,15 @@ public class IotOpeationFillSaveReqVO {
     @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19263")
     private Long id;
 
+    private Long deviceId;
+
     @Schema(description = "资产编号", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "资产编号不能为空")
     private String deviceCode;
 
     @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
-    @NotEmpty(message = "设备名称不能为空")
     private String deviceName;
 
     @Schema(description = "填写内容", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "填写内容不能为空")
     private String fillContent;
 
     @Schema(description = "设备类别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@@ -56,4 +55,13 @@ public class IotOpeationFillSaveReqVO {
     @Schema(description = "填写日期", requiredMode = Schema.RequiredMode.REQUIRED)
     private LocalDateTime creDate;
 
+    private List<IotOpeationFillSaveReqVO> voList;
+
+    private String modelAttr;
+
+    private String pointName;
+
+    private String pointCode;
+
+    private String isFill;
 }

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

@@ -236,6 +236,10 @@ public class DeviceVO extends PageParam {
 
     private String protocolCode;
 
+    private String colName;
+
+    private String earliestData;
+    private String latestData;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotdevicerunlog/IotDeviceRunLogDO.java

@@ -65,6 +65,8 @@ public class IotDeviceRunLogDO extends BaseDO {
      * 填报时间 or 采集时间
      */
     private LocalDateTime time;
+
+    private LocalDateTime createTime;
     /**
      * 当日运行时间 H
      */
@@ -86,4 +88,6 @@ public class IotDeviceRunLogDO extends BaseDO {
      */
     private String remark;
 
+    private String fillContent;
+
 }

+ 3 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotmodeltemplateattrs/IotModelTemplateAttrsDO.java

@@ -36,8 +36,8 @@ public class IotModelTemplateAttrsDO extends BaseDO {
     private Long deviceCategoryId;
     /**
      * 设备id
-     *//*
-    private Long deviceId;*/
+     */
+    private Long deviceId;
     /**
      * 设备模板id
      */
@@ -100,5 +100,6 @@ public class IotModelTemplateAttrsDO extends BaseDO {
     private Integer isCollection;
 
     private String modelAttr;
+    private String fillContent;
 
 }

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillDO.java

@@ -31,6 +31,8 @@ public class IotOpeationFillDO extends BaseDO {
     @TableId
     private Long id;
 
+    private Long deviceCategoryId;
+
     /**
      * 设备ID
      */
@@ -89,4 +91,6 @@ public class IotOpeationFillDO extends BaseDO {
      */
     private LocalDate creDate;
 
+    private int isFill;
+
 }

+ 13 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/TDDeviceMapper.java

@@ -61,4 +61,17 @@ public interface TDDeviceMapper extends BaseMapperX<TDDeviceDO> {
     @DS("tdengine")
     @TenantIgnore
     List<DeviceVO> selectByTs(@Param("deviceName") String tableName, @Param("ts") Timestamp ts);
+
+    @Select("SELECT\n" +
+            "  FIRST(log_value  ) AS earliest_data,\n" +
+            "  LAST(log_value ) AS latest_data\n" +
+            "FROM iot_log.device_${deviceName} \n" +
+            "WHERE\n" +
+            "  ts >= NOW - 1d\n" +
+            "  and identity = #{colName}\n" +
+            "  AND ts < NOW\n" +
+            "  AND _c0 IS NOT NULL")
+    @DS("tdengine")
+    @TenantIgnore
+    DeviceVO getYesInfo(@Param("deviceName") String tableName,@Param("colName") String colName);
 }

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotdevicerunlog/IotDeviceRunLogMapper.java

@@ -30,6 +30,7 @@ public interface IotDeviceRunLogMapper extends BaseMapperX<IotDeviceRunLogDO> {
                 .likeIfPresent(IotDeviceRunLogDO::getPointName, reqVO.getPointName())
                 .eqIfPresent(IotDeviceRunLogDO::getType, reqVO.getType())
                 .eqIfPresent(IotDeviceRunLogDO::getValue, reqVO.getValue())
+                .eqIfPresent(IotDeviceRunLogDO::getFillContent, reqVO.getFillContent())
                 .betweenIfPresent(IotDeviceRunLogDO::getTime, reqVO.getTime())
                 .betweenIfPresent(IotDeviceRunLogDO::getDailyRunTime, reqVO.getDailyRunTime())
                 .betweenIfPresent(IotDeviceRunLogDO::getTotalRunTime, reqVO.getTotalRunTime())

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotmodeltemplateattrs/IotModelTemplateAttrsMapper.java

@@ -24,7 +24,7 @@ public interface IotModelTemplateAttrsMapper extends BaseMapperX<IotModelTemplat
     default PageResult<IotModelTemplateAttrsDO> selectPage(IotModelTemplateAttrsPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<IotModelTemplateAttrsDO>()
                 .eqIfPresent(IotModelTemplateAttrsDO::getDeviceCategoryId, reqVO.getDeviceCategoryId())
-                /*.eqIfPresent(IotModelTemplateAttrsDO::getDeviceId, reqVO.getDeviceId())*/
+                .eqIfPresent(IotModelTemplateAttrsDO::getDeviceId, reqVO.getDeviceId())
                 .eqIfPresent(IotModelTemplateAttrsDO::getTemplateId, reqVO.getTemplateId())
                 .likeIfPresent(IotModelTemplateAttrsDO::getName, reqVO.getName())
                 .eqIfPresent(IotModelTemplateAttrsDO::getCode, reqVO.getCode())

+ 12 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java

@@ -6,11 +6,16 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodel.vo.IotModelPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillSaveReqVO;
 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.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -29,8 +34,6 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<IotOpeationFillDO>()
                 .eqIfPresent(IotOpeationFillDO::getDeviceCode, reqVO.getDeviceCode())
                 .likeIfPresent(IotOpeationFillDO::getDeviceName, reqVO.getDeviceName())
-                .eqIfPresent(IotOpeationFillDO::getFillContent, reqVO.getFillContent())
-                .eqIfPresent(IotOpeationFillDO::getDeviceType, reqVO.getDeviceType())
                 .eqIfPresent(IotOpeationFillDO::getDeviceComponent, reqVO.getDeviceComponent())
                 .eqIfPresent(IotOpeationFillDO::getDeptId, reqVO.getDeptId())
                 .likeIfPresent(IotOpeationFillDO::getOrgName, reqVO.getOrgName())
@@ -44,5 +47,11 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
                 .orderByDesc(IotOpeationFillDO::getId));
     }
 
-    List<IotDeviceDO> getFillDevices(IotDevicePageReqVO vo);
+    List<IotOpeationFillDO> getFillDevices(IotOpeationFillPageReqVO vo);
+    List<IotModelTemplateAttrsDO> getAttrsById(IotModelTemplateAttrsRespVO vo);
+    int insertFill(List<IotOpeationFillDO> vo);
+    List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
+    int insertLog(List<IotDeviceRunLogDO> logDO);
+    int updateFill(IotOpeationFillSaveReqVO vo);
+    List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
 }

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/DeviceServiceImpl.java

@@ -47,5 +47,10 @@ public class DeviceServiceImpl implements IDeviceService {
         return device;
     }
 
+    @Override
+    public DeviceVO getYesInfo(DeviceVO deviceVO) {
+        return deviceMapper.getYesInfo(deviceVO.getDeviceName(), deviceVO.getColName());
+    }
+
 
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IDeviceService.java

@@ -31,4 +31,6 @@ public interface IDeviceService {
      */
     List<DeviceVO> selectByTs(DeviceVO deviceVO);
 
+    DeviceVO getYesInfo(DeviceVO deviceVO);
+
 }

+ 23 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java

@@ -5,11 +5,16 @@ import javax.validation.*;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodel.vo.IotModelPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillSaveReqVO;
 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.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 
 /**
@@ -57,6 +62,23 @@ public interface IotOpeationFillService {
      */
     PageResult<IotOpeationFillDO> getIotOpeationFillPage(IotOpeationFillPageReqVO pageReqVO);
 
-    List<IotDeviceDO> getFillDevices(IotDevicePageReqVO vo);
+    List<IotOpeationFillDO> getFillDevices(IotOpeationFillPageReqVO vo);
+
+    List<IotModelTemplateAttrsDO> getAttrsById(IotModelTemplateAttrsRespVO vo);
+
+    int insertFill(List<IotOpeationFillDO> vo);
+
+    List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
+
+    int insertLog(List<IotDeviceRunLogDO> logDO);
+
+    /**
+     * 更新填写状态
+     * @param vo
+     * @return
+     */
+    int updateFill(IotOpeationFillSaveReqVO vo);
+
+    List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
 
 }

+ 36 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java

@@ -1,11 +1,16 @@
 package cn.iocoder.yudao.module.pms.service.iotopeationfill;
 
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodel.vo.IotModelPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillSaveReqVO;
 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.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -80,8 +85,38 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
 
 
     @Override
-    public List<IotDeviceDO> getFillDevices(IotDevicePageReqVO vo) {
+    public List<IotOpeationFillDO> getFillDevices(IotOpeationFillPageReqVO vo) {
         return iotOpeationFillMapper.getFillDevices(vo);
     }
 
+    @Override
+    public List<IotModelTemplateAttrsDO> getAttrsById(IotModelTemplateAttrsRespVO vo) {
+        return iotOpeationFillMapper.getAttrsById(vo);
+    }
+
+    @Override
+    public int insertFill(List<IotOpeationFillDO> vo) {
+        return iotOpeationFillMapper.insertFill(vo);
+    }
+
+    @Override
+    public List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo) {
+        return iotOpeationFillMapper.fillList(vo);
+    }
+
+    @Override
+    public int insertLog(List<IotDeviceRunLogDO> logDO) {
+        return iotOpeationFillMapper.insertLog(logDO);
+    }
+
+    @Override
+    public int updateFill(IotOpeationFillSaveReqVO vo) {
+        return iotOpeationFillMapper.updateFill(vo);
+    }
+
+    @Override
+    public List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo) {
+        return iotOpeationFillMapper.getDeivceFillInfo(vo);
+    }
+
 }

+ 70 - 44
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -3,64 +3,90 @@
 <mapper namespace="cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper">
 
 
-    <select id="getDeviceIds"
-            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        select distinct b.id from
-             rqiot.rq_iot_opeation_model a,
-             rqiot.rq_iot_device b
-        where
-            a.dept_id = b.dept_id
-          and
-            a.device_type = b.asset_class
-    </select>
-
-    <select id="selectFillList"
+    <select id="getFillDevices"
             parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
         select
-            b.dept_id,
-            b.device_code,
-            b.device_name,
-            a.fill_info fillContent,
-            a.org_name,
-            a.device_type,
-            b.id deviceId,
-            a.device_component
+            distinct
+            a.id,
+            a.dept_id,
+            a.device_code,
+            a.device_name,
+            b.device_category_id
         from
-            rqiot.rq_iot_opeation_model a,
-            rqiot.rq_iot_device b
+            rqiot.rq_iot_device a,
+            rqiot.rq_iot_model_template b
         where
-            a.dept_id = b.dept_id
+            a.asset_class = b.device_category_id
           and
-            a.device_type = b.asset_class
-        <if test="deptId != null  and deptId != ''">
+            a.deleted = 0
           and
-            a.dept_id = #{deptId}
-        </if>
-          and a.deleted = 0
-          and b.deleted = 0
+            b.deleted = 0
+          and
+            a.device_status in ('sg','dm')
     </select>
 
-    <select id="fillList"
-            parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO"
-            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        select * from rq_iot_opeation_fill
-        where
-            cre_date = #{creDate}
-        <if test="deptId != null  and deptId != ''">
-            and dept_id = #{deptId}
-        </if>
-        and deleted != 1
-    </select>
 
     <insert id="insertFill"
-            parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        insert into rq_iot_opeation_fill(dept_id,device_code,device_name,fill_content,device_type,org_name,cre_date,device_component,device_id)
+    parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+       insert into rqiot.rq_iot_opeation_fill(device_id,device_code,device_name,device_category_id,create_time,dept_id)
+           values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.deviceId},#{item.deviceCode},#{item.deviceName},
+            #{item.deviceCategoryId},#{item.createTime},#{item.deptId})
+        </foreach>
+    </insert>
+
+    <insert id="insertLog"
+            parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO">
+        insert into rqiot.rq_iot_device_run_log
+            (dept_id,device_id,device_code,point_code,fill_content,create_time,point_name)
         values
         <foreach collection="list" item="item" separator=",">
-            (#{item.deptId},#{item.deviceCode},#{item.deviceName},#{item.fillContent},
-            #{item.deviceType},#{item.orgName},#{item.creDate},#{item.deviceComponent},#{item.deviceId})
+            (#{item.deptId},#{item.deviceId},#{item.deviceCode},
+            #{item.pointCode},#{item.fillContent},#{item.createTime},#{item.pointName})
         </foreach>
+
     </insert>
 
+    <select id="fillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+    resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT * FROM
+            rqiot.rq_iot_opeation_fill
+        WHERE DATE(create_time) = CURDATE()
+        <if test="deptId != null  and deptId != ''">
+        and dept_id = #{deptId}
+        </if>
+    </select>
+
+    <select id="getAttrsById" parameterType="cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO"
+    resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO">
+        select
+            name,
+            type,
+            model_attr
+        from
+            rqiot.rq_iot_model_template_attrs
+        where
+            device_category_id = #{deviceCategoryId} and deleted = 0
+    </select>
+
+    <update id="updateFill"  parameterType="cn.iocoder.yudao.module.pms.controller.admin.vo.IotOpeationModelPageReqVO">
+        update  rqiot.rq_iot_opeation_fill
+         set is_fill = '1'
+        where device_id = #{deviceId}
+        and DATE(create_time) = CURDATE()
+    </update>
+
+
+    <select id="getDeivceFillInfo" parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO"
+    resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO">
+        SELECT * FROM rq_iot_device_run_log
+        WHERE
+            device_id = #{deviceId}
+        and
+            create_time  = (SELECT MAX(create_time) FROM rq_iot_device_run_log WHERE
+                device_id = #{deviceId})
+    </select>
+
 </mapper>