123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package com.fjhx.purchase.service;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
- import com.fjhx.purchase.entity.purchase.po.Purchase;
- import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
- import com.fjhx.purchase.service.arrival.ArrivalDetailService;
- import com.fjhx.purchase.service.purchase.PurchaseDetailService;
- import com.fjhx.purchase.service.purchase.PurchaseService;
- import com.fjhx.purchase.service.subscribe.SubscribeService;
- import com.fjhx.wms.entity.ArrivalDetailPo;
- import com.fjhx.wms.entity.PurchaseDetailPo;
- import com.fjhx.wms.entity.SubscribeDetailPo;
- import com.fjhx.wms.entity.stock.po.StockWaitDetails;
- import com.fjhx.wms.service.PurService;
- import com.fjhx.wms.service.stock.StockWaitDetailsService;
- import com.ruoyi.common.utils.wrapper.IWrapper;
- 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.stream.Collectors;
- @Service
- public class purServiceImpl implements PurService {
- @Autowired
- private PurchaseService purchaseService;
- @Autowired
- private PurchaseDetailService purchaseDetailService;
- @Autowired
- private ArrivalDetailService arrivalDetailService;
- @Autowired
- private StockWaitDetailsService stockWaitDetailsService;
- @Autowired
- private SubscribeService subscribeService;
- /**
- * 修改采购到货状态
- */
- @Override
- public void updatePurchaseArrivalStatus(Long id) {
- Purchase purchase = purchaseService.getById(id);
- //修改到货状态
- Integer flag = 0;
- List<PurchaseDetail> purchaseDetailsList1 = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
- if (ObjectUtil.isNotEmpty(purchaseDetailsList1)) {
- List<Long> purchaseDetailsIds = purchaseDetailsList1.stream().map(PurchaseDetail::getId).collect(Collectors.toList());
- List<ArrivalDetail> arrivalDetailsList1 = arrivalDetailService.list(q -> q.in(ArrivalDetail::getPurchaseDetailId, purchaseDetailsIds));
- if (ObjectUtil.isNotEmpty(arrivalDetailsList1)) {
- Map<Long, List<ArrivalDetail>> arrivalDetailsMap = arrivalDetailsList1.stream().collect(Collectors.groupingBy(ArrivalDetail::getPurchaseDetailId));
- for (PurchaseDetail purchaseDetail : purchaseDetailsList1) {
- //获取到货明细
- List<ArrivalDetail> arrivalDetails = arrivalDetailsMap.get(purchaseDetail.getId());
- List<Long> arrivalIds = arrivalDetails.stream().map(ArrivalDetail::getId).collect(Collectors.toList());
- //根据到货明细获取入库明细
- List<StockWaitDetails> stockWaitDetailsList = stockWaitDetailsService.list(q -> q.in(StockWaitDetails::getBusinessDetailsId, arrivalIds));
- BigDecimal count = stockWaitDetailsList.stream()
- .map(StockWaitDetails::getReceiptQuantity)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- if (count.compareTo(purchaseDetail.getCount()) >= 0) {
- flag++;
- }
- }
- if (purchaseDetailsList1.size() == flag) {
- //完全到货
- purchase.setArrivalStatus(20);
- } else {
- //部分到货
- purchase.setArrivalStatus(10);
- }
- purchaseService.updateById(purchase);
- }
- }
- }
- /**
- * 获取已采购数量
- */
- @Override
- public List<PurchaseDetailPo> getPurchaseCountList(IWrapper<Object> wrapper){
- return purchaseService.getPurchaseCountList(wrapper);
- }
- /**
- * 获取已申购数量
- */
- @Override
- public List<SubscribeDetailPo> getSubscribeCountList(IWrapper<Object> wrapper) {
- return subscribeService.getSubscribeCountList(wrapper);
- }
- @Override
- public List<ArrivalDetailPo> getArrivalDetailByIds(List<Long> ids) {
- List<ArrivalDetail> list = arrivalDetailService.list(q -> q.in(ArrivalDetail::getId, ids));
- List<ArrivalDetailPo> arrivalDetailPos = BeanUtil.copyToList(list, ArrivalDetailPo.class);
- return arrivalDetailPos;
- }
- @Override
- public List<PurchaseDetailPo> getPurchaseDetailByIds(List<Long> ids) {
- List<PurchaseDetail> list = purchaseDetailService.list(q -> q.in(PurchaseDetail::getId, ids));
- List<PurchaseDetailPo> purchaseDetailPos = BeanUtil.copyToList(list, PurchaseDetailPo.class);
- return purchaseDetailPos;
- }
- }
|