Răsfoiți Sursa

pms 设备调拨 添加 时间区间查询

zhangcl 3 ore în urmă
părinte
comite
2604386338

+ 14 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotdeviceallotlog/IotDeviceAllotLogMapper.java

@@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDevi
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
+import java.util.List;
+
 /**
 /**
  * 设备调拨日志 Mapper
  * 设备调拨日志 Mapper
  *
  *
@@ -17,6 +19,18 @@ public interface IotDeviceAllotLogMapper extends BaseMapperX<IotDeviceAllotLogDO
 
 
     default PageResult<IotDeviceAllotLogDO> selectPage(IotDeviceAllotLogPageReqVO reqVO) {
     default PageResult<IotDeviceAllotLogDO> selectPage(IotDeviceAllotLogPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<IotDeviceAllotLogDO>()
         return selectPage(reqVO, new LambdaQueryWrapperX<IotDeviceAllotLogDO>()
+                .eqIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceId())
+                .inIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceIds())
+                .eqIfPresent(IotDeviceAllotLogDO::getOldDeptId, reqVO.getOldDeptId())
+                .eqIfPresent(IotDeviceAllotLogDO::getNewDeptId, reqVO.getNewDeptId())
+                .eqIfPresent(IotDeviceAllotLogDO::getReason, reqVO.getReason())
+                .eqIfPresent(IotDeviceAllotLogDO::getRemark, reqVO.getRemark())
+                .betweenIfPresent(IotDeviceAllotLogDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(IotDeviceAllotLogDO::getId));
+    }
+
+    default List<IotDeviceAllotLogDO> selectList(IotDeviceAllotLogPageReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<IotDeviceAllotLogDO>()
                 .eqIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceId())
                 .eqIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceId())
                 .inIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceIds())
                 .inIfPresent(IotDeviceAllotLogDO::getDeviceId, reqVO.getDeviceIds())
                 .eqIfPresent(IotDeviceAllotLogDO::getOldDeptId, reqVO.getOldDeptId())
                 .eqIfPresent(IotDeviceAllotLogDO::getOldDeptId, reqVO.getOldDeptId())

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

@@ -26,7 +26,7 @@ public interface IotDevicePersonLogMapper extends BaseMapperX<IotDevicePersonLog
                 .eqIfPresent(IotDevicePersonLogDO::getReason, reqVO.getReason())
                 .eqIfPresent(IotDevicePersonLogDO::getReason, reqVO.getReason())
                 .eqIfPresent(IotDevicePersonLogDO::getRemark, reqVO.getRemark())
                 .eqIfPresent(IotDevicePersonLogDO::getRemark, reqVO.getRemark())
                 .betweenIfPresent(IotDevicePersonLogDO::getCreateTime, reqVO.getCreateTime())
                 .betweenIfPresent(IotDevicePersonLogDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(IotDevicePersonLogDO::getDeviceId));
+                .orderByDesc(IotDevicePersonLogDO::getId));
     }
     }
 
 
 }
 }

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

@@ -24,7 +24,7 @@ public interface IotDeviceStatusLogMapper extends BaseMapperX<IotDeviceStatusLog
                 .eqIfPresent(IotDeviceStatusLogDO::getReason, reqVO.getReason())
                 .eqIfPresent(IotDeviceStatusLogDO::getReason, reqVO.getReason())
                 .eqIfPresent(IotDeviceStatusLogDO::getRemark, reqVO.getRemark())
                 .eqIfPresent(IotDeviceStatusLogDO::getRemark, reqVO.getRemark())
                 .betweenIfPresent(IotDeviceStatusLogDO::getCreateTime, reqVO.getCreateTime())
                 .betweenIfPresent(IotDeviceStatusLogDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(IotDeviceStatusLogDO::getDeviceId));
+                .orderByDesc(IotDeviceStatusLogDO::getId));
     }
     }
 
 
 }
 }

+ 25 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceServiceImpl.java

@@ -13,6 +13,7 @@ import cn.iocoder.yudao.framework.common.util.object.PageUtils;
 import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 import cn.iocoder.yudao.module.pms.ThingsModelDTO;
 import cn.iocoder.yudao.module.pms.ThingsModelDTO;
 import cn.iocoder.yudao.module.pms.controller.admin.TableDataInfo;
 import cn.iocoder.yudao.module.pms.controller.admin.TableDataInfo;
+import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicecategorytemplateattrs.vo.IotDeviceProperty;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicecategorytemplateattrs.vo.IotDeviceProperty;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicematerial.vo.IotDeviceMaterialRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicematerial.vo.IotDeviceMaterialRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
@@ -26,6 +27,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotInfoClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotInfoClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotTreeDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotTreeDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotZHBD.DeviceZHBDDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotZHBD.DeviceZHBDDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceperson.IotDevicePersonDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceperson.IotDevicePersonDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
 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.IotModelTemplateAttrsDO;
@@ -34,6 +36,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotInfoClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotInfoClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotTreeMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotTreeMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.iotdeviceallotlog.IotDeviceAllotLogMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicerunlog.IotDeviceRunLogMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicerunlog.IotDeviceRunLogMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotmodel.IotModelMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotmodel.IotModelMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
@@ -74,6 +77,7 @@ import org.springframework.web.client.RestTemplate;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.atomic.AtomicReference;
@@ -143,6 +147,9 @@ public class IotDeviceServiceImpl implements IotDeviceService {
     @Autowired
     @Autowired
     private IotTdParamsMapper iotTdParamsMapper;
     private IotTdParamsMapper iotTdParamsMapper;
 
 
+    @Autowired
+    private IotDeviceAllotLogMapper iotDeviceAllotLogMapper;
+
 
 
     @Override
     @Override
     public String getDeviceCompany(Long id) {
     public String getDeviceCompany(Long id) {
@@ -852,6 +859,24 @@ public class IotDeviceServiceImpl implements IotDeviceService {
             ids = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
             ids = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
             ids.add(pageReqVO.getDeptId());
             ids.add(pageReqVO.getDeptId());
         }
         }
+        // 调拨时间区间搜索 查询在指定时间区间内调拨过的设备
+        LocalDateTime[] allotDateTime = pageReqVO.getCreateTime();
+        Set<Long> deviceIds = new HashSet<>();
+        if (ObjUtil.isNotEmpty(allotDateTime)) {
+            IotDeviceAllotLogPageReqVO reqVO = new IotDeviceAllotLogPageReqVO();
+            reqVO.setCreateTime(allotDateTime);
+            List<IotDeviceAllotLogDO> deviceAllots = iotDeviceAllotLogMapper.selectList(reqVO);
+            if (CollUtil.isNotEmpty(deviceAllots)) {
+                deviceAllots.forEach(allot -> {
+                    deviceIds.add(allot.getDeviceId());
+                });
+                if (CollUtil.isNotEmpty(deviceIds)) {
+                    pageReqVO.setDeviceIds(new ArrayList<>(deviceIds));
+                }
+            } else {
+                return PageResult.empty();
+            }
+        }
         try {
         try {
             IPage<IotDeviceRespVO> page = iotDeviceMapper.deviceAllots(
             IPage<IotDeviceRespVO> page = iotDeviceMapper.deviceAllots(
                     new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO, ids);
                     new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO, ids);

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotDeviceMapper.xml

@@ -402,6 +402,12 @@
                 #{key}
                 #{key}
             </foreach>
             </foreach>
         </if>
         </if>
+        <if test="reqVO.deviceIds != null and reqVO.deviceIds.size &gt; 0">
+            AND t.id IN
+            <foreach collection="reqVO.deviceIds" index="index" item="key" open="(" separator="," close=")">
+                #{key}
+            </foreach>
+        </if>
         <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
         <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
             AND t.device_name LIKE concat(concat("%",#{reqVO.deviceName}),"%")
             AND t.device_name LIKE concat(concat("%",#{reqVO.deviceName}),"%")
         </if>
         </if>