Browse Source

传递单车次数维护逻辑优化

qiangxuan 4 months ago
parent
commit
713d649e05

+ 43 - 17
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -387,23 +387,26 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
             storageBill.setCarAllNum(Math.toIntExact(carAllNum) + 1);
 
             // 通过铸机号、班组、班别去查询交班记录并初始化 车次
-            LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper3 = new LambdaQueryWrapper<>();
-            queryWrapper3.eq(BilletHotsendChangeShift::getCcmNo, storageBill.getCcmNo())
-                    .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
-                    .eq(BilletHotsendChangeShift::getShift, shift).between(BilletHotsendChangeShift::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
-            BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper3);
-            if (oConvertUtils.isNotEmpty(billetHotsendChangeShift)){
-                // 通过铸机号、班组、班别查询 当班装运单总数
-                LambdaQueryWrapper<StorageBill> queryWrapper4 = new LambdaQueryWrapper<>();
-                queryWrapper4.eq(StorageBill::getCcmNo, storageBill.getCcmNo())
-                        .eq(StorageBill::getShiftGroup, shiftGroup)
-                        .eq(StorageBill::getShift, shift)
-                        .between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
-                long amountTotal = baseMapper.selectCount(queryWrapper4);
-                billetHotsendChangeShift.setOutCarNum(Math.toIntExact(amountTotal));
-                billetHotsendChangeShift.setUpdateTime(new Date());
-                billetHotsendChangeShiftService.updateById(billetHotsendChangeShift);
-            }
+//            LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper3 = new LambdaQueryWrapper<>();
+//            queryWrapper3.eq(BilletHotsendChangeShift::getCcmNo, storageBill.getCcmNo())
+//                    .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+//                    .eq(BilletHotsendChangeShift::getShift, shift).between(BilletHotsendChangeShift::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
+//            BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper3);
+//            if (oConvertUtils.isNotEmpty(billetHotsendChangeShift)){
+//                // 通过铸机号、班组、班别查询 当班装运单总数
+//                LambdaQueryWrapper<StorageBill> queryWrapper4 = new LambdaQueryWrapper<>();
+//                queryWrapper4.eq(StorageBill::getCcmNo, storageBill.getCcmNo())
+//                        .eq(StorageBill::getShiftGroup, shiftGroup)
+//                        .eq(StorageBill::getShift, shift)
+//                        .between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
+//                long amountTotal = baseMapper.selectCount(queryWrapper4);
+//                billetHotsendChangeShift.setOutCarNum(Math.toIntExact(amountTotal));
+//                billetHotsendChangeShift.setUpdateTime(new Date());
+//                billetHotsendChangeShiftService.updateById(billetHotsendChangeShift);
+//            }
+            // 更新交班记录 通过铸机号、班组、班别去查询交班记录并初始化 出车号
+            updateBilletHotsendChangeShift(storageBill.getCcmNo(), shiftGroup, shift);
+
             storageBill.setAmountTotal(0);
             storageBill.setShiftGroup(shiftGroup);
             storageBill.setShift(shift);
@@ -423,6 +426,29 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         }
     }
 
+    /**
+     * 更新交班记录
+     * @param ccmNo
+     * @param shiftGroup
+     * @param shift
+     */
+    private void updateBilletHotsendChangeShift(String ccmNo, String shiftGroup, String shift) {
+        LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+                .eq(BilletHotsendChangeShift::getShift, shift)
+                .isNull(BilletHotsendChangeShift::getChangeShiftTime)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1");
+        BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
+        if (oConvertUtils.isEmpty(billetHotsendChangeShift)) {
+            log.info("手动创建装运单交班记录不存在,车次数维护失败:{}", ccmNo+shiftGroup+shift);
+            return;
+        }
+        billetHotsendChangeShift.setOutCarNum(billetHotsendChangeShift.getOutCarNum() + 1);
+        billetHotsendChangeShiftService.updateById(billetHotsendChangeShift);
+    }
+
     @Override
     public List<Map<String, Object>> carRunRecordHandle() {
         List<Map<String, Object>> result = new ArrayList<>();