|
|
@@ -31,6 +31,7 @@ import com.ydtech.modules.protocols.entity.vo.AgreementProductQueryVo;
|
|
|
import com.ydtech.modules.protocols.service.PtlAgreementProductCostsNewService;
|
|
|
import com.ydtech.utils.idgen.IdGenerate;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -423,11 +424,11 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
|
|
|
if(quoteVo.getJqpremium() != null && quoteVo.getJqpremium().compareTo(new BigDecimal(0)) <= 0){
|
|
|
throw new SystemException("交强险保费填写错误请重新填写");
|
|
|
}
|
|
|
- if(quoteVo.getJqpolicyno() != null || quoteVo.getJqPolicy() != null || quoteVo.getJqpremium() != null || quoteVo.getJqCostsProportion() != null){
|
|
|
+ if(quoteVo.getJqpolicyno() != null || !quoteVo.getJqPolicyList().isEmpty() || quoteVo.getJqpremium() != null || quoteVo.getJqCostsProportion() != null){
|
|
|
if(quoteVo.getJqpolicyno() == null){
|
|
|
throw new SystemException("交强险保单号不能为空");
|
|
|
}
|
|
|
- if(quoteVo.getJqPolicy() == null){
|
|
|
+ if(quoteVo.getJqPolicyList().isEmpty()){
|
|
|
throw new SystemException("交强险保单不能为空");
|
|
|
}
|
|
|
if(quoteVo.getJqpremium() == null){
|
|
|
@@ -441,11 +442,11 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
|
|
|
if(quoteVo.getSypremium() != null && quoteVo.getSypremium().compareTo(new BigDecimal(0)) <= 0){
|
|
|
throw new SystemException("商业险保费填写错误请重新填写");
|
|
|
}
|
|
|
- if(quoteVo.getSypolicyno() != null || quoteVo.getSyPolicy() != null || quoteVo.getSypremium() != null || quoteVo.getSyCostsProportion() != null){
|
|
|
+ if(quoteVo.getSypolicyno() != null || !quoteVo.getSyPolicyList().isEmpty() || quoteVo.getSypremium() != null || quoteVo.getSyCostsProportion() != null){
|
|
|
if(quoteVo.getSypolicyno() == null){
|
|
|
throw new SystemException("商业险保单号不能为空");
|
|
|
}
|
|
|
- if(quoteVo.getSyPolicy() == null){
|
|
|
+ if(quoteVo.getSyPolicyList().isEmpty()){
|
|
|
throw new SystemException("商业险保单不能为空");
|
|
|
}
|
|
|
if(quoteVo.getSypremium() == null){
|
|
|
@@ -459,11 +460,11 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
|
|
|
if(quoteVo.getJypremium() != null && quoteVo.getJypremium().compareTo(new BigDecimal(0)) <= 0){
|
|
|
throw new SystemException("非车险保费填写错误请重新填写");
|
|
|
}
|
|
|
- if(quoteVo.getJypolicyno() != null || quoteVo.getJypremium() != null || quoteVo.getNoPolicy() != null || quoteVo.getNoCostsProportion() != null){
|
|
|
+ if(quoteVo.getJypolicyno() != null || quoteVo.getJypremium() != null || !quoteVo.getNoPolicyList().isEmpty() || quoteVo.getNoCostsProportion() != null){
|
|
|
if(quoteVo.getJypolicyno() == null){
|
|
|
throw new SystemException("非车险保单号不能为空");
|
|
|
}
|
|
|
- if(quoteVo.getNoPolicy() == null){
|
|
|
+ if(quoteVo.getNoPolicyList().isEmpty()){
|
|
|
throw new SystemException("非车险保单不能为空");
|
|
|
}
|
|
|
if(quoteVo.getJypremium() == null){
|
|
|
@@ -620,13 +621,24 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
|
|
|
|
|
|
|
|
|
//保存保单
|
|
|
- InsAreaCompanyExternalPolicy insAreaCompanyExternalPolicy = new InsAreaCompanyExternalPolicy();
|
|
|
- insAreaCompanyExternalPolicy.setSubOrderNo(subOrderNo);
|
|
|
- insAreaCompanyExternalPolicy.setJqPolicy(quoteVo.getJqPolicy());
|
|
|
- insAreaCompanyExternalPolicy.setSyPolicy(quoteVo.getSyPolicy());
|
|
|
- insAreaCompanyExternalPolicy.setNoPolicy(quoteVo.getNoPolicy());
|
|
|
- insAreaCompanyExternalPolicy.setJqSign(quoteVo.getJqSign());
|
|
|
- this.insAreaCompanyExternalPolicyService.save(insAreaCompanyExternalPolicy);
|
|
|
+ List<InsAreaCompanyExternalPolicyVo> jqPolicyList = quoteVo.getJqPolicyList();
|
|
|
+ List<InsAreaCompanyExternalPolicyVo> syPolicyList = quoteVo.getSyPolicyList();
|
|
|
+ List<InsAreaCompanyExternalPolicyVo> noPolicyList = quoteVo.getNoPolicyList();
|
|
|
+ List<InsAreaCompanyExternalPolicyVo> jqSignList = quoteVo.getJqSignList();
|
|
|
+ InsAreaCompanyExternalPolicy externalPolicy = new InsAreaCompanyExternalPolicy();
|
|
|
+ if(!jqPolicyList.isEmpty()){
|
|
|
+ externalPolicy.setJqPolicy(jqPolicyList.get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!syPolicyList.isEmpty()){
|
|
|
+ externalPolicy.setSyPolicy(syPolicyList.get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!noPolicyList.isEmpty()){
|
|
|
+ externalPolicy.setNoPolicy(noPolicyList.get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!jqSignList.isEmpty()){
|
|
|
+ externalPolicy.setJqSign(jqSignList.get(0).getUrl());
|
|
|
+ }
|
|
|
+ this.insAreaCompanyExternalPolicyService.save(externalPolicy);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -682,6 +694,120 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
|
|
|
return rejectOrder;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public boolean updateOrderAndSubOrder(InsOrdersEditingVo insOrdersEditingVo) {
|
|
|
+ InsOrders insOrders = new InsOrders();
|
|
|
+ BeanUtils.copyProperties(insOrdersEditingVo,insOrders);
|
|
|
+ insOrdersService.updateById(insOrders);
|
|
|
+ String subOrderNo = insOrdersEditingVo.getInsAreaCompanyList().get(0).getId();
|
|
|
+ //处理保单
|
|
|
+ InsAreaCompanyExternalPolicy externalPolicy = new InsAreaCompanyExternalPolicy();
|
|
|
+ externalPolicy.setSubOrderNo(subOrderNo);
|
|
|
+ if(!insOrdersEditingVo.getJqPolicyList().isEmpty()){
|
|
|
+ externalPolicy.setJqPolicy(insOrdersEditingVo.getJqPolicyList().get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!insOrdersEditingVo.getSyPolicyList().isEmpty()){
|
|
|
+ externalPolicy.setSyPolicy(insOrdersEditingVo.getSyPolicyList().get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!insOrdersEditingVo.getNoPolicyList().isEmpty()){
|
|
|
+ externalPolicy.setNoPolicy(insOrdersEditingVo.getNoPolicyList().get(0).getUrl());
|
|
|
+ }
|
|
|
+ if(!insOrdersEditingVo.getJqSignList().isEmpty()){
|
|
|
+ externalPolicy.setJqSign(insOrdersEditingVo.getJqSignList().get(0).getUrl());
|
|
|
+ }
|
|
|
+ insAreaCompanyExternalPolicyService.updateById(externalPolicy);
|
|
|
+
|
|
|
+ //处理子订单
|
|
|
+ InsAreaCompany insAreaCompany = insOrdersEditingVo.getInsAreaCompanyList().get(0);
|
|
|
+ this.updateById(insAreaCompany);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //通过协议id 查询费用
|
|
|
+ PtlAgreement ptlAgreement = ptlAgreementService.getById(insOrdersEditingVo.getAgreementId());
|
|
|
+
|
|
|
+ //查找协议的费用
|
|
|
+ AgreementProductQueryVo agreementProductQueryVo = new AgreementProductQueryVo();
|
|
|
+ List<String> productId = new ArrayList<>();
|
|
|
+ productId.add(insOrders.getProductid());
|
|
|
+ agreementProductQueryVo.setProductCode(productId);
|
|
|
+ agreementProductQueryVo.setIsAudit("1");
|
|
|
+ agreementProductQueryVo.setAgreementId(ptlAgreement.getId());
|
|
|
+
|
|
|
+ List<PtlAgreementProductCostsNew> costsNews = ptlAgreementProductCostsNewService.getByAgreementId(agreementProductQueryVo);
|
|
|
+
|
|
|
+ if(costsNews.isEmpty())
|
|
|
+ {
|
|
|
+ throw new SystemException("没有找到费用信息");
|
|
|
+ }
|
|
|
+ BigDecimal jqSuperviseCostsProportion,sySuperviseCostsProportion,noSuperviseCostsProportion = new BigDecimal(0);
|
|
|
+ jqSuperviseCostsProportion = (new BigDecimal(costsNews.get(0).getJqCarCostsProportion()));
|
|
|
+ sySuperviseCostsProportion = (new BigDecimal(costsNews.get(0).getSyCarCostsProportion()));
|
|
|
+ noSuperviseCostsProportion = (new BigDecimal(costsNews.get(0).getNoCarCostsProportion()));
|
|
|
+
|
|
|
+
|
|
|
+ InsAreaCompanyExternalFee insAreaCompanyExternalFee = new InsAreaCompanyExternalFee();
|
|
|
+ insAreaCompanyExternalFee.setSubOrderNo(subOrderNo);
|
|
|
+ if(insOrdersEditingVo.getJqCostsProportion() != null) {
|
|
|
+ if (jqSuperviseCostsProportion.compareTo(insOrdersEditingVo.getJqCostsProportion()) > 0) {
|
|
|
+ //总比例等于手续费比例
|
|
|
+ insAreaCompanyExternalFee.setJqSuperviseCostsProportion(insOrdersEditingVo.getJqCostsProportion());
|
|
|
+ insAreaCompanyExternalFee.setJqOtherCostsProportion(new BigDecimal(0));
|
|
|
+ } else {
|
|
|
+ //总比例减去手续费比例 = 跟单比例
|
|
|
+ insAreaCompanyExternalFee.setJqSuperviseCostsProportion(jqSuperviseCostsProportion);
|
|
|
+ insAreaCompanyExternalFee.setJqOtherCostsProportion(insOrdersEditingVo.getJqCostsProportion().subtract(jqSuperviseCostsProportion));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(insOrdersEditingVo.getSyCostsProportion() != null) {
|
|
|
+ if (sySuperviseCostsProportion.compareTo(insOrdersEditingVo.getSyCostsProportion()) >= 0) {
|
|
|
+ //总比例等于手续费比例
|
|
|
+ insAreaCompanyExternalFee.setSySuperviseCostsProportion(insOrdersEditingVo.getSyCostsProportion());
|
|
|
+ insAreaCompanyExternalFee.setSyOtherCostsProportion(new BigDecimal(0));
|
|
|
+ } else {
|
|
|
+ //总比例减去手续费比例 = 跟单比例
|
|
|
+ insAreaCompanyExternalFee.setSySuperviseCostsProportion(sySuperviseCostsProportion);
|
|
|
+ insAreaCompanyExternalFee.setSyOtherCostsProportion(insOrdersEditingVo.getSyCostsProportion().subtract(sySuperviseCostsProportion));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(insOrdersEditingVo.getNoCostsProportion() != null) {
|
|
|
+ if (noSuperviseCostsProportion.compareTo(insOrdersEditingVo.getNoCostsProportion()) >= 0) {
|
|
|
+ //总比例等于手续费比例
|
|
|
+ insAreaCompanyExternalFee.setNoSuperviseCostsProportion(insOrdersEditingVo.getNoCostsProportion());
|
|
|
+ insAreaCompanyExternalFee.setNoOtherCostsProportion(new BigDecimal(0));
|
|
|
+ } else {
|
|
|
+ //总比例减去手续费比例 = 跟单比例
|
|
|
+ insAreaCompanyExternalFee.setNoSuperviseCostsProportion(noSuperviseCostsProportion);
|
|
|
+ insAreaCompanyExternalFee.setNoOtherCostsProportion(insOrdersEditingVo.getNoCostsProportion().subtract(noSuperviseCostsProportion));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ insAreaCompanyExternalFee.setJqSuperviseCostsProportion(insAreaCompanyExternalFee.getJqSuperviseCostsProportion()!=null ? insAreaCompanyExternalFee.getJqSuperviseCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFee.setJqOtherCostsProportion(insAreaCompanyExternalFee.getJqOtherCostsProportion()!=null ? insAreaCompanyExternalFee.getJqOtherCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFee.setSySuperviseCostsProportion(insAreaCompanyExternalFee.getSySuperviseCostsProportion()!=null ? insAreaCompanyExternalFee.getSySuperviseCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFee.setSyOtherCostsProportion(insAreaCompanyExternalFee.getSyOtherCostsProportion()!=null ? insAreaCompanyExternalFee.getSyOtherCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFee.setNoSuperviseCostsProportion(insAreaCompanyExternalFee.getNoSuperviseCostsProportion()!=null ? insAreaCompanyExternalFee.getNoSuperviseCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFee.setNoOtherCostsProportion(insAreaCompanyExternalFee.getNoOtherCostsProportion()!=null ? insAreaCompanyExternalFee.getNoOtherCostsProportion() : new BigDecimal(0));
|
|
|
+ insAreaCompanyExternalFeeService.updateById(insAreaCompanyExternalFee);
|
|
|
+
|
|
|
+
|
|
|
+ costsNews.get(0).setJqCarCostsProportion(insAreaCompanyExternalFee.getJqSuperviseCostsProportion().toString());
|
|
|
+ costsNews.get(0).setJqCarOtherCostsProportion(insAreaCompanyExternalFee.getJqOtherCostsProportion().toString());
|
|
|
+ costsNews.get(0).setSyCarCostsProportion(insAreaCompanyExternalFee.getSySuperviseCostsProportion().toString());
|
|
|
+ costsNews.get(0).setSyCarOtherCostsProportion(insAreaCompanyExternalFee.getSyOtherCostsProportion().toString());
|
|
|
+ costsNews.get(0).setNoCarCostsProportion(insAreaCompanyExternalFee.getNoSuperviseCostsProportion().toString());
|
|
|
+ costsNews.get(0).setNoCarOtherCostsProportion(insAreaCompanyExternalFee.getNoOtherCostsProportion().toString());
|
|
|
+
|
|
|
+ //计算费用
|
|
|
+ feeRuleSchemeNewService.calcCostsExternal(costsNews.get(0),insAreaCompany);
|
|
|
+
|
|
|
+ //重新进入审核状态
|
|
|
+ insFeeAuditService.saveDefaultInsFeeAuditAndHistory(insAreaCompany.getOrderno(), insAreaCompany.getId(), FeeAuditAuditstatus.UNREVICEWED.getCode(),null);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|