| | |
| | | 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.*; |
| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @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()); |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<ClinicSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(String clinicId, String startTime, String endTime) { |
| | | return this.baseMapper.supplierSalesStatisticsGoodsType(clinicId,startTime,endTime); |
| | | public List<ClinicSalesStatisticsGoodsTypeVO> clinicSalesStatisticsGoodsType(String clinicId, String startTime, String endTime) { |
| | | return this.baseMapper.clinicSalesStatisticsGoodsType(clinicId,startTime,endTime); |
| | | } |
| | | |
| | | @Override |
| | | public List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(String clinicId, String startTime, String endTime, String goodsName) { |
| | | return this.baseMapper.supplierSalesStatisticsGoodsCount(clinicId,startTime,endTime,goodsName); |
| | | public List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCount(String clinicId, String startTime, String endTime, String goodsName) { |
| | | return this.baseMapper.clinicSalesStatisticsGoodsCount(clinicId,startTime,endTime,goodsName); |
| | | } |
| | | |
| | | @Override |
| | | public List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(String clinicId, String startTime, String endTime, String goodsName) { |
| | | return this.baseMapper.supplierSalesStatisticsGoodsCountMonth(clinicId,startTime,endTime,goodsName); |
| | | public List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCountMonth(String clinicId, String startTime, String endTime, String goodsName) { |
| | | return this.baseMapper.clinicSalesStatisticsGoodsCountMonth(clinicId,startTime,endTime,goodsName); |
| | | } |
| | | } |