Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

zhangcl 1 kuukausi sitten
vanhempi
commit
dc5e457df8

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotoperationplan/vo/IotOperationPlanSaveReqVO.java

@@ -57,6 +57,6 @@ public class IotOperationPlanSaveReqVO {
     @Schema(description = "首次执行时间")
     private LocalDateTime beginCreateTime;
 
-    Collection<IotOperationPlanDevDO> planDevList;
+    List<IotOperationPlanDevDO> planDevList;
 
 }

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

@@ -125,6 +125,9 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     @TenantIgnore
     IPage<IotDeviceRespVO> getFillDevices1(IPage<IotOpeationFillPageReqVO> page,@Param("deviceIds") Collection<Long> deviceIds);
 
+    @TenantIgnore
+    List<IotDeviceRespVO> getFillDevices2(@Param("deptIds") Collection<Long> deptIds);
+
     @TenantIgnore
     List<DeviceZHBDDO> carList();
 

+ 26 - 10
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/IotOperationPlanJob.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.module.pms.constant.PmsConstants;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
@@ -16,6 +17,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillOrde
 import cn.iocoder.yudao.module.pms.dal.mysql.iotoperationplan.IotOperationPlanMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotoperationplandev.IotOperationPlanDevMapper;
 import cn.iocoder.yudao.module.pms.message.PmsMessage;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +57,8 @@ public class IotOperationPlanJob implements JobHandler {
     private IotOperationPlanMapper planMapper;
     @Resource
     private IotOperationPlanDevMapper planDevMapper;
+    @Resource
+    private DeptService deptService;
 
     /**
      * 1、查询开启状态运行计划
@@ -88,11 +92,16 @@ public class IotOperationPlanJob implements JobHandler {
                         );
 
 
-                        List<Long> planIds= new ArrayList<>();
-                        planIds.add(planDO.getId());
+                        Set<Long> idList = new HashSet<>();
+                        if(Objects.nonNull(planDO.getDeptId())){
+                            idList =  deptService.getChildDeptIdListFromCache(planDO.getDeptId());
+                            idList.add(planDO.getDeptId());
+                        }
+
+
                         //2、根据计划获取设备ID
-                        List<IotOperationPlanDevDO> devList = planDevMapper.devIdList(planIds);
-                        List<Long> devIdList= devList.stream().map(IotOperationPlanDevDO::getId).collect(Collectors.toList());
+                        List<IotDeviceRespVO> devList = iotOpeationFillMapper.getFillDevices2(idList);
+                        List<Long> devIdList= devList.stream().map(IotDeviceRespVO::getId).collect(Collectors.toList());
                         //3、根据设备ID生成主表数据
                         List<IotOpeationFillOrderDO> orderList = new ArrayList<>();
                         List<IotOpeationFillDO> pdList = iotOpeationFillMapper.pdList(devIdList);
@@ -122,11 +131,18 @@ public class IotOperationPlanJob implements JobHandler {
                                     .toInstant()                    // 转为 Instant(时间戳)
                     );
 
-                    List<Long> planIds= new ArrayList<>();
-                    planIds.add(planDO.getId());
+
+
+                    Set<Long> idList = new HashSet<>();
+                    if(Objects.nonNull(planDO.getDeptId())){
+                        idList =  deptService.getChildDeptIdListFromCache(planDO.getDeptId());
+                        idList.add(planDO.getDeptId());
+                    }
+
+
                     //2、根据计划获取设备ID
-                    List<IotOperationPlanDevDO> devList = planDevMapper.devIdList(planIds);
-                    List<Long> devIdList= devList.stream().map(IotOperationPlanDevDO::getId).collect(Collectors.toList());
+                    List<IotDeviceRespVO> devList = iotOpeationFillMapper.getFillDevices2(idList);
+                    List<Long> devIdList= devList.stream().map(IotDeviceRespVO::getId).collect(Collectors.toList());
                     //3、根据设备ID生成主表数据
                     List<IotOpeationFillOrderDO> orderList = new ArrayList<>();
                     List<IotOpeationFillDO> pdList = iotOpeationFillMapper.pdList(devIdList);
@@ -205,7 +221,7 @@ public class IotOperationPlanJob implements JobHandler {
         iotOpeationFillOrderMapper.insertBatch(orderList1);
 
 
-        /*//发送钉钉通知
+        //发送钉钉通知
         pmsThreadPoolTaskExecutor.execute(()->{
             try{
                 for (IotOpeationFillOrderDO order:orderList1) {
@@ -214,7 +230,7 @@ public class IotOperationPlanJob implements JobHandler {
             }catch (Exception e){
                 e.printStackTrace();
             }
-        });*/
+        });
 
 
         for (IotOpeationFillDO device:deviceList) {

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

@@ -43,7 +43,12 @@ public class IotOperationPlanServiceImpl implements IotOperationPlanService {
         // 返回
         for (IotOperationPlanDevDO planDevDO:createReqVO.getPlanDevList()) {
             planDevDO.setPlanId(iotOperationPlan.getId());
+            System.out.println(planDevDO.getId());
         }
+
+        System.out.println(createReqVO.getPlanDevList().size());
+
+
         planDevMapper.insertBatch(createReqVO.getPlanDevList());
         return iotOperationPlan.getId();
     }

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

@@ -99,6 +99,60 @@
     </select>
 
 
+
+    <select id="getFillDevices2"
+            resultType="cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO">
+        select
+        distinct
+        c.id,
+        c.dept_id,
+        c.device_code,
+        c.device_name,
+        b.device_category_id,
+        d.person_id user_id,
+        e.name dept_name,
+        f.nickname,
+        g.name,
+        c.device_status
+        from
+        rq_iot_model_template a,
+        rq_iot_model_template_attrs b,
+        rq_iot_device c,
+        rq_iot_device_person d,
+        system_dept e,
+        system_users f,
+        rq_iot_product_classify g
+        where
+        a.device_category_id = b.device_category_id
+        and
+        a.device_category_id = c.asset_class
+        and
+        c.id = d.device_id
+        and
+        c.dept_id = e.id
+        and
+        d.person_id = f.id
+        and
+        a.device_category_id = g.id
+        and
+        c.device_status in ('sg','dm')
+        and
+        a.deleted = 0
+        and
+        c.deleted = 0
+        and
+        d.deleted = 0
+        <if test="deptIds != null and !deptIds.isEmpty()">
+            and e.id in
+            <foreach collection="deptIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        order by c.dept_id
+    </select>
+
+
+
     <insert id="insertFill"
     parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
        insert into rq_iot_opeation_fill(device_id,device_code,device_name,device_category_id,create_time,dept_id,order_id)