Browse Source

Merge branch 'master' of http://123.57.213.14:3001/zgzt/dosb-java

qiangxuan 3 days ago
parent
commit
e5aafbe6c7

+ 21 - 70
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubOne/service/impl/RollClubOneDetailsServiceImpl.java

@@ -409,62 +409,7 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
      */
     private String completeHeatsHandle(BilletBasicInfoAdd billetBasicInfoAdd, String brandNumStr) {
 
-        LambdaQueryWrapper<HeatsActuals> queryWrapper1 = new LambdaQueryWrapper<HeatsActuals>()
-                .eq(HeatsActuals::getHeatsCode, billetBasicInfoAdd.getHeatNo())
-                .orderByDesc(HeatsActuals::getCreateTime).last("limit 1");
-        HeatsActuals actualsCheck = heatsActualsService.getOne(queryWrapper1);
-        if (actualsCheck != null) {
-            return "炉次实绩中炉号重复,补录失败!";
-        }
 
-        // 查询基础信息
-        LambdaQueryWrapper<HeatsActuals> queryWrapper = new LambdaQueryWrapper<HeatsActuals>()
-                .eq(HeatsActuals::getCasterCode, billetBasicInfoAdd.getCcmNo())
-                .orderByDesc(HeatsActuals::getCreateTime).last("limit 1");
-        HeatsActuals actuals = heatsActualsService.getOne(queryWrapper);
-
-        HeatsActuals heatsActuals = new HeatsActuals();
-        BeanUtils.copyProperties(actuals, heatsActuals);
-
-        try {
-            heatsActuals.setId(String.valueOf(IdWorker.getId()));
-            heatsActuals.setHeatsCode(billetBasicInfoAdd.getHeatNo());
-            heatsActuals.setShift(billetBasicInfoAdd.getShift());
-            heatsActuals.setShiftGroup(billetBasicInfoAdd.getShiftGroup());
-            //根据最新一炉的炉次信息计算 空包重量核算
-            if (heatsActuals.getMoltenSteelWeight() > 0 && heatsActuals.getFullLadleWeight() > 0) { // 如果钢水重量存在核算
-                heatsActuals.setEmptyLadleWeight(heatsActuals.getFullLadleWeight() - heatsActuals.getMoltenSteelWeight());
-            }
-            // 整理添加总支数
-            heatsActuals.setBilletSum(0);
-            heatsActuals.setBlankOutput(0.0d);
-            heatsActuals.setCreateTime(new Date());
-            heatsActuals.setUpdateTime(new Date());
-            heatsActualsService.save(heatsActuals);
-        } catch (Exception e) {
-            log.error("整炉补坯保存炉次实绩数据出现异常", e);
-            throw new RuntimeException("整炉补坯保存炉次实绩数据出现失败!", e);
-        }
-        log.info("1炉次实绩插入:" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-        //新增炉次传递单
-        BilletHotsend billetHotsend = new BilletHotsend();
-        billetHotsend.setId(String.valueOf(IdWorker.getId()));
-        billetHotsend.setCcmNo(billetBasicInfoAdd.getCcmNo()); // 铸机号
-        billetHotsend.setHeatNo(billetBasicInfoAdd.getHeatNo()); // 炉号
-        billetHotsend.setShiftGroup(billetBasicInfoAdd.getShiftGroup()); // 班组
-        billetHotsend.setShift(billetBasicInfoAdd.getShift()); // 班别
-        billetHotsend.setSteel(heatsActuals.getGrade()); // 钢种
-        billetHotsend.setSpec(heatsActuals.getSpec()); // 规格
-
-        billetHotsend.setBrandNum(brandNumStr);
-        billetHotsend.setAmountTotal(heatsActuals.getBilletSum()); // 支数
-        billetHotsend.setBlankOutput(0.0d); // 出批量
-        billetHotsend.setDecideWeight(0.0d); // 定重
-        billetHotsend.setWasteBlankOutput(0.0);
-        billetHotsend.setCreateTime(new Date());
-        billetHotsend.setUpdateTime(new Date());
-        billetHotsendBaseMapper.insert(billetHotsend);
-        log.info("2炉次传递单插入:" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
         LambdaQueryWrapper<BilletBasicInfo> queryWrapperB = new LambdaQueryWrapper<BilletBasicInfo>()
                 .eq(BilletBasicInfo::getCcmNo, billetBasicInfoAdd.getCcmNo())
                 .orderByDesc(BilletBasicInfo::getCreateTime).last("limit 1");
@@ -481,7 +426,6 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
         int fiveStrandRemainSum = 0;
         int sixStrandRemainSum = 0;
 
-        // 有去组批的,有去棒一的(混合情况) 1、先处理去棒一的数据 2、在减掉棒一的数量,剩余的进行组批
         List<BilletBasicInfo> rollClubOneResultList = new ArrayList<>();
         // 添加棒一明细
         List<RollClubOneInfo> rollClubOneList = billetBasicInfoAdd.getRollClubOneList();
@@ -549,13 +493,10 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
         }
         log.info("结束去棒一数据组装:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
         if (oConvertUtils.listIsNotEmpty(rollClubOneResultList)) {
-            log.info("开始整炉去棒一明细处理:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
             // 去棒一明细处理
             saveRollClubOneInfo(rollClubOneResultList, billetBasicInfoAdd);
-            log.info("结束整炉去棒一明细处理:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
         }
 
-        log.info("开始处理每流剩余:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
         List<BilletBasicInfo> result = new ArrayList<>();
         if (oneStrandRemainSum > 0) {
             List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, oneStrandRemainSum, 1, billetBasicInfoAdd.getOneLength());
@@ -581,7 +522,6 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
             List<BilletBasicInfo> billetBasicInfoList = saveBilletBasicInfoList(billetBasicInfo, billetBasicInfoAdd, sixStrandRemainSum, 6, billetBasicInfoAdd.getSixLength());
             result.addAll(billetBasicInfoList);
         }
-        log.info("结束处理每流剩余:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
 
         result.addAll(rollClubOneResultList);
 
@@ -589,29 +529,40 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
 
         billetBasicInfoService.saveOrUpdateBatch(finalBilletBasicInfoListSort);
 
-        log.info("开始整炉去除棒一组批更新处理:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
+        LambdaQueryWrapper<BilletHotsend> queryWrapperBh = new LambdaQueryWrapper<BilletHotsend>()
+                .eq(BilletHotsend::getHeatNo, billetBasicInfoAdd.getHeatNo())
+                .orderByDesc(BilletHotsend::getCreateTime).last("limit 1");
+        BilletHotsend billetHotsend = billetHotsendBaseMapper.selectOne(queryWrapperBh);
 
 
         // 更新炉次传递单中的总数和坯重
         double totalBilletWeight = finalBilletBasicInfoListSort.stream()
                 .mapToDouble(BilletBasicInfo::getBilletWeight)
                 .sum();
-        billetHotsend.setAmountTotal(finalBilletBasicInfoListSort.size());
-        billetHotsend.setBlankOutput(totalBilletWeight);
+        Double oldWeight = billetHotsend.getBlankOutput();
+        Integer oldCount = billetHotsend.getAmountTotal();
+        billetHotsend.setBlankOutput((oldWeight == null ? 0 : oldWeight) + totalBilletWeight);
+        billetHotsend.setAmountTotal((oldCount == null ? 0 : oldCount) + finalBilletBasicInfoListSort.size());
 
         if (oConvertUtils.listIsNotEmpty(rollClubOneResultList) && rollClubOneResultList.size() > 0) {
-            billetHotsend.setRollcluboneNum(rollClubOneResultList.size());
+            Integer rollcluboneNum = billetHotsend.getRollcluboneNum();
+            billetHotsend.setRollcluboneNum((rollcluboneNum == null ? 0 : rollcluboneNum) + rollClubOneResultList.size());
         }
-        log.info("炉次传递单更新:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
         billetHotsendBaseMapper.updateById(billetHotsend);
 
+        LambdaQueryWrapper<HeatsActuals> queryWrapperHa = new LambdaQueryWrapper<HeatsActuals>()
+                .eq(HeatsActuals::getHeatsCode, billetBasicInfoAdd.getHeatNo())
+                .orderByDesc(HeatsActuals::getCreateTime).last("limit 1");
+        HeatsActuals actualsCheck = heatsActualsService.getOne(queryWrapperHa);
+
         // 更新炉次实绩中的总数和坯重
-        heatsActuals.setBlankOutput(totalBilletWeight);
-        heatsActuals.setBilletSum(finalBilletBasicInfoListSort.size());
-        log.info("炉次实绩更新:{}" + DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-        heatsActualsService.updateById(heatsActuals);
+        Double oldActWeight = actualsCheck.getBlankOutput();
+        Integer oldActCount = actualsCheck.getBilletSum();
+        actualsCheck.setBlankOutput((oldActWeight == null ? 0 : oldActWeight) + totalBilletWeight);
+        actualsCheck.setBilletSum((oldActCount == null ? 0 : oldActCount) + finalBilletBasicInfoListSort.size());
+        heatsActualsService.updateById(actualsCheck);
 
-        return "整炉补录成功!";
+        return "去棒一补录成功!";
     }
 
 

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

@@ -5501,8 +5501,8 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         if (CollectionUtils.isEmpty(bills)) return;
 
         Set<String> ccmNos = bills.stream().map(StorageBill::getCcmNo).collect(Collectors.toSet());
-        // 查询时间往前扩 1 小时
-        Date minDate = org.apache.commons.lang3.time.DateUtils.addHours(getMinDate(bills), -1);
+        // 查询时间往前扩 9 小时 (避免前一个班次获取不到)
+        Date minDate = org.apache.commons.lang3.time.DateUtils.addHours(getMinDate(bills), -9);
         Date maxDate = getMaxDate(bills);
 
         // Step 1: 查询交班记录并按 (ccmNo + shiftGroup + shift) 分组
@@ -5606,6 +5606,14 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 }
 
                 update(updateBill, updateWrapper);
+
+                // 关键补充:更新当前内存对象,确保返回时能看到修改结果
+                if (needCalcCarNum) {
+                    bill.setCarNum(updateBill.getCarNum());
+                }
+                if (needCalcCarAllNum) {
+                    bill.setCarAllNum(updateBill.getCarAllNum());
+                }
             }