|
|
|
|
@ -30,6 +30,8 @@ import org.springblade.system.pojo.entity.User; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.time.ZoneId; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
@ -143,19 +145,25 @@ public class DisTaskingServiceImpl extends BaseServiceImpl<DisTaskingMapper, Dis |
|
|
|
|
}); |
|
|
|
|
return this.updateBatchById(disTaskings); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
public boolean syncDisTasking() { |
|
|
|
|
Date endTime = new Date(); |
|
|
|
|
Date startTime = DateUtil.offsetMinute(endTime, -30); |
|
|
|
|
|
|
|
|
|
public boolean syncDisTasking(boolean isAll) { |
|
|
|
|
List<DsTaskingEntity> dsTaskingEntities; |
|
|
|
|
if (isAll) { |
|
|
|
|
// 全量同步
|
|
|
|
|
dsTaskingEntities = dsTaskingService.list(Wrappers.lambdaQuery(DsTaskingEntity.class) |
|
|
|
|
.eq(DsTaskingEntity::getInProduction, "1").ne(DsTaskingEntity::getWipTake, "继续使用")); |
|
|
|
|
} else { |
|
|
|
|
// 获取上一个小时的开始结束时间
|
|
|
|
|
Date startTime = Date.from(getLastHourStart().atZone(ZoneId.systemDefault()).toInstant()); |
|
|
|
|
Date endTime = Date.from(getLastHourEnd().atZone(ZoneId.systemDefault()).toInstant()); |
|
|
|
|
// 获取30分钟之前到现在的工艺任务分派数据
|
|
|
|
|
// List<DsTaskingEntity> dsTaskingEntities = dsTaskingService.list(Wrappers.lambdaQuery(DsTaskingEntity.class)
|
|
|
|
|
// .eq(DsTaskingEntity::getInProduction, "1").ne(DsTaskingEntity::getWipTake, "继续使用")
|
|
|
|
|
// .between(DsTaskingEntity::getSyncTime, startTime, endTime));
|
|
|
|
|
dsTaskingEntities = dsTaskingService.list(Wrappers.lambdaQuery(DsTaskingEntity.class) |
|
|
|
|
.eq(DsTaskingEntity::getInProduction, "1").ne(DsTaskingEntity::getWipTake, "继续使用") |
|
|
|
|
.between(DsTaskingEntity::getSyncTime, startTime, endTime)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<DsTaskingEntity> dsTaskingEntities = dsTaskingService.list(Wrappers.lambdaQuery(DsTaskingEntity.class) |
|
|
|
|
.eq(DsTaskingEntity::getInProduction, "1").ne(DsTaskingEntity::getWipTake, "继续使用")); |
|
|
|
|
if (CollectionUtils.isEmpty(dsTaskingEntities)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
@ -227,4 +235,28 @@ public class DisTaskingServiceImpl extends BaseServiceImpl<DisTaskingMapper, Dis |
|
|
|
|
} |
|
|
|
|
return saveResult; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取上一小时的开始时间 |
|
|
|
|
* 例:当前是 2025-12-29 15:34:22 → 返回 2025-12-29 14:00:00 |
|
|
|
|
*/ |
|
|
|
|
private static LocalDateTime getLastHourStart() { |
|
|
|
|
return LocalDateTime.now() |
|
|
|
|
.minusHours(1) // 减1小时
|
|
|
|
|
.withMinute(0) // 分归零
|
|
|
|
|
.withSecond(0) // 秒归零
|
|
|
|
|
.withNano(0); // 纳秒归零
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取上一小时的结束时间 |
|
|
|
|
* 例:当前是 2025-12-29 15:34:22 → 返回 2025-12-29 14:59:59.999999999 |
|
|
|
|
*/ |
|
|
|
|
private static LocalDateTime getLastHourEnd() { |
|
|
|
|
return LocalDateTime.now() |
|
|
|
|
.minusHours(1) |
|
|
|
|
.withMinute(59) |
|
|
|
|
.withSecond(59) |
|
|
|
|
.withNano(999_999_999); // 保留毫秒/纳秒精度
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|