|
@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
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.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jzg.commons.constants.CompanyConstants;
|
|
import com.jzg.commons.constants.CompanyConstants;
|
|
|
import com.jzg.commons.constants.InsuranceRisk;
|
|
import com.jzg.commons.constants.InsuranceRisk;
|
|
@@ -17,6 +18,7 @@ import com.jzg.commons.entity.dto.InsOrdersParam;
|
|
|
import com.jzg.commons.entity.dto.InsTaskImagesAdd;
|
|
import com.jzg.commons.entity.dto.InsTaskImagesAdd;
|
|
|
import com.jzg.commons.entity.enums.MessageCodeEnum;
|
|
import com.jzg.commons.entity.enums.MessageCodeEnum;
|
|
|
import com.jzg.commons.entity.orders.po.*;
|
|
import com.jzg.commons.entity.orders.po.*;
|
|
|
|
|
+import com.jzg.commons.entity.orders.vo.InsOrdersListVo;
|
|
|
import com.jzg.commons.entity.po.InsTaskImages;
|
|
import com.jzg.commons.entity.po.InsTaskImages;
|
|
|
import com.jzg.commons.entity.po.SysMessageTemplate;
|
|
import com.jzg.commons.entity.po.SysMessageTemplate;
|
|
|
import com.jzg.commons.entity.quote.vo.*;
|
|
import com.jzg.commons.entity.quote.vo.*;
|
|
@@ -29,8 +31,10 @@ import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
import com.jzg.quotation.commons.client.OrgClient;
|
|
import com.jzg.quotation.commons.client.OrgClient;
|
|
|
import com.jzg.quotation.commons.constant.enums.base.ProductsType;
|
|
import com.jzg.quotation.commons.constant.enums.base.ProductsType;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteEchoVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingResultsVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersAdd;
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersAdd;
|
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersEnd;
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersEnd;
|
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersVo;
|
|
import com.jzg.quotation.commons.entity.vo.orders.InsOrdersVo;
|
|
@@ -269,34 +273,31 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
insOrdersKindService.updateBatchById(insOrdersKinds);
|
|
insOrdersKindService.updateBatchById(insOrdersKinds);
|
|
|
|
|
|
|
|
// 税费信息
|
|
// 税费信息
|
|
|
-// VehicleAndVesselTaxVo vehicleAndVesselTax = ordersEnd.getVehicleAndVesselTax();
|
|
|
|
|
-// InsOrdersTax insOrdersTax = BeanUtil.copyProperties(vehicleAndVesselTax, InsOrdersTax.class);
|
|
|
|
|
-// insOrdersTax.setOrderNo(quoteNo);
|
|
|
|
|
-// insOrdersTaxService.updateById(insOrdersTax);
|
|
|
|
|
|
|
+ VehicleAndVesselTaxVo vehicleAndVesselTax = ordersEnd.getVehicleAndVesselTax();
|
|
|
|
|
+ InsOrdersTax insOrdersTax = BeanUtil.copyProperties(vehicleAndVesselTax, InsOrdersTax.class);
|
|
|
|
|
+ insOrdersTax.setOrderNo(quoteNo);
|
|
|
|
|
+ insOrdersTaxService.updateById(insOrdersTax);
|
|
|
|
|
|
|
|
// 交强险 险种信息
|
|
// 交强险 险种信息
|
|
|
-// RiskInfoVo ciRiskInfoVo = ordersEnd.getCiRiskInfoVo();
|
|
|
|
|
-// InsOrdersRisk insuranceInfo = BeanUtil.copyProperties(ciRiskInfoVo, InsOrdersRisk.class);
|
|
|
|
|
-// insOrdersRiskService.update(insuranceInfo,new LambdaUpdateWrapper<>(InsOrdersRisk.class).eq(InsOrdersRisk::getOrderNo,quoteNo));
|
|
|
|
|
-// // 商业险 险种信息
|
|
|
|
|
-// InsOrdersRisk biRiskInfoVo = BeanUtil.copyProperties(ordersEnd.getBiRiskInfoVo(), InsOrdersRisk.class);
|
|
|
|
|
-// insOrdersRiskService.update(biRiskInfoVo,new LambdaUpdateWrapper<>(InsOrdersRisk.class).eq(InsOrdersRisk::getOrderNo,quoteNo));
|
|
|
|
|
|
|
+ RiskInfoVo ciRiskInfoVo = ordersEnd.getCiRiskInfoVo();
|
|
|
|
|
+ InsOrdersRisk insuranceInfo = BeanUtil.copyProperties(ciRiskInfoVo, InsOrdersRisk.class);
|
|
|
|
|
+ insOrdersRiskService.update(insuranceInfo,new LambdaUpdateWrapper<>(InsOrdersRisk.class).eq(InsOrdersRisk::getOrderNo,quoteNo));
|
|
|
|
|
+ // 商业险 险种信息
|
|
|
|
|
+ InsOrdersRisk biRiskInfoVo = BeanUtil.copyProperties(ordersEnd.getBiRiskInfoVo(), InsOrdersRisk.class);
|
|
|
|
|
+ insOrdersRiskService.update(biRiskInfoVo,new LambdaUpdateWrapper<>(InsOrdersRisk.class).eq(InsOrdersRisk::getOrderNo,quoteNo));
|
|
|
|
|
|
|
|
InsTaskImagesAdd imagesAdds = ordersEnd.getImagesAdds();
|
|
InsTaskImagesAdd imagesAdds = ordersEnd.getImagesAdds();
|
|
|
- if (ObjectUtil.isNotNull(imagesAdds)) {
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(imagesAdds)){
|
|
|
List<InsTaskImages> insTaskImages = BeanUtil.copyToList(imagesAdds.getImages(), InsTaskImages.class);
|
|
List<InsTaskImages> insTaskImages = BeanUtil.copyToList(imagesAdds.getImages(), InsTaskImages.class);
|
|
|
- if (CollectionUtil.isNotEmpty(insTaskImages)) {
|
|
|
|
|
- insTaskImagesService.removeByQuoteNo(quoteNo);
|
|
|
|
|
- insTaskImages.forEach(image -> {
|
|
|
|
|
- image.setQuoteNo(String.valueOf(quoteNo));
|
|
|
|
|
- insTaskImagesService.save(image);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ insTaskImages.forEach(image->{
|
|
|
|
|
+ image.setQuoteNo(String.valueOf(quoteNo));
|
|
|
|
|
+ insTaskImagesService.save(image);
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
-// InsOrdersExternalPolicy ordersExternalPolicy = ordersEnd.getInsOrdersExternalPolicy();
|
|
|
|
|
-// ordersExternalPolicy.setOrderNo(String.valueOf(quoteNo));
|
|
|
|
|
-// policyService.updateById(ordersExternalPolicy);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ InsOrdersExternalPolicy ordersExternalPolicy = ordersEnd.getInsOrdersExternalPolicy();
|
|
|
|
|
+ ordersExternalPolicy.setOrderNo(String.valueOf(quoteNo));
|
|
|
|
|
+ policyService.updateById(ordersExternalPolicy);
|
|
|
|
|
|
|
|
|
|
|
|
|
// 返回成功信息,表示订单、车辆和用户信息修改成功
|
|
// 返回成功信息,表示订单、车辆和用户信息修改成功
|
|
@@ -319,7 +320,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Override
|
|
@Override
|
|
|
public InsOrdersVo selectById(Long id) {
|
|
public InsOrdersVo selectById(Long id) {
|
|
|
// 1. 查询订单信息
|
|
// 1. 查询订单信息
|
|
|
- InsOrdersVo insOrdersVo = insOrdersMapper.selectById(id);
|
|
|
|
|
|
|
+ InsOrdersVo insOrdersVo = insOrdersMapper.getById(id);
|
|
|
if (insOrdersVo == null) {
|
|
if (insOrdersVo == null) {
|
|
|
throw new IllegalArgumentException("查询结果为空,无法处理订单信息");
|
|
throw new IllegalArgumentException("查询结果为空,无法处理订单信息");
|
|
|
}
|
|
}
|
|
@@ -486,29 +487,43 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
}
|
|
|
insOrdersOtherService.saveOrUpdate(ordersOther);
|
|
insOrdersOtherService.saveOrUpdate(ordersOther);
|
|
|
|
|
|
|
|
|
|
+ //更新投保单号
|
|
|
|
|
+ InsOrdersPolicy ordersPolicy = insOrdersPolicyService.getOne(new LambdaQueryWrapper<InsOrdersPolicy>().eq(InsOrdersPolicy::getOrderNo,ordersNo));
|
|
|
|
|
+ ordersPolicy.setJqApplyNo(quoteResponse.getCiPolicyNumber());
|
|
|
|
|
+ ordersPolicy.setSyApplyNo(quoteResponse.getBiPolicyNumber());
|
|
|
|
|
+ insOrdersPolicyService.saveOrUpdate(ordersPolicy);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void queryOrderList() {
|
|
|
|
|
-
|
|
|
|
|
|
|
+ public void orderAfterUpdateUnderwriting(UnderwritingResultsVo underwritingResultsVo) {
|
|
|
|
|
+ // 检测主订单是否存在
|
|
|
|
|
+ InsOrders insOrders = insOrdersMapper.selectOne(new LambdaQueryWrapper<InsOrders>().eq(InsOrders::getId,underwritingResultsVo.getOrdersNo()));
|
|
|
|
|
+ AssertionUtils.isFail(Objects.isNull(insOrders),"订单不存在");
|
|
|
|
|
+
|
|
|
|
|
+ Integer status = underwritingResultsVo.getUnderwritingStatus().getStatus();
|
|
|
|
|
+ insOrders.setOrderStatus(String.valueOf(status));
|
|
|
|
|
+ insOrdersMapper.updateById(insOrders);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public String generateOrders(QuoteVo quoteVo) {
|
|
|
|
|
|
|
+ public String generateOrders(QuoteVo quoteVo,String companyName) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
String orderNo = IdGenerate.nextId();
|
|
String orderNo = IdGenerate.nextId();
|
|
|
// 保存主订单信息
|
|
// 保存主订单信息
|
|
|
InsOrders insOrders = new InsOrders();
|
|
InsOrders insOrders = new InsOrders();
|
|
|
insOrders.setId(orderNo);
|
|
insOrders.setId(orderNo);
|
|
|
- insOrders.setQuoteNo(String.valueOf(SnowFlakeUtil.getSnowFlakeId()));
|
|
|
|
|
|
|
+ insOrders.setQuoteNo(quoteVo.getOrder().getQuoteNo());
|
|
|
insOrders.setAgreementId(quoteVo.getOrder().getAgreementId());
|
|
insOrders.setAgreementId(quoteVo.getOrder().getAgreementId());
|
|
|
insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode()); // 订单状态 报价中
|
|
insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode()); // 订单状态 报价中
|
|
|
insOrders.setApiType(String.valueOf(quoteVo.getOrder().getApiType()));
|
|
insOrders.setApiType(String.valueOf(quoteVo.getOrder().getApiType()));
|
|
|
insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
|
|
insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
|
|
|
- String companyName = CompanyConstants.getCompanyNameByCode(quoteVo.getOrder().getInsuranceCompanyCode());
|
|
|
|
|
insOrders.setCompanyName(companyName);
|
|
insOrders.setCompanyName(companyName);
|
|
|
insOrders.setProductId(quoteVo.getOrder().getProductsCode());
|
|
insOrders.setProductId(quoteVo.getOrder().getProductsCode());
|
|
|
|
|
+ insOrders.setProductName(ProductsType.getProductNameByCode(quoteVo.getOrder().getProductsCode()));
|
|
|
String productName = ProductsType.getProductNameByCode(quoteVo.getOrder().getProductsCode());
|
|
String productName = ProductsType.getProductNameByCode(quoteVo.getOrder().getProductsCode());
|
|
|
insOrders.setProductName(productName);
|
|
insOrders.setProductName(productName);
|
|
|
insOrdersMapper.insert(insOrders);
|
|
insOrdersMapper.insert(insOrders);
|
|
@@ -546,4 +561,35 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return orderNo;
|
|
return orderNo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Page<QuoteEchoVo> queryList(InsOrdersParam insOrdersParam){
|
|
|
|
|
+ Page<InsOrdersVo> insOrdersVoPage = insOrdersMapper.queryList(insOrdersParam.getPage(), insOrdersParam);
|
|
|
|
|
+ Page<QuoteEchoVo> quoteEchoVoPage = new Page<>();
|
|
|
|
|
+ List<QuoteEchoVo> quoteEchoVos = new ArrayList<>();
|
|
|
|
|
+ quoteEchoVoPage.setPages(insOrdersVoPage.getPages());
|
|
|
|
|
+ quoteEchoVoPage.setCurrent(insOrdersVoPage.getCurrent());
|
|
|
|
|
+ quoteEchoVoPage.setSize(insOrdersVoPage.getSize());
|
|
|
|
|
+ quoteEchoVoPage.setTotal(insOrdersVoPage.getTotal());
|
|
|
|
|
+ insOrdersVoPage.getRecords().forEach(insOrdersVo -> {
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(insOrdersVo.getCarUserInfoList())) {
|
|
|
|
|
+ for (InsOrdersCarUserInfo carUserInfo : insOrdersVo.getCarUserInfoList()) {
|
|
|
|
|
+ // 使用映射逻辑处理用户信息
|
|
|
|
|
+ CustomerInfoVo customerInfoVo = mapCarUserInfoToCustomerInfo(carUserInfo);
|
|
|
|
|
+ setPolicyPersonInfo(insOrdersVo, carUserInfo.getPolicyPersonType(), customerInfoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ insOrdersVo.setCarUserInfoList(null);
|
|
|
|
|
+ }
|
|
|
|
|
+ quoteEchoVos.add(new QuoteEchoVo(insOrdersVo));
|
|
|
|
|
+ });
|
|
|
|
|
+ quoteEchoVoPage.setRecords(quoteEchoVos);
|
|
|
|
|
+ return quoteEchoVoPage;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public QuoteVo getOrderDetail(String ordersNo) {
|
|
|
|
|
+ InsOrdersVo insOrdersVo = selectById(Long.parseLong(ordersNo));
|
|
|
|
|
+ AssertionUtils.isFail(Objects.isNull(insOrdersVo),"订单不存在");
|
|
|
|
|
+ return new QuoteEchoVo(insOrdersVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|