|
@@ -2994,6 +2994,309 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public SteelDetailsVo queryOnDutySteelReceive(String ccmNo) {
|
|
|
+
|
|
|
+ SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
|
|
|
+
|
|
|
+ String shiftGroup = "";
|
|
|
+ String shift = "";
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift;
|
|
|
+
|
|
|
+ // 从 Redis 获取班次信息
|
|
|
+ shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
|
|
|
+ shift = getShiftInfo(ccmNo, "class:shift:%s");
|
|
|
+ // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
|
|
|
+ LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
|
|
|
+ .eq(BilletHotsendChangeShift::getShift, shift)
|
|
|
+ .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
|
|
|
+ .isNull(BilletHotsendChangeShift::getChangeShiftTime)
|
|
|
+ .orderByDesc(BilletHotsendChangeShift::getCreateTime)
|
|
|
+ .last("limit 1");
|
|
|
+ billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
|
|
|
+ if (billetHotsendChangeShift == null) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别,amountTotal不等于0 ,查询当班装运单信息
|
|
|
+ LambdaQueryWrapper<StorageBill> billQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ billQueryWrapper.eq(StorageBill::getCcmNo, ccmNo)
|
|
|
+ .gt(StorageBill::getAmountTotal, 0);
|
|
|
+
|
|
|
+ //时间范围从 createTime 到当前时间
|
|
|
+ billQueryWrapper.between(StorageBill::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<StorageBill> storageBillList = baseMapper.selectList(billQueryWrapper);
|
|
|
+
|
|
|
+ // 提取 id 集合
|
|
|
+ List<String> idList = storageBillList.stream()
|
|
|
+ .map(StorageBill::getId)
|
|
|
+ .filter(Objects::nonNull) // 过滤掉 null 值,避免 NPE
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (oConvertUtils.listIsEmpty(storageBillList)) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息为空!", ccmNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、创建时间 查询垛位起剁明细表
|
|
|
+ LambdaQueryWrapper<StackingUpLog> stackingUpLogQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ stackingUpLogQueryWrapper.eq(StackingUpLog::getCcmNo, ccmNo);
|
|
|
+
|
|
|
+ stackingUpLogQueryWrapper.between(StackingUpLog::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<StackingUpLog> stackingUpLogList = stackingUpLogService.list(stackingUpLogQueryWrapper);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(stackingUpLogList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setStackingDownLogList(stackingUpLogList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒一明细表
|
|
|
+ LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
|
|
|
+ .eq(RollClubOneDetails::getShift, shift)
|
|
|
+ .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubOneDetailsList(rollClubOneDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒二明细表
|
|
|
+ LambdaQueryWrapper<RollClubTwoDetails> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper2.eq(RollClubTwoDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollClubTwoDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(queryWrapper2);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubTwoDetailsList(rollClubTwoDetailsList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒三明细表
|
|
|
+ LambdaQueryWrapper<RollClubThreeDetails> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper3.eq(RollClubThreeDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollClubThreeDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(queryWrapper3);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubThreeDetailsList(rollClubThreeDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询高线明细表
|
|
|
+ LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
|
|
|
+ .eq(RollHeightDetails::getShift, shift)
|
|
|
+ .eq(RollHeightDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollHeightDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollHeightDetails(rollHeightDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询上若明细表
|
|
|
+ LambdaQueryWrapper<RollOutShippDetails> queryWrapper5 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper5.eq(RollOutShippDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollOutShippDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(queryWrapper5);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollOutShippDetailsList(rollOutShippDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SteelDetailsVo queryOnDutyStackingUp(String ccmNo) {
|
|
|
+ SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
|
|
|
+
|
|
|
+ String shiftGroup = "";
|
|
|
+ String shift = "";
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift;
|
|
|
+
|
|
|
+ // 从 Redis 获取班次信息
|
|
|
+ shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
|
|
|
+ shift = getShiftInfo(ccmNo, "class:shift:%s");
|
|
|
+ // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
|
|
|
+ LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
|
|
|
+ .eq(BilletHotsendChangeShift::getShift, shift)
|
|
|
+ .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
|
|
|
+ .isNull(BilletHotsendChangeShift::getChangeShiftTime)
|
|
|
+ .orderByDesc(BilletHotsendChangeShift::getCreateTime)
|
|
|
+ .last("limit 1");
|
|
|
+ billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
|
|
|
+ if (billetHotsendChangeShift == null) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、创建时间 查询垛位起剁明细表
|
|
|
+ LambdaQueryWrapper<StackingUpLog> stackingUpLogQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ stackingUpLogQueryWrapper.eq(StackingUpLog::getCcmNo, ccmNo);
|
|
|
+
|
|
|
+ stackingUpLogQueryWrapper.between(StackingUpLog::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<StackingUpLog> stackingUpLogList = stackingUpLogService.list(stackingUpLogQueryWrapper);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(stackingUpLogList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setStackingDownLogList(stackingUpLogList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SteelDetailsVo queryOnDutyHotSendInfo(String ccmNo) {
|
|
|
+ SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
|
|
|
+
|
|
|
+ String shiftGroup = "";
|
|
|
+ String shift = "";
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift;
|
|
|
+
|
|
|
+ // 从 Redis 获取班次信息
|
|
|
+ shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
|
|
|
+ shift = getShiftInfo(ccmNo, "class:shift:%s");
|
|
|
+ // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
|
|
|
+ LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
|
|
|
+ .eq(BilletHotsendChangeShift::getShift, shift)
|
|
|
+ .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
|
|
|
+ .isNull(BilletHotsendChangeShift::getChangeShiftTime)
|
|
|
+ .orderByDesc(BilletHotsendChangeShift::getCreateTime)
|
|
|
+ .last("limit 1");
|
|
|
+ billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
|
|
|
+ if (billetHotsendChangeShift == null) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒一明细表
|
|
|
+ LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
|
|
|
+ .eq(RollClubOneDetails::getShift, shift)
|
|
|
+ .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubOneDetailsList(rollClubOneDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询高线明细表
|
|
|
+ LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
|
|
|
+ .eq(RollHeightDetails::getShift, shift)
|
|
|
+ .eq(RollHeightDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollHeightDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollHeightDetails(rollHeightDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SteelDetailsVo queryOnDutyHotChargeInfo(String ccmNo) {
|
|
|
+ SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
|
|
|
+
|
|
|
+ String shiftGroup = "";
|
|
|
+ String shift = "";
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift;
|
|
|
+
|
|
|
+ // 从 Redis 获取班次信息
|
|
|
+ shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
|
|
|
+ shift = getShiftInfo(ccmNo, "class:shift:%s");
|
|
|
+ // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
|
|
|
+ LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
|
|
|
+ .eq(BilletHotsendChangeShift::getShift, shift)
|
|
|
+ .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
|
|
|
+ .isNull(BilletHotsendChangeShift::getChangeShiftTime)
|
|
|
+ .orderByDesc(BilletHotsendChangeShift::getCreateTime)
|
|
|
+ .last("limit 1");
|
|
|
+ billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
|
|
|
+ if (billetHotsendChangeShift == null) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别,amountTotal不等于0 ,查询当班装运单信息
|
|
|
+ LambdaQueryWrapper<StorageBill> billQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ billQueryWrapper.eq(StorageBill::getCcmNo, ccmNo)
|
|
|
+ .gt(StorageBill::getAmountTotal, 0);
|
|
|
+
|
|
|
+ //时间范围从 createTime 到当前时间
|
|
|
+ billQueryWrapper.between(StorageBill::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+
|
|
|
+ List<StorageBill> storageBillList = baseMapper.selectList(billQueryWrapper);
|
|
|
+
|
|
|
+ // 提取 id 集合
|
|
|
+ List<String> idList = storageBillList.stream()
|
|
|
+ .map(StorageBill::getId)
|
|
|
+ .filter(Objects::nonNull) // 过滤掉 null 值,避免 NPE
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (oConvertUtils.listIsEmpty(storageBillList)) {
|
|
|
+ log.info("{}{}", "查询当班装运单信息为空!", ccmNo);
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒二明细表
|
|
|
+ LambdaQueryWrapper<RollClubTwoDetails> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper2.eq(RollClubTwoDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollClubTwoDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(queryWrapper2);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubTwoDetailsList(rollClubTwoDetailsList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询棒三明细表
|
|
|
+ LambdaQueryWrapper<RollClubThreeDetails> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper3.eq(RollClubThreeDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollClubThreeDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(queryWrapper3);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollClubThreeDetailsList(rollClubThreeDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据铸机号、班组、班别、时间范围。查询上若明细表
|
|
|
+ LambdaQueryWrapper<RollOutShippDetails> queryWrapper5 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper5.eq(RollOutShippDetails::getCcmNo, ccmNo)
|
|
|
+ .in(RollOutShippDetails::getStorageBillId, idList);
|
|
|
+
|
|
|
+ List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(queryWrapper5);
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)) {
|
|
|
+
|
|
|
+ steelDetailsVo.setRollOutShippDetailsList(rollOutShippDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return steelDetailsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
// 计算整数总和的方法
|
|
|
private int calculateIntSum(List<DestinationStatisticsDetails> list) {
|
|
|
if (list == null) {
|
|
@@ -3637,9 +3940,10 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
|
|
|
// 根据铸机号、班组、班别、时间范围。查询棒一明细表
|
|
|
LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
- // 添加通用的查询条件
|
|
|
queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
|
|
|
- .in(RollClubOneDetails::getStorageBillId, idList);
|
|
|
+ .eq(RollClubOneDetails::getShift, shift)
|
|
|
+ .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
|
|
|
List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
|
|
|
if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)){
|
|
@@ -3699,7 +4003,9 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
// 根据铸机号、班组、班别、时间范围。查询高线明细表
|
|
|
LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
|
|
|
- .in(RollHeightDetails::getStorageBillId, idList);
|
|
|
+ .eq(RollHeightDetails::getShift, shift)
|
|
|
+ .eq(RollHeightDetails::getShiftGroup, shiftGroup)
|
|
|
+ .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
|
|
|
List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
|
|
|
if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)){
|