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.
112 lines
4.8 KiB
112 lines
4.8 KiB
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; |
|
|
|
@Autowired |
|
ILdMaterialService materialService; |
|
|
|
@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) { |
|
|
|
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; |
|
} |
|
}
|
|
|