Browse Source

2024-09-13

master
qiezi 1 year ago
parent
commit
a35f8dc758
  1. 7
      src/main/java/com/spring/modules/quotation/mapper/QuoteRoutingHeaderMapper.java
  2. 6
      src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java
  3. 47
      src/main/java/com/spring/modules/quotation/service/impl/QuoteRoutingHeaderServiceImpl.java
  4. 19
      src/main/resources/mapper/quotation/QuoteRoutingHeaderMapper.xml

7
src/main/java/com/spring/modules/quotation/mapper/QuoteRoutingHeaderMapper.java

@ -2,10 +2,7 @@ package com.spring.modules.quotation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spring.modules.part.entity.RoutingHeaderEntity; import com.spring.modules.part.entity.RoutingHeaderEntity;
import com.spring.modules.quotation.entity.QuoteBomDetail;
import com.spring.modules.quotation.entity.QuoteBomHeader;
import com.spring.modules.quotation.entity.QuoteRoutingDetail;
import com.spring.modules.quotation.entity.QuoteRoutingHeader;
import com.spring.modules.quotation.entity.*;
import com.spring.modules.quotation.vo.QuoteBomDetailVo; import com.spring.modules.quotation.vo.QuoteBomDetailVo;
import com.spring.modules.quotation.vo.QuoteRoutingDetailVo; import com.spring.modules.quotation.vo.QuoteRoutingDetailVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -25,4 +22,6 @@ public interface QuoteRoutingHeaderMapper extends BaseMapper<QuoteRoutingHeader>
List<QuoteRoutingDetailVo> searchQuoteRoutingVersion(QuoteRoutingHeader quoteBomHeader); List<QuoteRoutingDetailVo> searchQuoteRoutingVersion(QuoteRoutingHeader quoteBomHeader);
List<QuoteRoutingDetailVo> searchQuoteRoutingAlternativeNo(QuoteRoutingHeader quoteBomHeader); List<QuoteRoutingDetailVo> searchQuoteRoutingAlternativeNo(QuoteRoutingHeader quoteBomHeader);
List<QuotationTool> queryRoutingTool(QuoteRoutingDetail routingDetail);
} }

6
src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java

@ -245,7 +245,11 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe
PartSubPropertiesValueHeader propertiesValueHeader = quoteDetailPropertiesService.getPartSubPropertiesValueHeader(propertiesVo); PartSubPropertiesValueHeader propertiesValueHeader = quoteDetailPropertiesService.getPartSubPropertiesValueHeader(propertiesVo);
// 查询属性详细详细信息 // 查询属性详细详细信息
List<PartSubPropertiesValue> list = quoteDetailPropertiesService.getPartSubPropertiesValue(propertiesValueHeader);
List<PartSubPropertiesValue> list = new ArrayList<>();
if (Objects.nonNull(propertiesValueHeader)){
list = quoteDetailPropertiesService.getPartSubPropertiesValue(propertiesValueHeader);
}
if(!bomHeader.isEmpty()){ if(!bomHeader.isEmpty()){
quotationDetail.setQuotationDetailId(null); quotationDetail.setQuotationDetailId(null);

47
src/main/java/com/spring/modules/quotation/service/impl/QuoteRoutingHeaderServiceImpl.java

@ -20,6 +20,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -142,19 +144,21 @@ public class QuoteRoutingHeaderServiceImpl extends ServiceImpl<QuoteRoutingHeade
.eq(QuoteRoutingDetail::getHeaderId,quoteRoutingHeader.getId()).remove(); .eq(QuoteRoutingDetail::getHeaderId,quoteRoutingHeader.getId()).remove();
// 查询 routing信息 // 查询 routing信息
List<QuoteRoutingDetail> quoteRoutingDetails = baseMapper.getRoutingComponentEntityList(quoteRoutingHeader); List<QuoteRoutingDetail> quoteRoutingDetails = baseMapper.getRoutingComponentEntityList(quoteRoutingHeader);
// todo 删除 routing
// 判断是 header 存在parentId 不存在不是最上层 工艺 不需要修改工具信息 否则需要删除工具信息并新增最新版 // 判断是 header 存在parentId 不存在不是最上层 工艺 不需要修改工具信息 否则需要删除工具信息并新增最新版
QuoteRoutingHeader routingHeader = lambdaQuery().eq(QuoteRoutingHeader::getId, quoteRoutingHeader.getId()).one(); QuoteRoutingHeader routingHeader = lambdaQuery().eq(QuoteRoutingHeader::getId, quoteRoutingHeader.getId()).one();
if (Objects.nonNull(routingHeader) && routingHeader.getParentId() == 0){
// 处理工具
// 删除工具 新增 调用删除工具新增工具方法,该方法需要计算 单位报价成本 预计使用寿命 1 其他值复制过来 参数为
generateQuotationTools(quoteRoutingHeader);
}
// 新增 Detail // 新增 Detail
// 删除工具信息 todo 待优化不明确是否删除哪些工具信息
quotationToolService.lambdaUpdate()
.eq(QuotationTool::getQuotationDetailId,routingHeader.getQuoteDetailId())
.remove();
for (QuoteRoutingDetail quoteRoutingDetail : quoteRoutingDetails) { for (QuoteRoutingDetail quoteRoutingDetail : quoteRoutingDetails) {
quoteRoutingDetail.setQuoteDetailId(quoteRoutingHeader.getQuoteDetailId()); quoteRoutingDetail.setQuoteDetailId(quoteRoutingHeader.getQuoteDetailId());
quoteRoutingDetail.setHeaderId(quoteRoutingHeader.getId()); quoteRoutingDetail.setHeaderId(quoteRoutingHeader.getId());
quoteRoutingDetailService.save(quoteRoutingDetail); quoteRoutingDetailService.save(quoteRoutingDetail);
if (Long.valueOf(0).equals(routingHeader.getParentId())){
// 处理工具
generateQuotationTools(0L,quoteRoutingDetail);
}
} }
} }
@ -243,19 +247,42 @@ public class QuoteRoutingHeaderServiceImpl extends ServiceImpl<QuoteRoutingHeade
save(routingHeader); save(routingHeader);
// 新增 Details // 新增 Details
List<QuoteRoutingDetail> availableList = baseMapper.getRoutingComponentEntityAvailableList(routingHeader); List<QuoteRoutingDetail> availableList = baseMapper.getRoutingComponentEntityAvailableList(routingHeader);
// 删除工具信息 todo 待优化不明确是否删除哪些工具信息
quotationToolService.lambdaUpdate()
.eq(QuotationTool::getQuotationDetailId,routingHeader.getQuoteDetailId())
.remove();
for (QuoteRoutingDetail routingDetail : availableList) { for (QuoteRoutingDetail routingDetail : availableList) {
routingDetail.setQuoteDetailId(routingHeader.getQuoteDetailId()); routingDetail.setQuoteDetailId(routingHeader.getQuoteDetailId());
routingDetail.setHeaderId(routingHeader.getId()); routingDetail.setHeaderId(routingHeader.getId());
quoteRoutingDetailService.save(routingDetail); quoteRoutingDetailService.save(routingDetail);
generateQuotationTools(parentId, routingDetail);
} }
saveAllQuoteBomHeader(bomHeaderVo.getList(),routingHeader.getId()); saveAllQuoteBomHeader(bomHeaderVo.getList(),routingHeader.getId());
} }
return routingHeader; return routingHeader;
} }
private List<QuotationTool> generateQuotationTools(QuoteRoutingHeader routingHeader) {
return null;
private void generateQuotationTools(Long parentId, QuoteRoutingDetail routingDetail) {
if (Objects.isNull(parentId) || Long.valueOf(0).equals(parentId)){
// 如果为零说明是最上层 处理工具信息
// 1查询工具信息
List<QuotationTool> toolList = baseMapper.queryRoutingTool(routingDetail);
for (QuotationTool tool : toolList) {
if (Objects.isNull(tool.getToolQuantity()) || tool.getToolQuantity().compareTo(BigDecimal.ZERO) == 0){
tool.setQuotationUnitCost(BigDecimal.ZERO);
}else if (Objects.isNull(tool.getUnitCost()) || tool.getUnitCost().compareTo(BigDecimal.ZERO) == 0){
tool.setQuotationUnitCost(BigDecimal.ZERO);
}else if (Objects.isNull(tool.getExpectedServiceLife()) || tool.getExpectedServiceLife().compareTo(BigDecimal.ZERO) == 0){
tool.setExpectedServiceLife(BigDecimal.ONE);
}else {
BigDecimal quoteUnitQuote;
quoteUnitQuote = tool.getUnitCost().multiply(tool.getToolQuantity());
quoteUnitQuote = quoteUnitQuote.divide(tool.getExpectedServiceLife(),4 , RoundingMode.HALF_UP);
tool.setQuotationUnitCost(quoteUnitQuote);
}
// 2新增工具信息
quotationToolService.save(tool);
}
}
} }
} }

19
src/main/resources/mapper/quotation/QuoteRoutingHeaderMapper.xml

@ -217,4 +217,23 @@
and rc.routing_type = 'Manufacturing' and rc.routing_type = 'Manufacturing'
and rh.phase_out_date is null and rh.phase_out_date is null
</select> </select>
<select id="queryRoutingTool" resultType="com.spring.modules.quotation.entity.QuotationTool">
select rt.site,
#{quoteDetailId} as quotationDetailId,
rt.tool_id as toolNo,
rt.tool_qty as toolQuantity,
th.tool_description as toolDescription,
th.spec as toolSpec,
th.standard_cost as unitCost,
1 as expected_service_life
from routing_tool rt
left join tool_header th on rt.site = th.site and rt.tool_id = th.tool_id
where rt.site = #{site}
and rt.part_no = #{partNo}
and rt.routing_revision = #{version}
and rt.routing_type = #{routingType}
and rt.alternative_no = #{alternativeNo}
and rt.operation_id = #{operationId}
</select>
</mapper> </mapper>
Loading…
Cancel
Save