| | |
| | | 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 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; |
| | |
| | | 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; |
| | | |
| | |
| | | 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 |
| | |
| | | |
| | | @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()); |
| | |
| | | tSysOrderGoods1.setBatchId(tErpClinicWarehousingBatch.getId()); |
| | | tSysOrderGoods1.setBatchNumber(tErpClinicWarehousingBatch.getBatchNumber()); |
| | | tSysOrderGoods1.setRemainingQuantity(sysOrderNextDto.getRemainingQuantity()); |
| | | tSysOrderGoods1.setGoodsId(goods.getId()); |
| | | tSysOrderGoods.add(tSysOrderGoods1); |
| | | |
| | | |
| | |
| | | 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 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); |
| | | } |
| | | } |