|
@ -160,118 +160,114 @@ public class ReceiptBillServiceImpl extends ServiceImpl<ReceiptBillMapper, Recei |
|
|
@Override |
|
|
@Override |
|
|
public void warehouseCommit(List<ReceiptBillDetailVO> receiptBillDetailVOS, boolean flag) { |
|
|
public void warehouseCommit(List<ReceiptBillDetailVO> receiptBillDetailVOS, boolean flag) { |
|
|
if (CollectionUtils.isNotEmpty(receiptBillDetailVOS)) { |
|
|
if (CollectionUtils.isNotEmpty(receiptBillDetailVOS)) { |
|
|
receiptBillDetailVOS.stream() |
|
|
// receiptBillDetailVOS.stream()
|
|
|
.forEach( |
|
|
// .forEach(
|
|
|
receiptBillDetailVO -> { |
|
|
// receiptBillDetailVO -> {
|
|
|
//查询已分配未提交库存的分配记录
|
|
|
// //查询已分配未提交库存的分配记录
|
|
|
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>() |
|
|
// List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
|
|
|
.eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid()) |
|
|
// .eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid())
|
|
|
.eq(StIvtStockAssignDtl::getStatus, false)); |
|
|
// .eq(StIvtStockAssignDtl::getStatus, false));
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
// if (CollectionUtils.isNotEmpty(list)) {
|
|
|
Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream() |
|
|
// Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream()
|
|
|
.collect(Collectors.groupingBy( |
|
|
// .collect(Collectors.groupingBy(
|
|
|
StIvtStockAssignDtl::getStor_code, |
|
|
// StIvtStockAssignDtl::getStor_code,
|
|
|
Collectors.groupingBy( |
|
|
// Collectors.groupingBy(
|
|
|
StIvtStockAssignDtl::getStruct_code, |
|
|
// StIvtStockAssignDtl::getStruct_code,
|
|
|
Collectors.groupingBy( |
|
|
// Collectors.groupingBy(
|
|
|
StIvtStockAssignDtl::getDetail_id, |
|
|
// StIvtStockAssignDtl::getDetail_id,
|
|
|
Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add) |
|
|
// Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add)
|
|
|
) |
|
|
// )
|
|
|
) |
|
|
// )
|
|
|
)); |
|
|
// ));
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(storMap)) { |
|
|
// if (ObjectUtil.isNotEmpty(storMap)) {
|
|
|
Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm()); |
|
|
// Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm());
|
|
|
if (ObjectUtil.isNotEmpty(structMap)) { |
|
|
// if (ObjectUtil.isNotEmpty(structMap)) {
|
|
|
structMap.forEach((structCode, detailMap) -> { |
|
|
// structMap.forEach((structCode, detailMap) -> {
|
|
|
//获取仓位信息
|
|
|
// //获取仓位信息
|
|
|
StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>() |
|
|
// StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>()
|
|
|
.eq(StIvtStructattr::getStruct_code, structCode) |
|
|
// .eq(StIvtStructattr::getStruct_code, structCode)
|
|
|
.eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm())); |
|
|
// .eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm()));
|
|
|
if (ObjectUtil.isNotEmpty(structOne)) { |
|
|
// if (ObjectUtil.isNotEmpty(structOne)) {
|
|
|
//判断仓位是否已经有货
|
|
|
// //判断仓位是否已经有货
|
|
|
if (StrUtil.isEmpty(structOne.getVehicle_code())) { |
|
|
// if (StrUtil.isEmpty(structOne.getVehicle_code())) {
|
|
|
//无货直接新增库存明细
|
|
|
// //无货直接新增库存明细
|
|
|
//使用仓库编码 + "." + "库位编码"作为载具号
|
|
|
// //使用仓库编码 + "." + "库位编码"作为载具号
|
|
|
String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim(); |
|
|
// String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim();
|
|
|
detailMap.forEach( |
|
|
// detailMap.forEach(
|
|
|
(detail_id, qty) -> { |
|
|
// (detail_id, qty) -> {
|
|
|
//新增库存明细
|
|
|
// //新增库存明细
|
|
|
StIvtStockDtl stockDtl = new StIvtStockDtl(); |
|
|
// StIvtStockDtl stockDtl = new StIvtStockDtl();
|
|
|
stockDtl.setId(IdUtil.getLongId().toString()); |
|
|
// stockDtl.setId(IdUtil.getLongId().toString());
|
|
|
stockDtl.setVehicle_code(vehicle_code); |
|
|
// stockDtl.setVehicle_code(vehicle_code);
|
|
|
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm()); |
|
|
// stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
|
|
|
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc()); |
|
|
// stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
|
|
|
stockDtl.setQty(qty); |
|
|
// stockDtl.setQty(qty);
|
|
|
stockDtl.setStorage_time(DateUtil.today()); |
|
|
// stockDtl.setStorage_time(DateUtil.today());
|
|
|
stockDtl.setUnit(receiptBillDetailVO.getJldw()); |
|
|
// stockDtl.setUnit(receiptBillDetailVO.getJldw());
|
|
|
stockDtl.setBill_code(receiptBillDetailVO.getDjbh()); |
|
|
// stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
|
|
|
stockDtl.setDetail_id(detail_id); |
|
|
// stockDtl.setDetail_id(detail_id);
|
|
|
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
// stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
|
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
// stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
|
stockDtl.setUpdate_time(DateUtil.now()); |
|
|
// stockDtl.setUpdate_time(DateUtil.now());
|
|
|
stockDtlService.save(stockDtl); |
|
|
// stockDtlService.save(stockDtl);
|
|
|
} |
|
|
// }
|
|
|
); |
|
|
// );
|
|
|
//修改库位载具编码
|
|
|
// //修改库位载具编码
|
|
|
structOne.setVehicle_code(vehicle_code); |
|
|
// structOne.setVehicle_code(vehicle_code);
|
|
|
structOne.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
// structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
|
structOne.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
// structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
|
structOne.setUpdate_time(DateUtil.now()); |
|
|
// structOne.setUpdate_time(DateUtil.now());
|
|
|
structattrService.updateById(structOne); |
|
|
// structattrService.updateById(structOne);
|
|
|
} else { |
|
|
// } else {
|
|
|
//有货 则修改库存明细相关信息
|
|
|
// //有货 则修改库存明细相关信息
|
|
|
detailMap.forEach( |
|
|
// detailMap.forEach(
|
|
|
(detail_id, qty) -> { |
|
|
// (detail_id, qty) -> {
|
|
|
//修改库存明细
|
|
|
// //修改库存明细
|
|
|
StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>() |
|
|
// StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
|
|
|
.eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code()) |
|
|
// .eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code())
|
|
|
.eq(StIvtStockDtl::getDetail_id, detail_id)); |
|
|
// .eq(StIvtStockDtl::getDetail_id, detail_id));
|
|
|
//存在该单据明细的库存明细则修改数量
|
|
|
// //存在该单据明细的库存明细则修改数量
|
|
|
if (ObjectUtil.isNotEmpty(dtlOne)) { |
|
|
// if (ObjectUtil.isNotEmpty(dtlOne)) {
|
|
|
dtlOne.setQty(dtlOne.getQty().add(qty)); |
|
|
// dtlOne.setQty(dtlOne.getQty().add(qty));
|
|
|
dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
// dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
|
dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
// dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
|
dtlOne.setUpdate_time(DateUtil.now()); |
|
|
// dtlOne.setUpdate_time(DateUtil.now());
|
|
|
stockDtlService.updateById(dtlOne); |
|
|
// stockDtlService.updateById(dtlOne);
|
|
|
|
|
|
// } else {
|
|
|
//TODO 新增库存变动记录信息
|
|
|
// if (qty.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
|
// //不存在该单据明细的库存明细则新增库存明细
|
|
|
} else { |
|
|
// StIvtStockDtl stockDtl = new StIvtStockDtl();
|
|
|
if (qty.compareTo(BigDecimal.ZERO) > 0) { |
|
|
// stockDtl.setId(IdUtil.getLongId().toString());
|
|
|
//不存在该单据明细的库存明细则新增库存明细
|
|
|
// stockDtl.setVehicle_code(structOne.getVehicle_code());
|
|
|
StIvtStockDtl stockDtl = new StIvtStockDtl(); |
|
|
// stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
|
|
|
stockDtl.setId(IdUtil.getLongId().toString()); |
|
|
// stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
|
|
|
stockDtl.setVehicle_code(structOne.getVehicle_code()); |
|
|
// stockDtl.setStorage_time(DateUtil.today());
|
|
|
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm()); |
|
|
// stockDtl.setQty(qty);
|
|
|
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc()); |
|
|
// stockDtl.setUnit(receiptBillDetailVO.getJldw());
|
|
|
stockDtl.setStorage_time(DateUtil.today()); |
|
|
// stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
|
|
|
stockDtl.setQty(qty); |
|
|
// stockDtl.setDetail_id(detail_id);
|
|
|
stockDtl.setUnit(receiptBillDetailVO.getJldw()); |
|
|
// stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
|
stockDtl.setBill_code(receiptBillDetailVO.getDjbh()); |
|
|
// stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
|
stockDtl.setDetail_id(detail_id); |
|
|
// stockDtl.setUpdate_time(DateUtil.now());
|
|
|
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
// stockDtlService.save(stockDtl);
|
|
|
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
// }
|
|
|
stockDtl.setUpdate_time(DateUtil.now()); |
|
|
// }
|
|
|
stockDtlService.save(stockDtl); |
|
|
// }
|
|
|
} |
|
|
// );
|
|
|
} |
|
|
// }
|
|
|
} |
|
|
// }
|
|
|
); |
|
|
// });
|
|
|
} |
|
|
// }
|
|
|
} |
|
|
// }
|
|
|
}); |
|
|
// updateAssignStatus(list);
|
|
|
} |
|
|
// }
|
|
|
} |
|
|
// }
|
|
|
updateAssignStatus(list); |
|
|
// );
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
updateDetailSl(receiptBillDetailVOS); |
|
|
updateDetailSl(receiptBillDetailVOS); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (flag) { |
|
|
if (flag) { |
|
|
Set<String> djids = receiptBillDetailVOS.stream().map(ReceiptBillDetailVO::getDjid).collect(Collectors.toSet()); |
|
|
Set<String> djids = receiptBillDetailVOS.stream().map(ReceiptBillDetailVO::getDjid).collect(Collectors.toSet()); |
|
|
djids.forEach( |
|
|
djids.forEach( |
|
@ -346,158 +342,6 @@ public class ReceiptBillServiceImpl extends ServiceImpl<ReceiptBillMapper, Recei |
|
|
//分组
|
|
|
//分组
|
|
|
Map<String, List<ReceiptBillDetailVO>> groupedByDjid = params.stream() |
|
|
Map<String, List<ReceiptBillDetailVO>> groupedByDjid = params.stream() |
|
|
.collect(Collectors.groupingBy(ReceiptBillDetailVO::getDjid)); |
|
|
.collect(Collectors.groupingBy(ReceiptBillDetailVO::getDjid)); |
|
|
//遍历 从数据库中查询明细数量
|
|
|
|
|
|
params.forEach( |
|
|
|
|
|
receiptBillDetailVO -> { |
|
|
|
|
|
//查询已分配未提交库存的分配记录
|
|
|
|
|
|
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>() |
|
|
|
|
|
.eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid()) |
|
|
|
|
|
.eq(StIvtStockAssignDtl::getStatus, false)); |
|
|
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
|
|
Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream() |
|
|
|
|
|
.collect(Collectors.groupingBy( |
|
|
|
|
|
StIvtStockAssignDtl::getStor_code, |
|
|
|
|
|
Collectors.groupingBy( |
|
|
|
|
|
StIvtStockAssignDtl::getStruct_code, |
|
|
|
|
|
Collectors.groupingBy( |
|
|
|
|
|
StIvtStockAssignDtl::getDetail_id, |
|
|
|
|
|
Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add) |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(storMap)) { |
|
|
|
|
|
Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm()); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(structMap)) { |
|
|
|
|
|
structMap.forEach((structCode, detailMap) -> { |
|
|
|
|
|
//获取仓位信息
|
|
|
|
|
|
StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>() |
|
|
|
|
|
.eq(StIvtStructattr::getStruct_code, structCode) |
|
|
|
|
|
.eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm())); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(structOne)) { |
|
|
|
|
|
//判断仓位是否已经有货
|
|
|
|
|
|
if (StrUtil.isEmpty(structOne.getVehicle_code())) { |
|
|
|
|
|
//无货直接新增库存明细
|
|
|
|
|
|
//使用仓库编码 + "." + "库位编码"作为载具号
|
|
|
|
|
|
String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim(); |
|
|
|
|
|
detailMap.forEach( |
|
|
|
|
|
(detail_id, qty) -> { |
|
|
|
|
|
//新增库存明细
|
|
|
|
|
|
StIvtStockDtl stockDtl = new StIvtStockDtl(); |
|
|
|
|
|
stockDtl.setId(IdUtil.getLongId().toString()); |
|
|
|
|
|
stockDtl.setVehicle_code(vehicle_code); |
|
|
|
|
|
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm()); |
|
|
|
|
|
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc()); |
|
|
|
|
|
stockDtl.setPcsn(DateUtil.today()); |
|
|
|
|
|
stockDtl.setQty(qty); |
|
|
|
|
|
stockDtl.setStorage_time(DateUtil.today()); |
|
|
|
|
|
stockDtl.setUnit(receiptBillDetailVO.getJldw()); |
|
|
|
|
|
stockDtl.setBill_code(receiptBillDetailVO.getDjbh()); |
|
|
|
|
|
stockDtl.setDetail_id(detail_id); |
|
|
|
|
|
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
stockDtl.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
stockDtlService.save(stockDtl); |
|
|
|
|
|
|
|
|
|
|
|
//TODO 新增库存变动记录信息
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
); |
|
|
|
|
|
//修改库位载具编码
|
|
|
|
|
|
structOne.setVehicle_code(vehicle_code); |
|
|
|
|
|
structOne.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
structOne.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
structOne.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
structattrService.updateById(structOne); |
|
|
|
|
|
} else { |
|
|
|
|
|
//有货 则修改库存明细相关信息
|
|
|
|
|
|
detailMap.forEach( |
|
|
|
|
|
(detail_id, qty) -> { |
|
|
|
|
|
//修改库存明细
|
|
|
|
|
|
StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>() |
|
|
|
|
|
.eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code()) |
|
|
|
|
|
.eq(StIvtStockDtl::getDetail_id, detail_id)); |
|
|
|
|
|
//存在该单据明细的库存明细则修改数量
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(dtlOne)) { |
|
|
|
|
|
dtlOne.setQty(dtlOne.getQty().add(qty)); |
|
|
|
|
|
dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
dtlOne.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
stockDtlService.updateById(dtlOne); |
|
|
|
|
|
} else { |
|
|
|
|
|
if (qty.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
|
|
//不存在该单据明细的库存明细则新增库存明细
|
|
|
|
|
|
StIvtStockDtl stockDtl = new StIvtStockDtl(); |
|
|
|
|
|
stockDtl.setId(IdUtil.getLongId().toString()); |
|
|
|
|
|
stockDtl.setVehicle_code(structOne.getVehicle_code()); |
|
|
|
|
|
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm()); |
|
|
|
|
|
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc()); |
|
|
|
|
|
stockDtl.setStorage_time(DateUtil.today()); |
|
|
|
|
|
stockDtl.setPcsn(DateUtil.today()); |
|
|
|
|
|
stockDtl.setQty(qty); |
|
|
|
|
|
stockDtl.setUnit(receiptBillDetailVO.getJldw()); |
|
|
|
|
|
stockDtl.setBill_code(receiptBillDetailVO.getDjbh()); |
|
|
|
|
|
stockDtl.setDetail_id(detail_id); |
|
|
|
|
|
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
stockDtl.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
stockDtlService.save(stockDtl); |
|
|
|
|
|
//TODO 新增库存变动记录信息
|
|
|
|
|
|
|
|
|
|
|
|
} else if (qty.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
|
|
//写个sql去查询该明细下对应的仓库的物料的库存明细信息
|
|
|
|
|
|
List<Map<String, Object>> smsList = stockDtlService.getListBySMS(structCode, receiptBillDetailVO.getWlbm(), receiptBillDetailVO.getCkbm()); |
|
|
|
|
|
//临时变量
|
|
|
|
|
|
BigDecimal tempQty = qty; |
|
|
|
|
|
for (Map<String, Object> sms : smsList) { |
|
|
|
|
|
if (tempQty.compareTo(BigDecimal.ZERO) >= 0) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
String id = sms.get("id") != null ? sms.get("id").toString() : ""; |
|
|
|
|
|
//库位库存数量
|
|
|
|
|
|
BigDecimal kcQty = sms.get("qty") != null ? new BigDecimal(sms.get("qty").toString()) : BigDecimal.ZERO; |
|
|
|
|
|
BigDecimal minQty = kcQty.min(tempQty.abs()); |
|
|
|
|
|
//修改库存明细中的库存数量
|
|
|
|
|
|
StIvtStockDtl stockDtl = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>() |
|
|
|
|
|
.eq(StIvtStockDtl::getId, id)); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(stockDtl)) { |
|
|
|
|
|
BigDecimal sysl = stockDtl.getQty().subtract(minQty); |
|
|
|
|
|
if (sysl.compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
|
|
stockDtlService.removeById(stockDtl); |
|
|
|
|
|
} else { |
|
|
|
|
|
stockDtl.setQty(sysl); |
|
|
|
|
|
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
stockDtl.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
stockDtlService.updateById(stockDtl); |
|
|
|
|
|
} |
|
|
|
|
|
tempQty = tempQty.subtract(minQty.negate()); |
|
|
|
|
|
} |
|
|
|
|
|
List<StIvtStockDtl> newDtls = stockDtlService.list(new LambdaQueryWrapper<StIvtStockDtl>() |
|
|
|
|
|
.eq(StIvtStockDtl::getVehicle_code, (String) sms.get("vehicle_code"))); |
|
|
|
|
|
if (CollectionUtils.isEmpty(newDtls)) { |
|
|
|
|
|
structOne.setVehicle_code(""); |
|
|
|
|
|
structOne.setUpdate_id(SecurityUtils.getCurrentUserId()); |
|
|
|
|
|
structOne.setUpdate_name(SecurityUtils.getCurrentNickName()); |
|
|
|
|
|
structOne.setUpdate_time(DateUtil.now()); |
|
|
|
|
|
structattrService.update(structOne); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//TODO 新增库存变动记录信息
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
updateAssignStatus(list); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
//修改明细数量
|
|
|
//修改明细数量
|
|
|
updateDetailSl(params); |
|
|
updateDetailSl(params); |
|
|