liujie
3 天以前 7df0337148d9d6d6158ad93564aa2a3c827265cc
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.BaseModel;
import com.ruoyi.system.dto.TSysOrderDto;
import com.ruoyi.system.dto.TSysOrderNextDto;
import com.ruoyi.system.mapper.*;
@@ -12,6 +13,8 @@
import com.ruoyi.system.service.TCrmClinicService;
import com.ruoyi.system.service.TErpClinicOutboundService;
import com.ruoyi.system.service.TSysOrderService;
import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO;
import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsTypeVO;
import com.ruoyi.system.vo.TSysOrderPageVo;
import com.ruoyi.system.vo.TSysOrderVO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +25,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
@@ -69,7 +73,7 @@
        for (TSysOrderVO sysOrderVO : sysOrderVOS) {
            sysOrderVO.setSysOrderGoods(sysOrderGoodsList.stream().filter(sysOrderGoods -> sysOrderGoods.getOrderId().equals(sysOrderVO.getId())).collect(Collectors.toList()));
        }
        return this.baseMapper.queryListByAppUserId(id);
        return sysOrderVOS;
    }
    @Override
@@ -89,21 +93,23 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void add(TSysOrderDto dto, TCrmClinic crmClinic) {
    public void add(TSysOrderDto dto, TCrmClinic crmClinic,String name,String userId) {
        // 判断库存够不够  添加订单 添加订单二级  出库记录
        List<TSysOrderNextDto> dtoList = dto.getDtoList();
        ArrayList<TSysOrderGoods> tSysOrderGoods = new ArrayList<>();
        ArrayList<TErpClinicOutboundGoods> erpClinicOutboundGoods = new ArrayList<>();
        HashSet<String> goodsIds = new HashSet<>();
        for (TSysOrderNextDto sysOrderNextDto : dtoList) {
            TErpClinicWarehousingBatch tErpClinicWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(sysOrderNextDto.getBatchId());
            // 找出这个批次出库多少
            List<TErpClinicOutboundGoods> tErpClinicOutboundGoods = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getWarehousingBatchId, sysOrderNextDto.getBatchId()));
            int count = tErpClinicOutboundGoods.stream().mapToInt(TErpClinicOutboundGoods::getOutboundCount).sum();
            if(tErpClinicWarehousingBatch.getPurchaseCount() < count + sysOrderNextDto.getNum()){
            if(tErpClinicWarehousingBatch.getWarehousingNumber() < count + sysOrderNextDto.getNum()){
                throw new RuntimeException("库存不足");
            }
            TErpGoods goods = erpGoodsMapper.selectById(tErpClinicWarehousingBatch.getGoodsId());
            goodsIds.add(goods.getId());
            TSysOrderGoods tSysOrderGoods1 = new TSysOrderGoods();
            tSysOrderGoods1.setGoodsName(goods.getGoodsName());
            TErpGoodsType tErpGoodsType = erpGoodsTypeMapper.selectById(goods.getTypeId());
@@ -116,6 +122,7 @@
            tSysOrderGoods1.setBatchId(tErpClinicWarehousingBatch.getId());
            tSysOrderGoods1.setBatchNumber(tErpClinicWarehousingBatch.getBatchNumber());
            tSysOrderGoods1.setRemainingQuantity(sysOrderNextDto.getRemainingQuantity());
            tSysOrderGoods1.setGoodsId(goods.getId());
            tSysOrderGoods.add(tSysOrderGoods1);
@@ -148,6 +155,9 @@
        tErpClinicOutbound.setOrderNumber(tSysOrder.getOrderNumber());
        tErpClinicOutbound.setTotalMoney(dto.getTotalMoney());
        tErpClinicOutbound.setOutboundNumber("G"+System.currentTimeMillis());
        tErpClinicOutbound.setCreateBy(name);
        tErpClinicOutbound.setCreateId(userId);
        tErpClinicOutbound.setTypeNum(goodsIds.size());
        erpClinicOutboundMapper.insert(tErpClinicOutbound);
        for (TErpClinicOutboundGoods erpClinicOutboundGood : erpClinicOutboundGoods) {
@@ -156,4 +166,34 @@
        }
    }
    @Override
    public Integer clinicSalesStatisticsCount(List<String> clinicIds) {
        return this.baseMapper.clinicSalesStatisticsCount(clinicIds);
    }
    @Override
    public Integer clinicSalesStatisticsTypeCount(List<String> clinicIds) {
        return this.baseMapper.clinicSalesStatisticsTypeCount(clinicIds);
    }
    @Override
    public BigDecimal clinicSalesStatisticsMoney(String clinicId, String startTime, String endTime) {
        return this.baseMapper.clinicSalesStatisticsMoney(clinicId,startTime,endTime);
    }
    @Override
    public List<ClinicSalesStatisticsGoodsTypeVO> clinicSalesStatisticsGoodsType(String clinicId, String startTime, String endTime) {
        return this.baseMapper.clinicSalesStatisticsGoodsType(clinicId,startTime,endTime);
    }
    @Override
    public List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCount(String clinicId, String startTime, String endTime, String goodsName) {
        return this.baseMapper.clinicSalesStatisticsGoodsCount(clinicId,startTime,endTime,goodsName);
    }
    @Override
    public List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCountMonth(String clinicId, String startTime, String endTime, String goodsName) {
        return this.baseMapper.clinicSalesStatisticsGoodsCountMonth(clinicId,startTime,endTime,goodsName);
    }
}