|
|
@ -1,20 +1,16 @@ |
|
|
package com.spring.modules.quotation.service.impl; |
|
|
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.LambdaUpdateWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.spring.common.utils.R; |
|
|
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.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.QuotationHeaderVo; |
|
|
import com.spring.modules.quotation.vo.QuotationInformationVo; |
|
|
import com.spring.modules.quotation.vo.QuotationInformationVo; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
@ -37,6 +33,12 @@ public class QuotationHeaderServerImpl extends ServiceImpl<QuotationHeaderMapper |
|
|
@Autowired |
|
|
@Autowired |
|
|
private QuotationDetailService quotationDetailService; |
|
|
private QuotationDetailService quotationDetailService; |
|
|
@Autowired |
|
|
@Autowired |
|
|
|
|
|
private QuotationPartService quotationPartService; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private QuotationRoutingService quotationRoutingService; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private QuotationToolService quotationToolService; |
|
|
|
|
|
@Autowired |
|
|
private SeqRuleService seqRuleService; |
|
|
private SeqRuleService seqRuleService; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private QuotationInformationService quotationInformationService; |
|
|
private QuotationInformationService quotationInformationService; |
|
|
@ -64,8 +66,7 @@ public class QuotationHeaderServerImpl extends ServiceImpl<QuotationHeaderMapper |
|
|
quotationHeader.setVersionCode("A"+quotationHeader.getVersionCode().toUpperCase()); |
|
|
quotationHeader.setVersionCode("A"+quotationHeader.getVersionCode().toUpperCase()); |
|
|
quotationHeader.setCustomerInquiryNo(quotationHeader.getCustomerInquiryNo().toUpperCase()); |
|
|
quotationHeader.setCustomerInquiryNo(quotationHeader.getCustomerInquiryNo().toUpperCase()); |
|
|
if (!StringUtils.hasText(quotationHeader.getInternalInquiryNo())){ |
|
|
if (!StringUtils.hasText(quotationHeader.getInternalInquiryNo())){ |
|
|
boolean saveFlag = save(quotationHeader); |
|
|
|
|
|
if (saveFlag){ |
|
|
|
|
|
|
|
|
if (save(quotationHeader)){ |
|
|
return R.ok("保存成功").put("code",200); |
|
|
return R.ok("保存成功").put("code",200); |
|
|
} |
|
|
} |
|
|
return R.error("保存失败").put("code",500); |
|
|
return R.error("保存失败").put("code",500); |
|
|
@ -169,4 +170,52 @@ public class QuotationHeaderServerImpl extends ServiceImpl<QuotationHeaderMapper |
|
|
} |
|
|
} |
|
|
return R.ok("保存成功").put("data",ids).put("code",200); |
|
|
return R.ok("保存成功").put("data",ids).put("code",200); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public R quotationAgain(Integer quotationHeaderId) { |
|
|
|
|
|
// 查询报价单 |
|
|
|
|
|
QuotationHeader quotationHeader = getById(quotationHeaderId); |
|
|
|
|
|
quotationHeader.setQuotationHeaderId(null); |
|
|
|
|
|
// 获取报价版本号 |
|
|
|
|
|
Long versionCode = seqRuleService.getSeqNoValue(quotationHeader.getSite(), "BJ", quotationHeader.getQuotationNo()).getCurrentVal(); |
|
|
|
|
|
// 修改版本号 |
|
|
|
|
|
quotationHeader.setVersionCode("A"+versionCode); |
|
|
|
|
|
save(quotationHeader); |
|
|
|
|
|
// 查询报价单明细 |
|
|
|
|
|
List<QuotationDetail> quotationDetailList = quotationDetailService.list(new LambdaUpdateWrapper<QuotationDetail>().eq(QuotationDetail::getQuotationHeaderId, quotationHeaderId)); |
|
|
|
|
|
if (null != quotationDetailList && !quotationDetailList.isEmpty()){ |
|
|
|
|
|
quotationDetailList.forEach(quotationDetail -> { |
|
|
|
|
|
// 查询报价明细中的信息(材料,工序,工具,成品属性) |
|
|
|
|
|
List<QuotationPart> partList = quotationPartService.list(new LambdaQueryWrapper<QuotationPart>().eq(QuotationPart::getQuotationDetailId, quotationDetail.getQuotationDetailId())); |
|
|
|
|
|
List<QuotationTool> toolList = quotationToolService.list(new LambdaQueryWrapper<QuotationTool>().eq(QuotationTool::getQuotationDetailId, quotationDetail.getQuotationDetailId())); |
|
|
|
|
|
List<QuotationRouting> routingList = quotationRoutingService.list(new LambdaQueryWrapper<QuotationRouting>().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); |
|
|
|
|
|
} |
|
|
} |
|
|
} |