diff --git a/src/main/java/com/spring/modules/quotation/entity/QuotationTool.java b/src/main/java/com/spring/modules/quotation/entity/QuotationTool.java index 8549d750..8d025568 100644 --- a/src/main/java/com/spring/modules/quotation/entity/QuotationTool.java +++ b/src/main/java/com/spring/modules/quotation/entity/QuotationTool.java @@ -18,7 +18,7 @@ public class QuotationTool { /** * 外键 */ - private String quotationDetailId; + private Integer quotationDetailId; private BigDecimal seqNo; /** * 工厂编码 diff --git a/src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java b/src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java index 124856a7..aa3f8acd 100644 --- a/src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java +++ b/src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java @@ -60,4 +60,11 @@ public interface QuotationHeaderServer extends IService { * @return */ R saveBatchQuotationHeader(List quotationInformationVoList); + + /** + * 再次报价 重新报价 + * @param quotationHeaderId + * @return + */ + R quotationAgain(Integer quotationHeaderId); } diff --git a/src/main/java/com/spring/modules/quotation/service/SeqRuleService.java b/src/main/java/com/spring/modules/quotation/service/SeqRuleService.java index c7af5281..6cde0534 100644 --- a/src/main/java/com/spring/modules/quotation/service/SeqRuleService.java +++ b/src/main/java/com/spring/modules/quotation/service/SeqRuleService.java @@ -6,9 +6,19 @@ import com.spring.modules.quotation.entity.SeqRule; public interface SeqRuleService extends IService { /** * 获取序列号 + * @param site 工厂编号 * @param type 类型 * @param prefix 前缀 * @return */ String getSeqNo(String site,String type,String prefix); + + /** + * 获取序列号 + * @param site 工厂编号 + * @param type 类型 + * @param prefix 前缀 + * @return + */ + SeqRule getSeqNoValue(String site,String type,String prefix); } diff --git a/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java b/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java index 3131bc52..db8a0176 100644 --- a/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java +++ b/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java @@ -1,20 +1,16 @@ package com.spring.modules.quotation.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.spring.common.utils.R; -import com.spring.modules.quotation.entity.QuotationDetail; -import com.spring.modules.quotation.entity.QuotationHeader; -import com.spring.modules.quotation.entity.QuotationInformationEntity; -import com.spring.modules.quotation.entity.SeqRule; +import com.spring.modules.quotation.entity.*; import com.spring.modules.quotation.mapper.QuotationHeaderMapper; -import com.spring.modules.quotation.service.QuotationDetailService; -import com.spring.modules.quotation.service.QuotationHeaderServer; -import com.spring.modules.quotation.service.QuotationInformationService; -import com.spring.modules.quotation.service.SeqRuleService; +import com.spring.modules.quotation.service.*; import com.spring.modules.quotation.vo.QuotationHeaderVo; import com.spring.modules.quotation.vo.QuotationInformationVo; import lombok.extern.slf4j.Slf4j; @@ -37,6 +33,12 @@ public class QuotationHeaderServerImpl extends ServiceImpl quotationDetailList = quotationDetailService.list(new LambdaUpdateWrapper().eq(QuotationDetail::getQuotationHeaderId, quotationHeaderId)); + if (null != quotationDetailList && !quotationDetailList.isEmpty()){ + quotationDetailList.forEach(quotationDetail -> { + // 查询报价明细中的信息(材料,工序,工具,成品属性) + List partList = quotationPartService.list(new LambdaQueryWrapper().eq(QuotationPart::getQuotationDetailId, quotationDetail.getQuotationDetailId())); + List toolList = quotationToolService.list(new LambdaQueryWrapper().eq(QuotationTool::getQuotationDetailId, quotationDetail.getQuotationDetailId())); + List routingList = quotationRoutingService.list(new LambdaQueryWrapper().eq(QuotationRouting::getQuotationDetailId, quotationDetail.getQuotationDetailId())); + // 循环新增报价单明细 + quotationDetail.setQuotationDetailId(null); + quotationDetail.setQuotationHeaderId(quotationHeader.getQuotationHeaderId()); + quotationDetailService.save(quotationDetail); + // 将报价明细中的(材料,工序,工具,成品属性)新增到报价单明细中 + //新增材料 + partList = partList.stream().peek(quotationPart -> { + quotationPart.setQuotationPartId(null); + quotationPart.setQuotationDetailId(quotationDetail.getQuotationDetailId()); + }).collect(Collectors.toList()); + quotationPartService.saveBatch(partList); + // 新增工艺 + routingList = routingList.stream().peek(quotationRouting -> { + quotationRouting.setQuotationRoutingId(null); + quotationRouting.setQuotationDetailId(quotationDetail.getQuotationDetailId()); + }).collect(Collectors.toList()); + quotationRoutingService.saveBatch(routingList); + // 新增工具 + toolList = toolList.stream().peek(quotationTool -> { + quotationTool.setQuotationToolId(null); + quotationTool.setQuotationDetailId(quotationDetail.getQuotationDetailId()); + }).collect(Collectors.toList()); + quotationToolService.saveBatch(toolList); + + }); + } + return R.ok("操作成功").put("code",200); + } } diff --git a/src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java b/src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java index f388e6f0..3c31b981 100644 --- a/src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java +++ b/src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java @@ -27,6 +27,17 @@ public class SeqRuleServiceImpl extends ServiceImpl impl return seqNo; } + @Override + public SeqRule getSeqNoValue(String site, String type, String prefix) { + SeqRule seqRule = lambdaQuery().eq(SeqRule::getSite,site).eq(SeqRule::getType, type).eq(SeqRule::getPrefix, prefix).one(); + //生成完成直接递增 + seqRule.setCurrentVal(seqRule.getCurrentVal()+1); + if (!updateById(seqRule)) { + throw new RuntimeException("序列号修改失败!"); + } + return seqRule; + } + /** * 通过序列号规则获取序列号 * @param seqRule 序列号规则