|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.base.Condition;
|
|
|
import com.fjhx.constants.StockJournalTypeConstant;
|
|
|
+import com.fjhx.entity.stock.Stock;
|
|
|
import com.fjhx.entity.stock.StockJournal;
|
|
|
import com.fjhx.enums.stock.InTypeEnum;
|
|
|
import com.fjhx.enums.stock.OutTypeEnum;
|
|
@@ -13,10 +14,13 @@ import com.fjhx.mapper.stock.StockJournalMapper;
|
|
|
import com.fjhx.params.stock.StockChangeVo;
|
|
|
import com.fjhx.params.stock.StockJournalVo;
|
|
|
import com.fjhx.service.stock.StockJournalService;
|
|
|
+import com.fjhx.service.stock.StockService;
|
|
|
import com.fjhx.uitl.code.CodeEnum;
|
|
|
import com.fjhx.utils.UserClientUtil;
|
|
|
import com.fjhx.utils.wrapperUtil.IWrapper;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
@@ -35,6 +39,10 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, StockJournal> implements StockJournalService {
|
|
|
|
|
|
+ @Lazy
|
|
|
+ @Autowired
|
|
|
+ private StockService stockService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<StockJournal> getPage(Map<String, String> condition) {
|
|
|
|
|
@@ -133,6 +141,13 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
|
|
|
// 备注
|
|
|
String remarks = ObjectUtil.defaultIfNull(changeDetails.getRemarks(), stockChangeVo.getDefaultRemarks());
|
|
|
|
|
|
+ // 获取加权平均单价
|
|
|
+ Stock stock = stockService.getOne(q -> q.eq(Stock::getWarehouseId, warehouseId).eq(Stock::getGoodsId, goodsId));
|
|
|
+ BigDecimal weightingAveragePrice = BigDecimal.ZERO;
|
|
|
+ if (stock != null) {
|
|
|
+ weightingAveragePrice = ObjectUtil.defaultIfNull(stock.getWeightingAveragePrice(), BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
StockJournal stockJournal = new StockJournal();
|
|
|
|
|
|
if (typeEnum instanceof InTypeEnum) {
|
|
@@ -145,6 +160,7 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
|
|
|
stockJournal.setDetailsType(((OutTypeEnum) typeEnum).getKey());
|
|
|
}
|
|
|
|
|
|
+ stockJournal.setAmount(weightingAveragePrice.multiply(changeQuantity));
|
|
|
stockJournal.setCode(code);
|
|
|
stockJournal.setBusinessId(businessId);
|
|
|
stockJournal.setGoodsId(goodsId);
|
|
@@ -216,4 +232,23 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
|
|
|
}
|
|
|
return page;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> inOutDocument(Condition condition) {
|
|
|
+
|
|
|
+ IWrapper<Object> wrapper = IWrapper.getWrapper(condition)
|
|
|
+ .eq("sj", StockJournal::getType)
|
|
|
+ .like("sj", StockJournal::getCode)
|
|
|
+ .eq("sj", StockJournal::getCreateUser)
|
|
|
+ .eq("sj", StockJournal::getWarehouseId)
|
|
|
+ .periodTime("sj", StockJournal::getCreateTime)
|
|
|
+ .groupBy("sj.code")
|
|
|
+ .orderByDesc("sj", StockJournal::getId);
|
|
|
+
|
|
|
+ Page<Map<String, Object>> page = baseMapper.inOutDocument(condition.getPage(), wrapper);
|
|
|
+
|
|
|
+ UserClientUtil.setUserName(page.getRecords(),"createUser","createUserName");
|
|
|
+
|
|
|
+ return page;
|
|
|
+ }
|
|
|
}
|