|
@ -17,14 +17,9 @@ import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo; |
|
|
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper; |
|
|
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper; |
|
|
import com.ruoyi.erp.service.IErpBomService; |
|
|
import com.ruoyi.erp.service.IErpBomService; |
|
|
import com.ruoyi.purchase.controller.PurchaseQuoteController; |
|
|
import com.ruoyi.purchase.controller.PurchaseQuoteController; |
|
|
import com.ruoyi.purchase.domain.PurchasePlan; |
|
|
import com.ruoyi.purchase.domain.*; |
|
|
import com.ruoyi.purchase.domain.PurchasePlanChild; |
|
|
|
|
|
import com.ruoyi.purchase.domain.PurchaseQuote; |
|
|
|
|
|
import com.ruoyi.purchase.domain.PurchaseQuoteChild; |
|
|
|
|
|
import com.ruoyi.purchase.domain.Vo.PurchasePlanSelectSupplierVo; |
|
|
import com.ruoyi.purchase.domain.Vo.PurchasePlanSelectSupplierVo; |
|
|
import com.ruoyi.purchase.mapper.PurchasePlanChildMapper; |
|
|
import com.ruoyi.purchase.mapper.*; |
|
|
import com.ruoyi.purchase.mapper.PurchaseQuoteChildMapper; |
|
|
|
|
|
import com.ruoyi.purchase.mapper.PurchaseQuoteMapper; |
|
|
|
|
|
import com.ruoyi.system.domain.*; |
|
|
import com.ruoyi.system.domain.*; |
|
|
import com.ruoyi.system.domain.Vo.SysSupplierVo; |
|
|
import com.ruoyi.system.domain.Vo.SysSupplierVo; |
|
|
import com.ruoyi.system.mapper.SysMakeOrderMapper; |
|
|
import com.ruoyi.system.mapper.SysMakeOrderMapper; |
|
@ -34,7 +29,6 @@ import com.ruoyi.system.mapper.SysSupplierMapper; |
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import com.ruoyi.purchase.mapper.PurchasePlanMapper; |
|
|
|
|
|
import com.ruoyi.purchase.service.IPurchasePlanService; |
|
|
import com.ruoyi.purchase.service.IPurchasePlanService; |
|
|
import com.ruoyi.common.core.text.Convert; |
|
|
import com.ruoyi.common.core.text.Convert; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
@ -75,6 +69,9 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService |
|
|
@Autowired |
|
|
@Autowired |
|
|
private PurchaseQuoteChildMapper purchaseQuoteChildMapper; |
|
|
private PurchaseQuoteChildMapper purchaseQuoteChildMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private PurchaseQuoteHistoryMapper purchaseQuoteHistoryMapper; |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
private SysSupplierMapper sysSupplierMapper; |
|
|
private SysSupplierMapper sysSupplierMapper; |
|
|
|
|
|
|
|
@ -207,17 +204,50 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService |
|
|
String supplierCode = purchasePlan.getSupplierCode(); |
|
|
String supplierCode = purchasePlan.getSupplierCode(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuoteChildMapper.selectQuoteChildBySupplierCode(supplierCode); |
|
|
|
|
|
|
|
|
|
|
|
//采购计划子表数据
|
|
|
//采购计划子表数据
|
|
|
List<PurchasePlanChild> purchasePlanChildList = purchasePlanChildMapper.selectPurchasePlanChildPlanCodeList(purchasePlanCodeList); |
|
|
List<PurchasePlanChild> purchasePlanChildList = purchasePlanChildMapper.selectPurchasePlanChildPlanCodeList(purchasePlanCodeList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个映射,以便快速查找物料号对应的最新报价历史
|
|
|
|
|
|
Map<String, PurchaseQuoteHistory> quoteHistoryMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
// 获取所有物料号
|
|
|
|
|
|
Set<String> materialCodes = purchasePlanChildList.stream() |
|
|
|
|
|
.map(PurchasePlanChild::getMaterialNo) |
|
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
|
|
|
// 遍历每个物料号,获取最新的报价数据
|
|
|
|
|
|
for (String materialCode : materialCodes) { |
|
|
|
|
|
PurchaseQuoteHistory purchaseQuoteHistory = new PurchaseQuoteHistory(); |
|
|
|
|
|
purchaseQuoteHistory.setSupplierCode(supplierCode); |
|
|
|
|
|
purchaseQuoteHistory.setMaterialCode(materialCode); |
|
|
|
|
|
|
|
|
|
|
|
List<PurchaseQuoteHistory> purchaseQuoteHistories = selectPurchaseQuoteHistoryList(purchaseQuoteHistory); |
|
|
|
|
|
|
|
|
|
|
|
// 找到最新的报价记录
|
|
|
|
|
|
Optional<PurchaseQuoteHistory> latestQuoteHistory = purchaseQuoteHistories.stream() |
|
|
|
|
|
.filter(item -> "1".equals(item.getIsLatest())) |
|
|
|
|
|
.findFirst(); |
|
|
|
|
|
|
|
|
|
|
|
latestQuoteHistory.ifPresent(history -> quoteHistoryMap.put(materialCode, history)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 合并相同物料料号的数据
|
|
|
// 合并相同物料料号的数据
|
|
|
Map<String, PurchasePlanChild> mergedMap = purchasePlanChildList.stream() |
|
|
Map<String, PurchasePlanChild> mergedMap = purchasePlanChildList.stream() |
|
|
.collect(Collectors.toMap( |
|
|
.collect(Collectors.toMap( |
|
|
PurchasePlanChild::getMaterialNo, |
|
|
PurchasePlanChild::getMaterialNo, |
|
|
item -> item, |
|
|
item -> { |
|
|
|
|
|
// 设置最新的报价数据
|
|
|
|
|
|
PurchaseQuoteHistory quoteHistory = quoteHistoryMap.get(item.getMaterialNo()); |
|
|
|
|
|
if (quoteHistory != null) { |
|
|
|
|
|
item.setLatestQuoteRmb(quoteHistory.getMaterialRmb()); |
|
|
|
|
|
item.setMaterialNoRmbSum(quoteHistory.getMaterialNormb()); |
|
|
|
|
|
item.setMaterialRmbSum(quoteHistory.getMaterialRmb()); |
|
|
|
|
|
} |
|
|
|
|
|
return item; |
|
|
|
|
|
}, |
|
|
(existingItem, newItem) -> { |
|
|
(existingItem, newItem) -> { |
|
|
existingItem.setPurchaseNum( |
|
|
existingItem.setPurchaseNum( |
|
|
(existingItem.getPurchaseNum() != null ? existingItem.getPurchaseNum() : 0) + |
|
|
(existingItem.getPurchaseNum() != null ? existingItem.getPurchaseNum() : 0) + |
|
@ -266,6 +296,29 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查找最新审核通过的物料采购报价
|
|
|
|
|
|
public List<PurchaseQuoteHistory> selectPurchaseQuoteHistoryList(PurchaseQuoteHistory purchaseQuoteHistory) { |
|
|
|
|
|
// 最新的报价
|
|
|
|
|
|
PurchaseQuoteHistory latestQuoteHistory = purchaseQuoteHistoryMapper.findLatestPurchaseQuoteHistory(purchaseQuoteHistory); |
|
|
|
|
|
if (latestQuoteHistory != null) { |
|
|
|
|
|
List<PurchaseQuoteHistory> purchaseQuoteHistories = purchaseQuoteHistoryMapper.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); |
|
|
|
|
|
purchaseQuoteHistories.forEach(item -> { |
|
|
|
|
|
if (Objects.equals(item.getPurchaseQuoteChildId(), latestQuoteHistory.getPurchaseQuoteChildId())) { |
|
|
|
|
|
item.setIsLatest("1"); |
|
|
|
|
|
} else { |
|
|
|
|
|
item.setIsLatest("0"); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
return purchaseQuoteHistories; |
|
|
|
|
|
} |
|
|
|
|
|
return purchaseQuoteHistoryMapper.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 新增采购计划单 |
|
|
* 新增采购计划单 |
|
|
* |
|
|
* |
|
|