Browse Source

2023-12-29 plm报价

master
zelian_wu 3 years ago
parent
commit
9e982ec44b
  1. 2
      src/main/java/com/spring/modules/quotation/entity/QuotationTool.java
  2. 7
      src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java
  3. 10
      src/main/java/com/spring/modules/quotation/service/SeqRuleService.java
  4. 69
      src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java
  5. 11
      src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java

2
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; private BigDecimal seqNo;
/** /**
* 工厂编码 * 工厂编码

7
src/main/java/com/spring/modules/quotation/service/QuotationHeaderServer.java

@ -60,4 +60,11 @@ public interface QuotationHeaderServer extends IService<QuotationHeader> {
* @return * @return
*/ */
R saveBatchQuotationHeader(List<QuotationInformationVo> quotationInformationVoList); R saveBatchQuotationHeader(List<QuotationInformationVo> quotationInformationVoList);
/**
* 再次报价 重新报价
* @param quotationHeaderId
* @return
*/
R quotationAgain(Integer quotationHeaderId);
} }

10
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<SeqRule> { public interface SeqRuleService extends IService<SeqRule> {
/** /**
* 获取序列号 * 获取序列号
* @param site 工厂编号
* @param type 类型 * @param type 类型
* @param prefix 前缀 * @param prefix 前缀
* @return * @return
*/ */
String getSeqNo(String site,String type,String prefix); String getSeqNo(String site,String type,String prefix);
/**
* 获取序列号
* @param site 工厂编号
* @param type 类型
* @param prefix 前缀
* @return
*/
SeqRule getSeqNoValue(String site,String type,String prefix);
} }

69
src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServerImpl.java

@ -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);
}
} }

11
src/main/java/com/spring/modules/quotation/service/impl/SeqRuleServiceImpl.java

@ -27,6 +27,17 @@ public class SeqRuleServiceImpl extends ServiceImpl<SeqRuleMapper, SeqRule> impl
return seqNo; 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 序列号规则 * @param seqRule 序列号规则

Loading…
Cancel
Save