Explorar o código

Merge branch 'loaclcode'

yuanchao hai 1 semana
pai
achega
40c8a7d8c1

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

@@ -485,8 +485,8 @@ public class IotOpeationFillController {
             for (IotModelTemplateAttrsDO attrsDO:list) {
 
 
-                //根据日报取值设备赋值
-                if(reportList.size()>0){
+
+
 
                     List<IotOpeationFillDO> cxLixt = reportList.stream().filter(e->e.getOrgName().equals(attrsDO.getName())).collect(Collectors.toList());
                     //虚拟设备取值
@@ -552,7 +552,6 @@ public class IotOpeationFillController {
                         }
                     }
 
-                }
 
                 attrsDO.setIsCollection(0);
                 attrsDO.setIsSum(0);

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

@@ -140,6 +140,9 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     @TenantIgnore
     List<IotOpeationFillDO> pdList(@Param("deviceIds")Collection<Long> deviceIds);
 
+    @TenantIgnore
+    List<IotOpeationFillDO> pdListRh(@Param("deviceIds")Collection<Long> deviceIds);
+
     @TenantIgnore
     List<IotOpeationFillDO> pdList2(@Param("deviceIds")Collection<Long> deviceIds);
 

+ 69 - 8
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/IotOperationPlanJob.java

@@ -237,19 +237,23 @@ public class IotOperationPlanJob implements JobHandler {
         List<Long> rpdList = rpList.stream().map(IotOperationPlanDO::getDeptId).collect(Collectors.toList());
 
 
-        Set<Long> idList1 = new HashSet<>();
-        idList1 =  deptService.getChildDeptIdListFromCache(163L);
-        idList1.add(163L);
+        Set<Long> rdIdList = new HashSet<>();
+        rdIdList =  deptService.getChildDeptIdListFromCache(163L);
+        rdIdList.add(163L);
 
-        boolean exist = idList1.contains(plan.getDeptId());
+        Set<Long> rhIdList = new HashSet<>();
+        rhIdList =  deptService.getChildDeptIdListFromCache(157L);
+        rhIdList.add(157L);
+
+
+        boolean exist = rdIdList.contains(plan.getDeptId());
 
         if(!exist){
             //1、有指定队伍插入指定队伍日报设备
-            //2、无指定队伍全部队伍插入日报设备
+
             if(rpList.size()>0){
                 //筛选日报工单
                 List<IotOpeationFillOrderDO> virOrderList = orderList1.stream().filter(e->rpdList.contains(e.getDeptId())).collect(Collectors.toList());
-
                 if(virOrderList.size()>0){
                     //创建日报设备
                     List <IotOpeationFillDO> devList = opeationFillService.reportMethod(virOrderList);
@@ -257,12 +261,69 @@ public class IotOperationPlanJob implements JobHandler {
                     iotOpeationFillMapper.insertFill(devList);
 
                 }
+
             }
+
+            boolean rhContain = rhIdList.contains(plan.getDeptId());
+
+            if(rhContain){
+                //2、瑞恒无指定队伍全部队伍插入日报设备
+                //筛选正常工单部门id
+                List<Long> deptIdList = orderList1.stream().map(IotOpeationFillOrderDO::getDeptId).collect(Collectors.toList());
+                //查询瑞恒所有责任人数据
+                Set<Long> pIdList = new HashSet<>();
+                pIdList =  deptService.getChildDeptIdListFromCache(plan.getDeptId());
+                pIdList.add(plan.getDeptId());
+                List<IotOpeationFillDO> rhPdList = iotOpeationFillMapper.pdListRh(pIdList);
+                //筛选与正常工单不同部门的责任人数据
+                List<IotOpeationFillDO> verRPList = rhPdList.stream().filter(e->!deptIdList.contains(e.getDeptId())).collect(Collectors.toList());
+                //筛选小队责任人数据
+                // 使用迭代器遍历集合
+                Iterator<IotOpeationFillDO> iterator = verRPList.iterator();
+                while (iterator.hasNext()) {
+                    IotOpeationFillDO rp = iterator.next();
+                    IotOpeationFillOrderDO rpOrder = new IotOpeationFillOrderDO();
+                    rpOrder.setDeptId(rp.getDeptId());
+                    List<IotOpeationFillOrderDO> childList = iotOpeationFillMapper.childList(rpOrder);
+
+                    // 当childList有元素时,通过迭代器删除当前元素
+                    if (childList.size() > 0) {
+                        iterator.remove(); // 使用迭代器的remove方法安全删除
+                    }
+                }
+                //创建虚拟工单
+                if(verRPList.size()>0){
+                    List<IotOpeationFillOrderDO> virOrderList = new ArrayList<>();
+                    for (IotOpeationFillDO pd:verRPList) {
+                        IotOpeationFillOrderDO fillDO = new IotOpeationFillOrderDO();
+                        fillDO.setOrderName(pd.getOrgName()+"/"+LocalDate.now()+"运行记录填报");
+                        fillDO.setDeptId(pd.getDeptId());
+                        fillDO.setOrderStatus(0);
+                        fillDO.setCreateTime(LocalDateTime.now());
+                        fillDO.setUserName(pd.getUserName());
+                        fillDO.setUserId(pd.getUserId());
+                        fillDO.setMobile(pd.getMobile());
+                        virOrderList.add(fillDO);
+                    }
+                    if(virOrderList.size()>0){
+                        orderList1.addAll(virOrderList);
+                        //插入虚拟工单工单
+                        iotOpeationFillOrderMapper.insertBatch(virOrderList);
+
+                    }
+                }
+                //创建日报设备
+                List <IotOpeationFillDO> devList = opeationFillService.reportMethod(orderList1);
+                //插入日报设备
+                iotOpeationFillMapper.insertFill(devList);
+            }
+
+
         }
 
 
 
-        //发送钉钉通知
+        /*//发送钉钉通知
         pmsThreadPoolTaskExecutor.execute(()->{
             try{
                 for (IotOpeationFillOrderDO order:orderList1) {
@@ -271,7 +332,7 @@ public class IotOperationPlanJob implements JobHandler {
             }catch (Exception e){
                 e.printStackTrace();
             }
-        });
+        });*/
 
 
         //正常工单设备

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

@@ -557,6 +557,33 @@
         </if>
     </select>
 
+    <select id="pdListRh" resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        select
+        distinct
+        b.id user_id,
+        b.nickname user_name,
+        c.id dept_id,
+        b.mobile,
+        c.name orgName
+        from
+        rq_iot_device_person a
+        left join
+        system_users b
+        on
+        a.person_id = b.id
+        left join
+        system_dept c
+        on
+        b.dept_id = c.id
+        where b.id is not null
+        <if test="deviceIds != null and !deviceIds.isEmpty()">
+            and c.id  in
+            <foreach collection="deviceIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
+
 
     <select id="allOrder" resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO">
         select distinct user_name