|
@@ -130,9 +130,10 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
|
|
|
//如果有序列号,保存序列号和入库单的关系,更爱序列号的状态
|
|
|
for (StockDamageReportProductDTO aDo : stockDamageReportDTO.getProductList()) {
|
|
|
if (CollUtil.isNotEmpty(aDo.getSnCodeList())) {
|
|
|
+ StockDamageReportProduct product = bean.stream().filter(item -> item.getProductId().equals(aDo.getProductId())).findFirst().get();
|
|
|
aDo.getSnCodeList().forEach(item -> {
|
|
|
ItemSnCodeDO itemSnCodeDO = new ItemSnCodeDO();
|
|
|
- itemSnCodeDO.setItemId(aDo.getId());
|
|
|
+ itemSnCodeDO.setItemId(product.getId());
|
|
|
itemSnCodeDO.setEntryOutHouseId(report.getWarehouseId());
|
|
|
itemSnCodeDO.setType("damage");
|
|
|
itemSnCodeDO.setSnCodeId(item.getId());
|
|
@@ -175,6 +176,11 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
|
|
|
dto.setProductVO(BeanUtil.copyProperties(productManager.getById(aDo.getProductId()), ProductVO.class));
|
|
|
List<AreaStock> areaStockList = areaStockManager.list(new LambdaQueryWrapper<AreaStock>().eq(AreaStock::getProductStockId, dto.getProductStockId()));
|
|
|
dto.setAreaStockList(areaStockList);
|
|
|
+ List<ItemSnCodeDO> list = itemSnCodeManager.list(new LambdaQueryWrapper<ItemSnCodeDO>().eq(ItemSnCodeDO::getItemId, dto.getId()));
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ List<Long> collected = list.stream().map(ItemSnCodeDO::getSnCodeId).collect(Collectors.toList());
|
|
|
+ dto.setSnCodeList(goodsSnManager.list(new LambdaQueryWrapper<GoodsSnDO>().in(GoodsSnDO::getId, collected)));
|
|
|
+ }
|
|
|
}
|
|
|
reportVO.setProductList(beanList);
|
|
|
return reportVO;
|
|
@@ -239,12 +245,16 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
|
|
|
@Transactional(value = "goodsTransactionManager", propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
public void submit(Long id, StockDamageReportDTO stockDamageReportDTO) {
|
|
|
StockDamageReport report = getById(id);
|
|
|
- if (DamageinventoryEnum.HAS_HANDLE.equals(report.getStatus())) {
|
|
|
+ if (!DamageinventoryEnum.NOT_HANDLE.equals(report.getStatus())) {
|
|
|
throw new ServiceException("该报损单已处理");
|
|
|
}
|
|
|
+ if (stockDamageReportDTO.getStatus().equals(DamageinventoryEnum.CANCEL_HANDLE)){
|
|
|
+ report.setStatus(DamageinventoryEnum.CANCEL_HANDLE);
|
|
|
+ updateById(report);
|
|
|
+ return;
|
|
|
+ }
|
|
|
report.setStatus(DamageinventoryEnum.HAS_HANDLE);
|
|
|
updateById(report);
|
|
|
-
|
|
|
List<StockDTO> arrayList = new ArrayList<>();
|
|
|
//减实际库存
|
|
|
for (StockDamageReportProductDTO dto : stockDamageReportDTO.getProductList()) {
|