|
|
|
@ -9,7 +9,9 @@ import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.dromara.dms.domain.DmsBaseDeviceInstall;
|
|
|
|
|
import org.dromara.dms.domain.DmsBaseMachineInfo;
|
|
|
|
|
import org.dromara.dms.mapper.DmsBaseDeviceInstallMapper;
|
|
|
|
|
import org.dromara.dms.mapper.DmsBaseMachineInfoMapper;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.dromara.dms.domain.bo.DmsBaseTransferInfoBo;
|
|
|
|
@ -41,6 +43,8 @@ public class DmsBaseTransferInfoServiceImpl implements IDmsBaseTransferInfoServi
|
|
|
|
|
|
|
|
|
|
private final DmsBaseMachineInfoMapper baseMachineInfoMapper;
|
|
|
|
|
|
|
|
|
|
private final DmsBaseDeviceInstallMapper dmsBaseDeviceInstallMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询设备转移信息
|
|
|
|
|
*
|
|
|
|
@ -153,8 +157,26 @@ public class DmsBaseTransferInfoServiceImpl implements IDmsBaseTransferInfoServi
|
|
|
|
|
throw new ServiceException("转移前必须有安装位置");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 3. 校验转移时间不能小于之前记录的转移时间
|
|
|
|
|
// 3. 校验转移时间不能小于之前记录的安装时间和转移时间
|
|
|
|
|
if (entity.getDeviceTransferTime() != null) {
|
|
|
|
|
|
|
|
|
|
//校验转移时间不能小于之前记录的安装时间
|
|
|
|
|
List<DmsBaseDeviceInstall> installRecords = dmsBaseDeviceInstallMapper.selectList(
|
|
|
|
|
JoinWrappers.lambda(DmsBaseDeviceInstall.class)
|
|
|
|
|
.eq(DmsBaseDeviceInstall::getMachineId, entity.getMachineId())
|
|
|
|
|
.select(DmsBaseDeviceInstall::getInstallTime)
|
|
|
|
|
.orderByAsc(DmsBaseDeviceInstall::getInstallTime)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
boolean hasInvalidInstallTime = installRecords.stream()
|
|
|
|
|
//anyMatch 判断是否有任意一个安装时间大于转移时间,有一个就停止遍历
|
|
|
|
|
.anyMatch(installRecord -> installRecord.getInstallTime() != null &&
|
|
|
|
|
entity.getDeviceTransferTime().before(installRecord.getInstallTime()));
|
|
|
|
|
|
|
|
|
|
if (hasInvalidInstallTime) {
|
|
|
|
|
throw new ServiceException("设备转移时间不能小于设备安装时间");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 使用分页功能限制记录数量
|
|
|
|
|
Page<DmsBaseTransferInfo> page = new Page<>(1, 100);
|
|
|
|
|
IPage<DmsBaseTransferInfo> resultPage = baseMapper.selectPage(page,
|
|
|
|
@ -167,6 +189,7 @@ public class DmsBaseTransferInfoServiceImpl implements IDmsBaseTransferInfoServi
|
|
|
|
|
|
|
|
|
|
// 使用stream流检查转移时间
|
|
|
|
|
boolean hasInvalidTime = resultPage.getRecords().stream()
|
|
|
|
|
//anyMatch 判断是否有任意一个安装时间大于转移时间,有一个就停止遍历
|
|
|
|
|
.anyMatch(previousTransfer ->
|
|
|
|
|
entity.getDeviceTransferTime().before(previousTransfer.getDeviceTransferTime())
|
|
|
|
|
);
|
|
|
|
|