You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
4.8 KiB

6 months ago
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<LdPurchaseEndMapper, LdPurchaseEnd> implements ILdPurchaseEndService {
@Autowired
LdPurchaseEndMapper purchaseEndMapper;
@Autowired
ILdOnePutStorageService onePutStorageService;
@Autowired
ILdOnePutStorageDetailService onePutStorageDetailService;
@Autowired
ILdOnePutStoragePurchaseEndService onePutStoragePurchaseEndService;
6 months ago
@Autowired
ILdMaterialService materialService;
6 months ago
@Override
public PageInfo<LdPurchaseEnd> getPurchaseEndList(String purchaseNo, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<LdPurchaseEnd> ldPurchaseEndList = purchaseEndMapper.selectPurchaseEndList(purchaseNo);
PageInfo<LdPurchaseEnd> pageInfo = new PageInfo<>(ldPurchaseEndList);
return pageInfo;
}
@Override
public List<QuarterVO> getAllQuarter() {
List<QuarterVO> quarterVOList = purchaseEndMapper.getAllQuarters();
return quarterVOList;
}
@Override
public List<LdOnePutStorageDetail> getPurchasesByIds(String ids) {
if(StringUtils.isEmpty(ids)){
throw new CustomerException("ids不能为空");
}
//查询一级入库是否有该采购单
List<Long> idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
List<LdOnePutStoragePurchaseEnd> onePutStoragePurchaseEndList = onePutStoragePurchaseEndService.selectByPurchaseEndId(idList);
if(!CollectionUtils.isEmpty(onePutStoragePurchaseEndList)){
//获取一级库ID
List<Long> onePutStorageIds = onePutStoragePurchaseEndList.stream()
.map(LdOnePutStoragePurchaseEnd::getOnePutStorageId)
.distinct()
.collect(Collectors.toList());
//查询是否审核通过
List<LdOnePutStorage> ldOnePutStorageList = onePutStorageService.getApprove(onePutStorageIds);
if(!CollectionUtils.isEmpty(ldOnePutStorageList)){
//通过的话需要汇总入库数量
List<Long> collect = ldOnePutStorageList.stream()
.map(LdOnePutStorage::getId)
.collect(Collectors.toList());
List<LdOnePutStorageDetail> ldOnePutStorageDetailList = onePutStorageDetailService.getSummaryData(collect);
return ldOnePutStorageDetailList;
}
}
//直接返回采购单数据 查询采购单
List<LdPurchaseEnd> ldPurchaseEndList = purchaseEndMapper.selectByIdList(idList);
List<LdOnePutStorageDetail> list = new ArrayList<>();
for (LdPurchaseEnd ldPurchaseEnd : ldPurchaseEndList) {
6 months ago
LdMaterial material = materialService.getById(ldPurchaseEnd.getMaterialId());
5 months ago
if(null == material){
throw new CustomerException("物资不存在 请检查物资是否存在:"+ldPurchaseEnd.getMaterialName());
}
6 months ago
LdOnePutStorageDetail onePutStorageDetail = new LdOnePutStorageDetail();
onePutStorageDetail.setMaterialId(ldPurchaseEnd.getMaterialId());
onePutStorageDetail.setMaterialName(ldPurchaseEnd.getMaterialName());
6 months ago
onePutStorageDetail.setMaterialCode(material.getMaterialCode());
6 months ago
onePutStorageDetail.setModel(ldPurchaseEnd.getModel());
6 months ago
onePutStorageDetail.setType(ldPurchaseEnd.getMoney().compareTo(new BigDecimal("600")) >= 0 ? "NY" : "YH");
6 months ago
onePutStorageDetail.setUnit(ldPurchaseEnd.getUnit());
onePutStorageDetail.setRequiredQuantity(new BigDecimal(ldPurchaseEnd.getNum()));
onePutStorageDetail.setUnitPrice(ldPurchaseEnd.getMoney());
onePutStorageDetail.setLdPurchaseEndId(ldPurchaseEnd.getId());
list.add(onePutStorageDetail);
}
return list;
}
}