|
@@ -705,7 +705,9 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
return Result.error("凉坯确认异常,确认凉坯的数量不能超过总数!");
|
|
|
}
|
|
|
if (finalStackingCount == 0){
|
|
|
- applyColdConfirmInfo(bopr, sysUser);
|
|
|
+ bopr.setColdConfirmBy(sysUser.getRealname());
|
|
|
+ bopr.setColdConfirmTime(DateUtils.str2Date(billetOriginalProductRecordVo.getColdConfirmTime(), DateUtils.datetimeFormat.get()));
|
|
|
+ bopr.setColdRemark(billetOriginalProductRecordVo.getColdRemark());
|
|
|
}else {
|
|
|
// 拆分指定数量的凉坯单
|
|
|
int startPosition = billetOriginalProductRecordVo.getStartPosition();
|
|
@@ -756,7 +758,24 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
bopr.setColdBilletInfo(appointColdBilletJsonArray);
|
|
|
}
|
|
|
}
|
|
|
- billetOriginalProductRecordService.updateById(bopr);
|
|
|
+
|
|
|
+ // 创建UpdateWrapper并指定要更新的字段
|
|
|
+ UpdateWrapper<BilletOriginalProductRecord> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.eq("id", bopr.getId());
|
|
|
+ if (finalStackingCount == 0){
|
|
|
+ updateWrapper.set("cold_remark", bopr.getColdRemark())
|
|
|
+ .set("cold_confirm_by", bopr.getColdConfirmBy())
|
|
|
+ .set("confirm_time", bopr.getColdConfirmTime())
|
|
|
+ .set("cold_confirm_time", bopr.getColdConfirmTime());
|
|
|
+ }
|
|
|
+ if (finalStackingCount > 0){
|
|
|
+ updateWrapper.set("cold_billet_info", bopr.getColdBilletInfo()) // 指定要更新的字段
|
|
|
+ .set("stack_length", bopr.getStackLength());
|
|
|
+ }
|
|
|
+ updateWrapper.set("update_time", new Date());
|
|
|
+ // 执行更新,只更新wrapper中指定的字段
|
|
|
+ billetOriginalProductRecordService.update(null, updateWrapper);
|
|
|
+
|
|
|
int demandStackingSum = appointColdBilletCount / 4;
|
|
|
// 确保下垛数量大于0并且是步进冷床类型,才进行容器释放(下垛)
|
|
|
if (demandStackingSum > 0 && "9".equals(bhtcId)){
|
|
@@ -828,12 +847,23 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
List<Map<String, Object>> rollSendDetailsList = new ArrayList<>();
|
|
|
rollSendDetailsList.add(rollSendDetail);
|
|
|
|
|
|
- // 根据传入的 startPosition 和拆单数量计算 startAmount 和 endAmount
|
|
|
- int startAmount = startPosition;
|
|
|
- int endAmount = startPosition + appointColdBilletCount - 1; // 因为包含起始位置,所以减1
|
|
|
- // 计算原来凉坯单 剩余部分的起止位置
|
|
|
- int remainingStart = endAmount + 1;
|
|
|
- int remainingEnd = endPosition;
|
|
|
+ // 先获取实体中原本的起始和终止位置
|
|
|
+ Integer entityStartPosition = bopr.getStartPosition();
|
|
|
+ Integer entityEndPosition = bopr.getEndPosition();
|
|
|
+
|
|
|
+ // 处理起始位置,为null则用前端传入的startPosition
|
|
|
+ int currentStart = (entityStartPosition != null) ? entityStartPosition : startPosition;
|
|
|
+ // 处理终止位置,为null则用前端传入的endPosition
|
|
|
+ int currentEnd = (entityEndPosition != null) ? entityEndPosition : endPosition;
|
|
|
+
|
|
|
+ // 2. 计算本次拆分后,新拆单子的起止
|
|
|
+ int newStartAmount = currentStart;
|
|
|
+ int newEndAmount = currentStart + appointColdBilletCount - 1;
|
|
|
+
|
|
|
+ // 3. 计算拆分后,原始单据剩余的起止(核心修复点:基于最新剩余位置计算)
|
|
|
+ int remainingStart = newEndAmount + 1;
|
|
|
+ int remainingEnd = currentEnd;
|
|
|
+
|
|
|
// 对冷坯单拆分后,原始冷坯单的起始位置、终止位置 进行记录
|
|
|
UpdateWrapper<BilletOriginalProductRecord> updateWrapper = new UpdateWrapper<>();
|
|
|
updateWrapper.eq("id", bopr.getId()) // 根据ID更新
|
|
@@ -847,8 +877,8 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
sizeDetail.put("size", targetSize);
|
|
|
sizeDetail.put("sizeAmount", appointColdBilletCount);
|
|
|
sizeDetail.put("sizeWeight", weight);
|
|
|
- sizeDetail.put("startAmount", startAmount);
|
|
|
- sizeDetail.put("endAmount", endAmount);
|
|
|
+ sizeDetail.put("startAmount", newStartAmount);
|
|
|
+ sizeDetail.put("endAmount", newEndAmount);
|
|
|
|
|
|
List<Map<String, Object>> sizeDetailsList = new ArrayList<>();
|
|
|
sizeDetailsList.add(sizeDetail);
|