|
@@ -4,23 +4,23 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.common.utils.Assert;
|
|
|
import com.fjhx.item.entity.product.po.ProductInfo;
|
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
|
import com.fjhx.wms.entity.stock.dto.StockJournalDetailsDto;
|
|
|
import com.fjhx.wms.entity.stock.dto.StockJournalSelectDto;
|
|
|
-import com.fjhx.wms.entity.stock.po.StockJournal;
|
|
|
-import com.fjhx.wms.entity.stock.po.StockJournalDetails;
|
|
|
-import com.fjhx.wms.entity.stock.po.StockWait;
|
|
|
+import com.fjhx.wms.entity.stock.po.*;
|
|
|
import com.fjhx.wms.entity.stock.vo.StockJournalDetailsVo;
|
|
|
import com.fjhx.wms.entity.stock.vo.StockWaitVo;
|
|
|
import com.fjhx.wms.mapper.stock.StockJournalDetailsMapper;
|
|
|
-import com.fjhx.wms.service.stock.StockJournalDetailsService;
|
|
|
-import com.fjhx.wms.service.stock.StockWaitService;
|
|
|
+import com.fjhx.wms.service.stock.*;
|
|
|
+import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.ruoyi.system.utils.UserUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -41,6 +41,12 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
|
|
|
private ProductInfoService productInfoService;
|
|
|
@Autowired
|
|
|
private StockWaitService stockWaitService;
|
|
|
+ @Autowired
|
|
|
+ private StockService stockService;
|
|
|
+ @Autowired
|
|
|
+ private StockJournalService stockJournalService;
|
|
|
+ @Autowired
|
|
|
+ private StockJournalDetailsEditRecordService stockJournalDetailsEditRecordService;
|
|
|
|
|
|
@Override
|
|
|
public Page<StockJournalDetailsVo> getPage(StockJournalSelectDto dto) {
|
|
@@ -138,4 +144,36 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
|
|
|
this.removeById(id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 流水数量修正
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public synchronized void editQuantity(StockJournalDetails dto){
|
|
|
+ Assert.notEmpty(dto.getId(),"流水明细id不能为空");
|
|
|
+ StockJournalDetails stockJournalDetails = getById(dto.getId());
|
|
|
+
|
|
|
+ //保存操作记录
|
|
|
+ StockJournalDetailsEditRecord stockJournalDetailsEditRecord = new StockJournalDetailsEditRecord();
|
|
|
+ stockJournalDetailsEditRecord.setStockJournalDetailsId(dto.getId());
|
|
|
+ stockJournalDetailsEditRecord.setOriginalQuantity(stockJournalDetails.getQuantity());
|
|
|
+ stockJournalDetailsEditRecord.setChangeQuantity(dto.getQuantity());
|
|
|
+
|
|
|
+ stockJournalDetailsEditRecordService.save(stockJournalDetailsEditRecord);
|
|
|
+
|
|
|
+ //修改库存
|
|
|
+ StockJournal stockJournal = stockJournalService.getById(stockJournalDetails.getStockJournalId());
|
|
|
+ BigDecimal subtract = stockJournalDetails.getQuantity().subtract(dto.getQuantity());
|
|
|
+ boolean update = stockService.update(q -> q
|
|
|
+ .eq(Stock::getProductId, stockJournalDetails.getProductId())
|
|
|
+ .eq(Stock::getWarehouseId, stockJournal.getWarehouseId())
|
|
|
+ .setSql("quantity = quantity + " + subtract)
|
|
|
+ );
|
|
|
+ if (!update){
|
|
|
+ throw new ServiceException("操作失败请重试");
|
|
|
+ }
|
|
|
+
|
|
|
+ stockJournalDetails.setQuantity(dto.getQuantity());
|
|
|
+ this.updateById(stockJournalDetails);
|
|
|
+ }
|
|
|
+
|
|
|
}
|