|
@@ -2,6 +2,7 @@ package org.jeecg.modules.billet.rollClubOne.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -675,26 +676,37 @@ public class RollClubOneDetailsServiceImpl extends ServiceImpl<RollClubOneDetail
|
|
|
* @param billetBasicInfoAdd
|
|
|
*/
|
|
|
private void saveRollClubOneInfo(List<BilletBasicInfo> billetBasicInfoList, BilletBasicInfoAdd billetBasicInfoAdd) {
|
|
|
- // 对 resultList 中的元素按 Strandno 分组后重新赋值 StrandnoIndex
|
|
|
- // 更新炉次传递单中的总数和坯重
|
|
|
+ // 计算当前批次的出坯总重与总支数
|
|
|
double rollClubOneWeight = billetBasicInfoList.stream()
|
|
|
.mapToDouble(BilletBasicInfo::getBilletWeight)
|
|
|
.sum();
|
|
|
+ int rollClubOneAmount = billetBasicInfoList.size();
|
|
|
+
|
|
|
+
|
|
|
+ LambdaQueryWrapper<RollClubOne> queryWrapperB = new LambdaQueryWrapper<RollClubOne>()
|
|
|
+ .eq(RollClubOne::getCcmNo, billetBasicInfoAdd.getCcmNo())
|
|
|
+ .eq(RollClubOne::getHeatNo, billetBasicInfoAdd.getHeatNo())
|
|
|
+ .eq(RollClubOne::getShift, billetBasicInfoAdd.getShift())
|
|
|
+ .eq(RollClubOne::getShiftGroup, billetBasicInfoAdd.getShift())
|
|
|
+ .orderByDesc(RollClubOne::getCreateTime).last("limit 1");
|
|
|
+ RollClubOne rollClubOne = rollClubOneMapper.selectOne(queryWrapperB);
|
|
|
+
|
|
|
|
|
|
- RollClubOne rollClubOne = new RollClubOne();
|
|
|
- rollClubOne.setId(String.valueOf(IdWorker.getId()));
|
|
|
- rollClubOne.setCcmNo(billetBasicInfoAdd.getCcmNo());
|
|
|
- rollClubOne.setHeatNo(billetBasicInfoAdd.getHeatNo());
|
|
|
- rollClubOne.setShiftGroup(billetBasicInfoAdd.getShiftGroup());
|
|
|
- rollClubOne.setShift(billetBasicInfoAdd.getShift());
|
|
|
- rollClubOne.setBlankOutput(rollClubOneWeight);
|
|
|
- rollClubOne.setSize(String.valueOf(billetBasicInfoList.stream().findFirst().orElse(null).getLength())); //定尺
|
|
|
- rollClubOne.setSteel(String.valueOf(billetBasicInfoList.stream().findFirst().orElse(null).getGrade())); //钢种
|
|
|
- rollClubOne.setSpec(String.valueOf(billetBasicInfoList.stream().findFirst().orElse(null).getSpec())); //规格
|
|
|
- rollClubOne.setBlankOutput(billetBasicInfoList.stream().mapToDouble(BilletBasicInfo::getBilletWeight).sum());//出坯量总和
|
|
|
- rollClubOne.setCreateDate(new Date());
|
|
|
- rollClubOne.setCreateTime(new Date());
|
|
|
- rollClubOneMapper.insert(rollClubOne);
|
|
|
+ if (rollClubOne != null) {
|
|
|
+ Double oldWeight = Optional.ofNullable(rollClubOne.getBlankOutput()).orElse(0.0);
|
|
|
+ Integer oldAmount = Optional.ofNullable(rollClubOne.getAmountTotal()).orElse(0);
|
|
|
+
|
|
|
+ double newWeight = oldWeight + rollClubOneWeight;
|
|
|
+ int newAmount = oldAmount + rollClubOneAmount;
|
|
|
+
|
|
|
+ // 使用 UpdateWrapper 精确更新两个字段
|
|
|
+ LambdaUpdateWrapper<RollClubOne> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ updateWrapper.eq(RollClubOne::getId, rollClubOne.getId())
|
|
|
+ .set(RollClubOne::getBlankOutput, newWeight)
|
|
|
+ .set(RollClubOne::getAmountTotal, newAmount);
|
|
|
+
|
|
|
+ rollClubOneMapper.update(null, updateWrapper);
|
|
|
+ }
|
|
|
|
|
|
// 保存棒一明细信息
|
|
|
List<RollClubOneDetails> rollClubOneDetailsList = new ArrayList<>();
|