瀏覽代碼

运行记录填报

yuanchao 2 月之前
父節點
當前提交
8d413e4aa9
共有 11 個文件被更改,包括 254 次插入124 次删除
  1. 40 17
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java
  2. 3 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillPageReqVO.java
  3. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillRespVO.java
  4. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillDO.java
  5. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillOrderDO.java
  6. 10 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java
  7. 5 5
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillOrderMapper.java
  8. 38 22
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/IotOperationFillJob.java
  9. 8 9
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java
  10. 19 12
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java
  11. 124 54
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

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

@@ -123,14 +123,17 @@ public class IotOpeationFillController {
         List<IotOpeationFillRespVO> fillList1 = iotOpeationFillService.getFillList(respVO);
 
         boolean result = fillList1.stream().allMatch(e->e.getIsFill()==1);
+        boolean result1 = fillList1.stream().allMatch(e->e.getIsFill()==0);
 
         IotDeviceRunLogDO deviceRunLogDO = new IotDeviceRunLogDO();
         deviceRunLogDO.setId(createReqVO.get(0).getId());
 
         if(result){
             iotOpeationFillService.updateFillOrder(deviceRunLogDO);
-        }else{
+        }else if(result1){
             iotOpeationFillService.updateFillOrder1(deviceRunLogDO);
+        }else{
+            iotOpeationFillService.updateFillOrder2(deviceRunLogDO);
         }
 
         return success(iotOpeationFillService.insertLog(logDO));
@@ -167,10 +170,15 @@ public class IotOpeationFillController {
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:query')")
     public CommonResult<List<IotOpeationFillDO>> getIotOpeationFillPage(@Valid IotOpeationFillRespVO pageReqVO) {
         List<IotOpeationFillDO> fillList = new ArrayList<>();
-        List<IotOpeationFillDO> deviceList = iotOpeationFillService.deviceList(pageReqVO);
-        if(deviceList.size()==0){
+        if(pageReqVO.getDeviceId()!=null){
+            /**
+             * 根据设备ID和OrderId返回
+             */
             fillList = iotOpeationFillService.fillListByDeptId(pageReqVO);
         }else{
+            /**
+             * 根据OrderId返回
+             */
             fillList = iotOpeationFillService.fillListByUserId(pageReqVO);
         }
         return success(BeanUtils.toBean(fillList, IotOpeationFillDO.class));
@@ -180,22 +188,28 @@ public class IotOpeationFillController {
     @Operation(summary = "获得运行记录填报分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:query')")
     public CommonResult<PageResult<IotOpeationFillOrderDO>> getIotOpeationFillPage1(@Valid IotOpeationFillPageReqVO pageReqVO) {
-
-        List<IotOpeationFillDO> pdList = iotOpeationFillService.pdList();
-        List<String> nameList  = pdList.stream().map(o -> o.getUserName()).collect(Collectors.toList());
-        List<Integer> idList  = pdList.stream().map(o -> o.getUserId()).collect(Collectors.toList());
+        IotOpeationFillDO fillDO = new IotOpeationFillDO();
+        fillDO.setId(pageReqVO.getDeptId());
+        List<IotOpeationFillDO> pdList = iotOpeationFillService.pdList1(fillDO);
+        List<Long> idList  = pdList.stream().map(o -> o.getId()).collect(Collectors.toList());
         PageResult<IotOpeationFillOrderDO> fillList = new PageResult<>();
-        boolean exists = pdList.stream()
-                .anyMatch(rh -> rh.getUserId()==pageReqVO.getUserId());
-        if(!exists){
-            fillList = iotOpeationFillService.fillList2(pageReqVO,idList,nameList);
-        }else{
-            fillList = iotOpeationFillService.fillList1(pageReqVO);
-        }
+
+        fillList = iotOpeationFillService.fillList2(pageReqVO,idList);
+
+        return success(BeanUtils.toBean(fillList, IotOpeationFillOrderDO.class));
+    }
+
+    @GetMapping("/fillRecordPage")
+    @Operation(summary = "获得运行记录填报分页")
+    public CommonResult<PageResult<IotOpeationFillOrderDO>> getFillRecords(@Valid IotOpeationFillPageReqVO pageReqVO) {
+
+        List<IotOpeationFillOrderDO> list =  iotOpeationFillService.fillRecords(pageReqVO);
+        PageResult<IotOpeationFillOrderDO> fillList = new PageResult(list,Long.valueOf(list.size()));
 
         return success(BeanUtils.toBean(fillList, IotOpeationFillOrderDO.class));
     }
 
+
     @GetMapping("/getAttrs")
     @PermitAll
     @Operation(summary = "获得PMS 功能优化 设备模板属性")
@@ -227,13 +241,14 @@ public class IotOpeationFillController {
         logDO1.setDeviceId(vo.getDeviceId());
         LocalTime local = LocalTime.of(12, 0);
         logDO1.setCreateTime(LocalDateTime.of(vo.getCreateTime(),local));
-        List<IotDeviceRunLogDO> logList = iotOpeationFillService.getDeivceFillInfo(logDO1);
 
+        List<IotDeviceRunLogDO> logList = iotOpeationFillService.getDeivceFillInfo(logDO1);
+        List<IotDeviceRunLogDO> maxLog = iotOpeationFillService.getMaxFillInfo(logDO1);
 
         if(exists){
             for (IotModelTemplateAttrsDO attrsDO:list) {
-                DeviceVO dv= new DeviceVO();
 
+                DeviceVO dv= new DeviceVO();
                 dv.setDeviceName(vo.getDeviceCode().toLowerCase());
                 dv.setColName(attrsDO.getModelAttr());
                 dv.setTs(startTime);
@@ -260,8 +275,14 @@ public class IotOpeationFillController {
                                  */
                                 attrsDO.setIsCollection(0);
                             }
-
                         }
+                    }else{
+                        attrsDO.setFillContent("0.0");
+                        attrsDO.setTotalRunTime(maxLog.get(0).getTotalRunTime());
+                        /**
+                         * 设置为非数采
+                         */
+                        attrsDO.setIsCollection(0);
                     }
                 }
             }
@@ -280,6 +301,8 @@ public class IotOpeationFillController {
 
                     }
                }
+            }else{
+
             }
         }
 

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

@@ -71,11 +71,11 @@ public class IotOpeationFillPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
-    private int isFill;
+    private Integer isFill;
     private String orderName;
     private String orderType;
-    private int orderStatus;
-    private int userId;
+    private Integer orderStatus;
+    private Integer userId;
     private String userName;
 
 }

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

@@ -84,4 +84,8 @@ public class IotOpeationFillRespVO {
     private Integer userId;
 
     private Integer isFill;
+
+    private Long orderId;
+
+    private Integer deviceId;
 }

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

@@ -102,7 +102,8 @@ public class IotOpeationFillDO extends BaseDO {
     private String orderName;
     private String orderType;
     private int orderStatus;
-    private int userId;
+    private Integer userId;
     private String userName;
+    private Long orderId;
 
 }

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillOrderDO.java

@@ -41,6 +41,6 @@ public class IotOpeationFillOrderDO extends BaseDO {
     private String orderType;
     private int orderStatus;
     private String userName;
-    private int userId;
+    private Integer userId;
 
 }

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

@@ -64,6 +64,9 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     List<IotOpeationFillDO> ryList();
     @TenantIgnore
     List<IotOpeationFillDO> rhList();
+    @TenantIgnore
+    List<IotOpeationFillDO> pdList1(IotOpeationFillDO vo);
+
     @TenantIgnore
     List<IotOpeationFillDO> pdList();
     List<IotOpeationFillDO> deviceList(IotOpeationFillRespVO vo);
@@ -78,7 +81,14 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     List<IotOpeationFillRespVO> getFillList(IotOpeationFillRespVO vo);
 
     List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
+    List<IotDeviceRunLogDO> getMaxFillInfo(IotDeviceRunLogDO vo);
 
+    @TenantIgnore
     int updateFillOrder(IotDeviceRunLogDO vo);
+    @TenantIgnore
     int updateFillOrder1(IotDeviceRunLogDO vo);
+    @TenantIgnore
+    int updateFillOrder2(IotDeviceRunLogDO vo);
+    @TenantIgnore
+    List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo);
 }

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

@@ -37,15 +37,15 @@ public interface IotOpeationFillOrderMapper extends BaseMapperX<IotOpeationFillO
     }
     @TenantIgnore
     default PageResult<IotOpeationFillOrderDO> selectPage1(IotOpeationFillPageReqVO reqVO,
-                                                           Collection<Integer> userIds,
-                                                           Collection<String> names) {
+                                                           Collection<Long> deptIds
+                                                           ) {
         return selectPage(reqVO, new LambdaQueryWrapperX<IotOpeationFillOrderDO>()
-                .eqIfPresent(IotOpeationFillOrderDO::getDeptId, reqVO.getDeptId())
+                .inIfPresent(IotOpeationFillOrderDO::getDeptId, deptIds)
                 .likeIfPresent(IotOpeationFillOrderDO::getOrderName, reqVO.getOrderName())
                 .eqIfPresent(IotOpeationFillOrderDO::getOrderType, reqVO.getOrderType())
                 .eqIfPresent(IotOpeationFillOrderDO::getOrderStatus, reqVO.getOrderStatus())
-                .inIfPresent(IotOpeationFillOrderDO::getUserName, names)
-                .inIfPresent(IotOpeationFillOrderDO::getUserId, userIds)
+                .likeIfPresent(IotOpeationFillOrderDO::getUserName, reqVO.getUserName())
+                .eqIfPresent(IotOpeationFillOrderDO::getUserId, reqVO.getUserId())
                 .betweenIfPresent(IotOpeationFillOrderDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(IotOpeationFillOrderDO::getId));
     }

+ 38 - 22
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/IotOperationFillJob.java

@@ -6,7 +6,9 @@ import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillOrderMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
@@ -20,6 +22,8 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * @author yc
@@ -35,13 +39,15 @@ public class IotOperationFillJob implements JobHandler {
 
     @Autowired
     private IotOpeationFillMapper iotOpeationFillMapper;
+    @Autowired
+    private IotOpeationFillOrderMapper iotOpeationFillOrderMapper;
 
     @Override
     @TenantIgnore
     public String execute(String param) throws Exception {
         TenantContextHolder.setIgnore(true);
         System.out.println("***********创建运行记录填报工单开始执行*********8");
-        List<IotOpeationFillDO> orderList = new ArrayList<>();
+        List<IotOpeationFillOrderDO> orderList = new ArrayList<>();
         List<IotOpeationFillDO> pdList = iotOpeationFillMapper.pdList();
         List<IotOpeationFillDO> rhList = iotOpeationFillMapper.rhList();
         List<IotOpeationFillDO> rdList = iotOpeationFillMapper.rdList();
@@ -49,10 +55,10 @@ public class IotOperationFillJob implements JobHandler {
 
         for (IotOpeationFillDO pd:pdList) {
 
-            IotOpeationFillDO fillDO = new IotOpeationFillDO();
+            IotOpeationFillOrderDO fillDO = new IotOpeationFillOrderDO();
 
             boolean exists = rhList.stream()
-                    .anyMatch(rh -> rh.getDeptId().equals(pd.getDeptId()));
+                    .anyMatch(rh -> rh.getId().equals(pd.getDeptId()));
             if(exists){
                 fillDO.setOrderName("瑞恒兴域"+LocalDate.now()+"运行记录填报");
                 fillDO.setDeptId(pd.getDeptId());
@@ -64,7 +70,7 @@ public class IotOperationFillJob implements JobHandler {
             }
 
             boolean exists1 = rdList.stream()
-                    .anyMatch(rd -> rd.getDeptId().equals(pd.getDeptId()));
+                    .anyMatch(rd -> rd.getId().equals(pd.getDeptId()));
 
             if(exists1){
                 fillDO.setOrderName("瑞都石油"+LocalDate.now()+"运行记录填报");
@@ -77,7 +83,7 @@ public class IotOperationFillJob implements JobHandler {
             }
 
             boolean exists2 = ryList.stream()
-                    .anyMatch(ry -> ry.getDeptId().equals(pd.getDeptId()));
+                    .anyMatch(ry -> ry.getId().equals(pd.getDeptId()));
 
             if(exists2){
                 fillDO.setOrderName("瑞鹰国际"+LocalDate.now()+"运行记录填报");
@@ -90,41 +96,51 @@ public class IotOperationFillJob implements JobHandler {
             }
         }
 
-        iotOpeationFillMapper.insertFillOrder(orderList);
+        //iotOpeationFillMapper.insertFillOrder(orderList);
+        List<IotOpeationFillDO> deviceList = iotOpeationFillMapper.getFillDevices();
+
+        List<Integer> idList = deviceList.stream().map(IotOpeationFillDO::getUserId).collect(Collectors.toList());
 
 
 
+        List<IotOpeationFillOrderDO> orderList1 = orderList.stream()
+                .filter(obj -> idList.contains(obj.getUserId()))
+                .collect(Collectors.toList());
 
+        iotOpeationFillOrderMapper.insertBatch(orderList1);
 
-       /* Long[] deptArray = {157L,158L,163L};
-        for (Long a:deptArray) {
-            IotOpeationFillDO fillDO = new IotOpeationFillDO();
-            fillDO.setDeptId(a);
-            if(a==157L){
-                fillDO.setOrderName("瑞恒兴域运行记录填报");
-            }else if(a==158L){
-                fillDO.setOrderName("瑞鹰国际运行记录填报");
-            }else{
-                fillDO.setOrderName("四川瑞都运行记录填报");
+
+        for (IotOpeationFillDO device:deviceList) {
+            System.out.println("deviceUser"+device.getUserId());
+            for (IotOpeationFillOrderDO order:orderList1) {
+                System.out.println("orderId"+order.getUserId());
+                if(device.getUserId().intValue()==order.getUserId().intValue()){
+                    System.out.println("-----相等-------");
+                    device.setOrderId(order.getId());
+                }
             }
-            fillDO.setOrderType("计划生成");
-            fillDO.setOrderStatus(0);
-            fillDO.setCreateTime(LocalDateTime.now());
-            orderList.add(fillDO);
-        }*/
+        }
+
+
+
 
         System.out.println("***********创建运行记录填报工单执行结束*********8");
 
+
+
+
+
+
         System.out.println("*****************插入运行记录设备表***********************");
         IotOpeationFillPageReqVO vo = new IotOpeationFillPageReqVO();
         List<IotOpeationFillDO> fillList = iotOpeationFillMapper.fillList(vo);
         if(fillList.size()==0){
-            List<IotOpeationFillDO> deviceList = iotOpeationFillMapper.getFillDevices();
             for (IotOpeationFillDO re:deviceList) {
                 re.setDeviceId(re.getId());
             }
             iotOpeationFillMapper.insertFill(deviceList);
         }
+
         System.out.println("*****************插入运行记录设备表完成***********************");
         return "创建成功";
     }

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

@@ -4,21 +4,14 @@ import java.util.*;
 import javax.validation.*;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-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.iotopeationfill.IotOpeationFillOrderDO;
-import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 
 /**
  * 运行记录填报 Service 接口
@@ -79,9 +72,9 @@ public interface IotOpeationFillService {
 
     PageResult<IotOpeationFillOrderDO> fillList1(IotOpeationFillPageReqVO vo);
 
-    List<IotOpeationFillDO> pdList();
+    List<IotOpeationFillDO> pdList1(IotOpeationFillDO vo);
 
-    PageResult<IotOpeationFillOrderDO> fillList2(IotOpeationFillPageReqVO vo,List<Integer> userIds,List<String> nickNames);
+    PageResult<IotOpeationFillOrderDO> fillList2(IotOpeationFillPageReqVO vo,List<Long> deptIds);
 
 
 
@@ -98,6 +91,8 @@ public interface IotOpeationFillService {
 
     List<IotDeviceRunLogDO> getDeivceFillInfo(IotDeviceRunLogDO vo);
 
+    List<IotDeviceRunLogDO> getMaxFillInfo(IotDeviceRunLogDO vo);
+
     /**
      * 更新工单状态
      * @param vo
@@ -107,4 +102,8 @@ public interface IotOpeationFillService {
 
     int updateFillOrder1(IotDeviceRunLogDO vo);
 
+    int updateFillOrder2(IotDeviceRunLogDO vo);
+
+    List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo);
+
 }

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

@@ -1,22 +1,15 @@
 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.dataobject.iotopeationfill.IotOpeationFillOrderDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillOrderMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -26,7 +19,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 
 
-import java.util.Collection;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -131,13 +123,13 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
     }
 
     @Override
-    public List<IotOpeationFillDO> pdList() {
-        return iotOpeationFillMapper.pdList();
+    public List<IotOpeationFillDO> pdList1(IotOpeationFillDO vo) {
+        return iotOpeationFillMapper.pdList1(vo);
     }
 
     @Override
-    public PageResult<IotOpeationFillOrderDO> fillList2(IotOpeationFillPageReqVO vo,List<Integer> userIds,List<String> nickNames) {
-        return iotOpeationFillOrderMapper.selectPage1(vo,userIds,nickNames);
+    public PageResult<IotOpeationFillOrderDO> fillList2(IotOpeationFillPageReqVO vo,List<Long> deptIds) {
+        return iotOpeationFillOrderMapper.selectPage1(vo,deptIds);
     }
 
 
@@ -161,6 +153,11 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
         return iotOpeationFillMapper.getDeivceFillInfo(vo);
     }
 
+    @Override
+    public List<IotDeviceRunLogDO> getMaxFillInfo(IotDeviceRunLogDO vo) {
+        return iotOpeationFillMapper.getMaxFillInfo(vo);
+    }
+
     @Override
     public int updateFillOrder(IotDeviceRunLogDO vo) {
         return iotOpeationFillMapper.updateFillOrder(vo);
@@ -171,4 +168,14 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
         return iotOpeationFillMapper.updateFillOrder1(vo);
     }
 
+    @Override
+    public int updateFillOrder2(IotDeviceRunLogDO vo) {
+        return iotOpeationFillMapper.updateFillOrder2(vo);
+    }
+
+    @Override
+    public List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo) {
+        return iotOpeationFillMapper.fillRecords(vo);
+    }
+
 }

+ 124 - 54
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -5,34 +5,38 @@
 
     <select id="getFillDevices"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+
         select
             distinct
-            a.id,
-            a.dept_id,
-            a.device_code,
-            a.device_name,
-            b.device_category_id
+            c.id,
+            c.dept_id,
+            c.device_code,
+            c.device_name,
+            b.device_category_id,
+            d.person_id user_id
         from
-            rqiot.rq_iot_device a,
-            rqiot.rq_iot_model_template b
+            rqiot.rq_iot_model_template a,
+            rqiot.rq_iot_model_template_attrs b,
+            rqiot.rq_iot_device c,
+            rqiot.rq_iot_device_person d
         where
-            a.asset_class = b.device_category_id
+            a.device_category_id = b.device_category_id
           and
-            a.deleted = 0
+            a.device_category_id = c.asset_class
           and
-            b.deleted = 0
+            c.id = d.device_id
           and
-            a.device_status in ('sg','dm')
+            c.device_status in ('sg','dm')
     </select>
 
 
     <insert id="insertFill"
     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)
+       insert into rqiot.rq_iot_opeation_fill(device_id,device_code,device_name,device_category_id,create_time,dept_id,order_id)
            values
         <foreach collection="list" item="item" separator=",">
             (#{item.deviceId},#{item.deviceCode},#{item.deviceName},
-            #{item.deviceCategoryId},#{item.createTime},#{item.deptId})
+            #{item.deviceCategoryId},#{item.createTime},#{item.deptId},#{item.orderId})
         </foreach>
     </insert>
 
@@ -94,68 +98,117 @@
 
     <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 distinct a.*,
-        b.name org_name FROM
-        rqiot.rq_iot_opeation_fill a,
-        rqiot.system_dept b,
+        select
+            distinct
+            a.*,
+            b.name org_name
+        from
+            rq_iot_opeation_fill a,
+            system_dept b,
+            rqiot.rq_iot_model_template_attrs c
+        where
+            a.dept_id = b.id
+          and
+            a.device_category_id = c.device_category_id
+
+            <if test="orderId != null  and orderId != ''">
+                and a.order_id = #{orderId}
+            </if>
+    </select>
+
+    <select id="fillListByDeptId" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        select
+        distinct
+        a.*,
+        b.name org_name
+        from
+        rq_iot_opeation_fill a,
+        system_dept b,
         rqiot.rq_iot_model_template_attrs c
-        WHERE DATE(a.create_time) = DATE(#{createTime})
-        <if test="userId != null  and userId != ''">
-            and a.device_id in (select device_id from
-            rqiot.rq_iot_device_person where person_id = #{userId})
-        </if>
-        and
+        where
         a.dept_id = b.id
         and
         a.device_category_id = c.device_category_id
 
+        <if test="orderId != null  and orderId != ''">
+            and a.order_id = #{orderId}
+        </if>
+        <if test="deviceId != null  and deviceId != ''">
+            and a.device_id = #{deviceId}
+        </if>
     </select>
 
-    <select id="fillListByDeptId" 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 in (SELECT d1.id
-            FROM system_dept d1
-            JOIN system_dept d2 ON d2.id = d1.parent_id
-            WHERE d2.parent_id = #{deptId}
-            union
-            select id from system_dept where id = #{deptId})
-        </if>
+    <select id="fillRecords" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO">
+        select a.*
+        from
+               rq_iot_opeation_fill_order a,
+               rq_iot_opeation_fill b
+        where
+               a.id = b.order_id
+          and
+               b.device_id = #{deviceId}
     </select>
 
     <select id="rhList"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        SELECT d1.id dept_id
-        FROM system_dept d1
-                 JOIN system_dept d2 ON d2.id = d1.parent_id
-        WHERE d2.parent_id = 157
-        union
-        select id from system_dept where id = 157
+        SELECT au.id, au.name, au.parent_id
+        FROM (SELECT * FROM system_dept WHERE parent_id IS NOT NULL) au,
+             (SELECT @parent_id := '157') pd
+        WHERE FIND_IN_SET(parent_id, @parent_id) > 0
+          AND @parent_id := concat(@parent_id, ',', id)
+        UNION
+        SELECT id, name, parent_id
+        FROM system_dept
+        WHERE id = '157'
+        ORDER BY id;
     </select>
 
     <select id="rdList"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        SELECT d1.id dept_id
-        FROM system_dept d1
-                 JOIN system_dept d2 ON d2.id = d1.parent_id
-        WHERE d2.parent_id = 163
-        union
-        select id from system_dept where id = 163
+        SELECT au.id, au.name, au.parent_id
+        FROM (SELECT * FROM system_dept WHERE parent_id IS NOT NULL) au,
+             (SELECT @parent_id := '163') pd
+        WHERE FIND_IN_SET(parent_id, @parent_id) > 0
+          AND @parent_id := concat(@parent_id, ',', id)
+        UNION
+        SELECT id, name, parent_id
+        FROM system_dept
+        WHERE id = '163'
+        ORDER BY id;
     </select>
 
     <select id="ryList"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
-        SELECT d1.id dept_id
-        FROM system_dept d1
-                 JOIN system_dept d2 ON d2.id = d1.parent_id
-        WHERE d2.parent_id = 158
-        union
-        select id from system_dept where id = 158
+        SELECT au.id, au.name, au.parent_id
+        FROM (SELECT * FROM system_dept WHERE parent_id IS NOT NULL) au,
+             (SELECT @parent_id := '158') pd
+        WHERE FIND_IN_SET(parent_id, @parent_id) > 0
+          AND @parent_id := concat(@parent_id, ',', id)
+        UNION
+        SELECT id, name, parent_id
+        FROM system_dept
+        WHERE id = '158'
+        ORDER BY id;
+    </select>
+
+
+    <select id="pdList1" parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT au.id, au.name, au.parent_id
+        FROM (SELECT * FROM system_dept WHERE parent_id IS NOT NULL) au,
+             (SELECT @parent_id := #{id}) pd
+        WHERE FIND_IN_SET(parent_id, @parent_id) > 0
+          AND @parent_id := concat(@parent_id, ',', id)
+        UNION
+        SELECT id, name, parent_id
+        FROM system_dept
+        WHERE id = #{id}
+        ORDER BY id;
     </select>
 
+
     <select id="pdList" resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
         select
             distinct
@@ -242,6 +295,19 @@
         limit 1
     </select>
 
+    <select id="getMaxFillInfo" 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 max(total_run_time)total_run_time from rq_iot_device_run_log  where  device_id = #{deviceId}
+
+    </select>
+
     <update id="updateFillOrder" parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO">
         update rqiot.rq_iot_opeation_fill_order set order_status = 1 where id = #{id}
     </update>
@@ -249,4 +315,8 @@
         update rqiot.rq_iot_opeation_fill_order set order_status = 0 where id = #{id}
     </update>
 
+    <update id="updateFillOrder2" parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO">
+        update rqiot.rq_iot_opeation_fill_order set order_status = 2 where id = #{id}
+    </update>
+
 </mapper>