package com.nov.KgLowDurable.service.Impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.nov.KgLowDurable.exception.CustomerException; import com.nov.KgLowDurable.mapper.LdOneFormMapper; import com.nov.KgLowDurable.mapper.LdPurchaseEndMapper; import com.nov.KgLowDurable.pojo.entity.*; import com.nov.KgLowDurable.pojo.vo.QuarterVO; import com.nov.KgLowDurable.service.*; import com.nov.KgLowDurable.util.StringUtils; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * 服务实现类 * @author liweidong */ @Service @AllArgsConstructor public class LdPurchaseEndServiceImpl extends ServiceImpl implements ILdPurchaseEndService { @Autowired LdPurchaseEndMapper purchaseEndMapper; @Autowired ILdOnePutStorageService onePutStorageService; @Autowired ILdOnePutStorageDetailService onePutStorageDetailService; @Autowired ILdOnePutStoragePurchaseEndService onePutStoragePurchaseEndService; @Autowired ILdMaterialService materialService; @Override public PageInfo getPurchaseEndList(String purchaseNo, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum,pageSize); List ldPurchaseEndList = purchaseEndMapper.selectPurchaseEndList(purchaseNo); PageInfo pageInfo = new PageInfo<>(ldPurchaseEndList); return pageInfo; } @Override public List getAllQuarter() { List quarterVOList = purchaseEndMapper.getAllQuarters(); return quarterVOList; } @Override public List getPurchasesByIds(String ids) { if(StringUtils.isEmpty(ids)){ throw new CustomerException("ids不能为空"); } //查询一级入库是否有该采购单 List idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()); List onePutStoragePurchaseEndList = onePutStoragePurchaseEndService.selectByPurchaseEndId(idList); if(!CollectionUtils.isEmpty(onePutStoragePurchaseEndList)){ //获取一级库ID List onePutStorageIds = onePutStoragePurchaseEndList.stream() .map(LdOnePutStoragePurchaseEnd::getOnePutStorageId) .distinct() .collect(Collectors.toList()); //查询是否审核通过 List ldOnePutStorageList = onePutStorageService.getApprove(onePutStorageIds); if(!CollectionUtils.isEmpty(ldOnePutStorageList)){ //通过的话需要汇总入库数量 List collect = ldOnePutStorageList.stream() .map(LdOnePutStorage::getId) .collect(Collectors.toList()); List ldOnePutStorageDetailList = onePutStorageDetailService.getSummaryData(collect); return ldOnePutStorageDetailList; } } //直接返回采购单数据 查询采购单 List ldPurchaseEndList = purchaseEndMapper.selectByIdList(idList); List list = new ArrayList<>(); for (LdPurchaseEnd ldPurchaseEnd : ldPurchaseEndList) { LdMaterial material = materialService.getById(ldPurchaseEnd.getMaterialId()); if(null == material){ throw new CustomerException("物资不存在 请检查物资是否存在:"+ldPurchaseEnd.getMaterialName()); } LdOnePutStorageDetail onePutStorageDetail = new LdOnePutStorageDetail(); onePutStorageDetail.setMaterialId(ldPurchaseEnd.getMaterialId()); onePutStorageDetail.setMaterialName(ldPurchaseEnd.getMaterialName()); onePutStorageDetail.setMaterialCode(material.getMaterialCode()); onePutStorageDetail.setModel(ldPurchaseEnd.getModel()); onePutStorageDetail.setType(ldPurchaseEnd.getMoney().compareTo(new BigDecimal("600")) >= 0 ? "NY" : "YH"); onePutStorageDetail.setUnit(ldPurchaseEnd.getUnit()); onePutStorageDetail.setRequiredQuantity(new BigDecimal(ldPurchaseEnd.getNum())); onePutStorageDetail.setUnitPrice(ldPurchaseEnd.getMoney()); onePutStorageDetail.setLdPurchaseEndId(ldPurchaseEnd.getId()); list.add(onePutStorageDetail); } return list; } }