|
@@ -2,9 +2,12 @@ package com.fjhx.victoriatourist.service.stock.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
|
import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalInfo;
|
|
|
import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
|
|
@@ -126,27 +129,36 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
|
|
|
this.removeById(id);
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
+ @DSTransactional
|
|
|
@Override
|
|
|
public void receive(StockTransferDto stockTransferDto) {
|
|
|
- StockTransfer stockTransfer = getById(stockTransferDto);
|
|
|
- stockTransfer.setInStatus(1);//修改为已接收
|
|
|
- updateById(stockTransfer);
|
|
|
+ StockTransfer stockTransfer = getById(stockTransferDto.getId());
|
|
|
+ stockTransfer.setInStatus(2);//修改为已接收
|
|
|
//明细
|
|
|
List<Stock> stockList = new ArrayList<>();
|
|
|
List<StockTransferDetails> stockTransferDetailsList = stockTransferDto.getStockTransferDetailsList();
|
|
|
- stockTransferDetailsService.updateBatchById(stockTransferDetailsList);
|
|
|
- //获取数据库中的数据
|
|
|
- List<StockTransferDetails> oldstockTransferDetailsList = stockTransferDetailsService.listByIds(stockTransferDetailsList);
|
|
|
- Map<Long, StockTransferDetails> oldstockTransferDetailsMap = oldstockTransferDetailsList.stream().collect(Collectors.toMap(StockTransferDetails::getId, Function.identity()));
|
|
|
- for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
|
|
|
- Stock stock = new Stock();
|
|
|
- stock.setProductId(stockTransferDetails.getProductId());
|
|
|
- stock.setQuantity(stockTransferDetails.getInQuantity());
|
|
|
+ if(ObjectUtil.isNotEmpty(stockTransferDetailsList)) {
|
|
|
+ stockTransferDetailsService.updateBatchById(stockTransferDetailsList);
|
|
|
+ //获取数据库中的数据
|
|
|
+ List<Long> ids = stockTransferDetailsList.stream().map(StockTransferDetails::getId).collect(Collectors.toList());
|
|
|
+ List<StockTransferDetails> oldstockTransferDetailsList = stockTransferDetailsService.listByIds(ids);
|
|
|
+ Map<Long, StockTransferDetails> oldstockTransferDetailsMap = oldstockTransferDetailsList.stream().collect(Collectors.toMap(StockTransferDetails::getId, Function.identity()));
|
|
|
+
|
|
|
+ Integer abnormalFlag = 0;
|
|
|
+ for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
|
|
|
+ Stock stock = new Stock();
|
|
|
+ stock.setProductId(stockTransferDetails.getProductId());
|
|
|
+ stock.setQuantity(stockTransferDetails.getInQuantity());
|
|
|
+ stockList.add(stock);
|
|
|
|
|
|
- //调仓接收数量与发出数量不一致
|
|
|
- StockTransferDetails oldstockTransferDetails = oldstockTransferDetailsMap.get(stockTransferDetails.getId());
|
|
|
- if (stockTransferDetails.getInQuantity()!=oldstockTransferDetails.getOutQuantity()) {
|
|
|
+ //调仓接收数量与发出数量不一致
|
|
|
+ StockTransferDetails oldstockTransferDetails = oldstockTransferDetailsMap.get(stockTransferDetails.getId());
|
|
|
+ if (stockTransferDetails.getInQuantity() != oldstockTransferDetails.getOutQuantity()) {
|
|
|
+ abnormalFlag =1;
|
|
|
+ stockTransfer.setInStatus(1);//设置为部分接收
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(abnormalFlag ==1){
|
|
|
AbnormalInfo abnormalInfo = new AbnormalInfo();
|
|
|
abnormalInfo.setId(IdWorker.getId());
|
|
|
abnormalInfo.setType(30);
|
|
@@ -155,6 +167,7 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
|
|
|
abnormalInfoService.save(abnormalInfo);
|
|
|
}
|
|
|
}
|
|
|
+ updateById(stockTransfer);
|
|
|
//创建出入库记录
|
|
|
StockJournal stockJournal = new StockJournal();
|
|
|
stockJournal.setType(3);
|
|
@@ -163,12 +176,14 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
|
|
|
stockJournal.setBusinessId(stockTransfer.getId());
|
|
|
//保存出入库记录
|
|
|
stockJournalService.save(stockJournal);
|
|
|
- //出库
|
|
|
- stockService.ModifyInventory(stockJournal.getId(), 2, stockList, stockTransfer.getOutWarehouseId());
|
|
|
- //入库
|
|
|
- List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 1, stockList, stockTransfer.getInWarehouseId());
|
|
|
- //保存出入库记录明细
|
|
|
- stockJournalDetailsService.saveBatch(stockJournalDetailsList);
|
|
|
+ if(ObjectUtil.isNotEmpty(stockList)) {
|
|
|
+ //出库
|
|
|
+ stockService.ModifyInventory(stockJournal.getId(), 2, stockList, stockTransfer.getOutWarehouseId());
|
|
|
+ //入库
|
|
|
+ List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 1, stockList, stockTransfer.getInWarehouseId());
|
|
|
+ //保存出入库记录明细
|
|
|
+ stockJournalDetailsService.saveBatch(stockJournalDetailsList);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|