Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

lipenghui 3 mesi fa
parent
commit
8f953f1f16
14 ha cambiato i file con 188 aggiunte e 20 eliminazioni
  1. 40 0
      yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/common/IotDeviceStatusEnum.java
  2. 23 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotDeviceController.java
  3. 6 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsRespVO.java
  4. 28 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java
  5. 9 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillRespVO.java
  6. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillSaveReqVO.java
  7. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceSimpleRespVO.java
  8. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotdevicerunlog/IotDeviceRunLogDO.java
  9. 7 4
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java
  10. 3 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillOrderMapper.java
  11. 5 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java
  12. 8 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java
  13. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/util/IotDeviceConvert.java
  14. 37 6
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

+ 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 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmodeltemplateattrs/vo/IotModelTemplateAttrsRespVO.java

@@ -5,9 +5,13 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 @Schema(description = "管理后台 - PMS 功能优化 设备模板属性 Response VO")
 @Data
 @ExcelIgnoreUnannotated
@@ -79,7 +83,8 @@ public class IotModelTemplateAttrsRespVO {
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDate createTime;
 
     @Schema(description = "是否数采", example = "1")
     private Integer isCollection;

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

@@ -38,6 +38,7 @@ import java.math.BigDecimal;
 import java.sql.SQLException;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.*;
 import java.io.IOException;
 import java.util.stream.Collectors;
@@ -106,6 +107,29 @@ public class IotOpeationFillController {
             logDO.add(deviceRunLogDO);
         }
         iotOpeationFillService.updateFill(createReqVO.get(0));
+
+        /**
+         * 判断设备状态是否都为填写
+         * 1、是 更新填写工单为已填写
+         * 2、否 更新填写工单为待填写
+         * 3、部分填写 更新填写工单为填写中
+         */
+        IotOpeationFillRespVO respVO = new IotOpeationFillRespVO();
+        respVO.setUserId(createReqVO.get(0).getUserId());
+        respVO.setCreateTime(createReqVO.get(0).getCreateTime());
+        List<IotOpeationFillRespVO> fillList1 = iotOpeationFillService.getFillList(respVO);
+
+        boolean result = fillList1.stream().allMatch(e->e.getIsFill()==1);
+        boolean result1 = fillList1.stream().allMatch(e->e.getIsFill()==0);
+
+        if(result){
+
+        }else if(result1){
+
+        }else{
+
+        }
+
         return success(iotOpeationFillService.insertLog(logDO));
     }
 
@@ -138,7 +162,7 @@ public class IotOpeationFillController {
     @GetMapping("/page")
     @Operation(summary = "获得运行记录填报分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:query')")
-    public CommonResult<List<IotOpeationFillDO>> getIotOpeationFillPage(@Valid IotOpeationFillPageReqVO pageReqVO) {
+    public CommonResult<List<IotOpeationFillDO>> getIotOpeationFillPage(@Valid IotOpeationFillRespVO pageReqVO) {
         List<IotOpeationFillDO> fillList = new ArrayList<>();
         List<IotOpeationFillDO> deviceList = iotOpeationFillService.deviceList(pageReqVO);
         if(deviceList.size()==0){
@@ -197,12 +221,15 @@ public class IotOpeationFillController {
                 if(!StringUtils.isEmpty(deviceVO)){
                     attrsDO.setFillContent(
                             String.valueOf(Double.parseDouble(deviceVO.getLatestData())-Double.parseDouble(deviceVO.getEarliestData())));
+                    attrsDO.setTotalRunTime(BigDecimal.valueOf(Double.parseDouble(deviceVO.getLatestData())));
                 }
             }
         }
 
         IotDeviceRunLogDO logDO1 = new IotDeviceRunLogDO();
         logDO1.setDeviceId(vo.getDeviceId());
+        LocalTime localTime = LocalTime.of(12, 0);
+        logDO1.setCreateTime(LocalDateTime.of(vo.getCreateTime(),localTime));
         List<IotDeviceRunLogDO> logList = iotOpeationFillService.getDeivceFillInfo(logDO1);
         if(logList.size()>0){
             for (IotDeviceRunLogDO log:logList) {

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

@@ -1,12 +1,18 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo;
 
+import cn.hutool.core.date.DateTime;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+
+import java.time.LocalDate;
 import java.util.*;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 import com.alibaba.excel.annotation.*;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
 @Schema(description = "管理后台 - 运行记录填报 Response VO")
 @Data
 @ExcelIgnoreUnannotated
@@ -72,8 +78,10 @@ public class IotOpeationFillRespVO {
 
     @Schema(description = "创建时间")
     @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDate createTime;
 
     private Integer userId;
 
+    private Integer isFill;
 }

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

@@ -2,11 +2,15 @@ package cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+
+import java.time.LocalDate;
 import java.util.*;
 import javax.validation.constraints.*;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 @Schema(description = "管理后台 - 运行记录填报新增/修改 Request VO")
 @Data
 public class IotOpeationFillSaveReqVO {
@@ -64,4 +68,9 @@ public class IotOpeationFillSaveReqVO {
     private String pointCode;
 
     private String isFill;
+
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDate createTime;
+
+    private Integer userId;
 }

+ 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;
 }

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

@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 /**
  * 设备运行数据记录 中间表 DO
  *
@@ -66,6 +70,7 @@ public class IotDeviceRunLogDO extends BaseDO {
      */
     private LocalDateTime time;
 
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
     private LocalDateTime createTime;
     /**
      * 当日运行时间 H

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

@@ -56,8 +56,8 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     int insertFillOrder(List<IotOpeationFillDO> vo);
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
     @TenantIgnore
-    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo);
-    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
+    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillRespVO vo);
     @TenantIgnore
     List<IotOpeationFillDO> rdList();
     @TenantIgnore
@@ -66,13 +66,16 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     List<IotOpeationFillDO> rhList();
     @TenantIgnore
     List<IotOpeationFillDO> pdList();
-    List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo);
-
+    List<IotOpeationFillDO> deviceList(IotOpeationFillRespVO vo);
+    @TenantIgnore
     PageResult<IotOpeationFillDO> fillList1(IotOpeationFillPageReqVO vo);
 
 
     int insertLog(List<IotDeviceRunLogDO> logDO);
     @TenantIgnore
     int updateFill(IotOpeationFillSaveReqVO vo);
+
+    List<IotOpeationFillRespVO> getFillList(IotOpeationFillRespVO vo);
+
     List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
 }

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

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 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.IotOpeationFillSaveReqVO;
@@ -22,6 +23,7 @@ import java.util.List;
 @Mapper
 public interface IotOpeationFillOrderMapper extends BaseMapperX<IotOpeationFillOrderDO> {
 
+    @TenantIgnore
     default PageResult<IotOpeationFillOrderDO> selectPage(IotOpeationFillPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<IotOpeationFillOrderDO>()
                 .eqIfPresent(IotOpeationFillOrderDO::getDeptId, reqVO.getDeptId())
@@ -33,6 +35,7 @@ public interface IotOpeationFillOrderMapper extends BaseMapperX<IotOpeationFillO
                 .betweenIfPresent(IotOpeationFillOrderDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(IotOpeationFillOrderDO::getId));
     }
+    @TenantIgnore
     default PageResult<IotOpeationFillOrderDO> selectPage1(IotOpeationFillPageReqVO reqVO,
                                                            Collection<Integer> userIds,
                                                            Collection<String> names) {

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

@@ -73,9 +73,9 @@ public interface IotOpeationFillService {
 
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
 
-    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo);
-    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo);
-    List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
+    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillRespVO vo);
+    List<IotOpeationFillDO> deviceList(IotOpeationFillRespVO vo);
 
     PageResult<IotOpeationFillOrderDO> fillList1(IotOpeationFillPageReqVO vo);
 
@@ -94,6 +94,8 @@ public interface IotOpeationFillService {
      */
     int updateFill(IotOpeationFillSaveReqVO vo);
 
+    List<IotOpeationFillRespVO> getFillList(IotOpeationFillRespVO vo);
+
     List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
 
 }

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

@@ -111,17 +111,17 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
     }
 
     @Override
-    public List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo) {
+    public List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo) {
         return iotOpeationFillMapper.fillListByUserId(vo);
     }
 
     @Override
-    public List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo) {
+    public List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillRespVO vo) {
         return iotOpeationFillMapper.fillListByDeptId(vo);
     }
 
     @Override
-    public List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo) {
+    public List<IotOpeationFillDO> deviceList(IotOpeationFillRespVO vo) {
         return iotOpeationFillMapper.deviceList(vo);
     }
 
@@ -151,6 +151,11 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
         return iotOpeationFillMapper.updateFill(vo);
     }
 
+    @Override
+    public List<IotOpeationFillRespVO> getFillList(IotOpeationFillRespVO vo) {
+        return iotOpeationFillMapper.getFillList(vo);
+    }
+
     @Override
     public List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo) {
         return iotOpeationFillMapper.getDeivceFillInfo(vo);

+ 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;
     }

+ 37 - 6
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -94,17 +94,20 @@
 
     <select id="fillListByUserId" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        SELECT a.*,
+        SELECT distinct a.*,
         b.name org_name FROM
         rqiot.rq_iot_opeation_fill a,
-        rqiot.system_dept b
-        WHERE DATE(a.create_time) = CURDATE()
+        rqiot.system_dept b,
+        rqiot.rq_iot_model_template_attrs c
+        WHERE DATE(a.create_time) = DATE(#{createTime})
         <if test="userId != null  and userId != ''">
-            and device_id in (select device_id from
+            and a.device_id in (select device_id from
             rqiot.rq_iot_device_person where person_id = #{userId})
         </if>
         and
         a.dept_id = b.id
+        and
+        a.device_category_id = c.device_category_id
 
     </select>
 
@@ -196,15 +199,43 @@
         and DATE(create_time) = CURDATE()
     </update>
 
+    <select id="getFillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO">
+        select distinct b.* from
+                                rq_iot_opeation_fill_order a,
+                                rq_iot_opeation_fill b,
+                                rq_iot_device_person c,
+                                rq_iot_model_template_attrs d
+        where
+            a.user_id = c.person_id
+          and
+            c.device_id = b.device_id
+          and
+            a.user_id = #{userId}
+          and
+            b.device_category_id = d.device_category_id
+          and
+            DATE(b.create_time)=DATE(#{createTime})
+        order by b.create_time desc
+    </select>
+
 
     <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
+        <!--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})
+                device_id = #{deviceId})-->
+        SELECT * FROM rq_iot_device_run_log
+        WHERE
+        device_id = #{deviceId}
+        and
+        DATE(create_time)  = DATE(#{createTime})
+        order by create_time
+        desc
+        limit 1
     </select>
 
 </mapper>