|
|
@@ -46,6 +46,7 @@ import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
import com.jzg.quotation.commons.client.OrgClient;
|
|
|
import com.jzg.quotation.commons.client.PartnerDistributionClient;
|
|
|
import com.jzg.quotation.commons.client.PlatformClient;
|
|
|
+import com.jzg.quotation.commons.utils.BeanCopyUtil;
|
|
|
import com.jzg.quotation.commons.utils.SnowFlakeUtil;
|
|
|
import com.jzg.quotation.summary.consumer.template.OrderMessageTemplate;
|
|
|
import com.jzg.quotation.summary.entity.bo.DataValueBo;
|
|
|
@@ -154,18 +155,24 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
public HttpResult saveOrders(InsOrdersAdd ordersAdd) {
|
|
|
// 检查输入参数是否为空,如果为空则返回错误信息
|
|
|
try {
|
|
|
+
|
|
|
// 获取订单对象并设置引用编号
|
|
|
InsOrders insOrders = ordersAdd.getInsOrders();
|
|
|
- insOrders.setQuoteNo(SnowFlakeUtil.getSnowFlakeId());
|
|
|
- insOrders.setCompanyId(ordersAdd.getInsOrdersOtherInfo().getCompanyId());
|
|
|
- HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(ordersAdd.getInsOrdersOtherInfo().getCompanyId());
|
|
|
+ insOrders.setRealQuoteUserId(baseController.getUserName());
|
|
|
+ InsOrdersAdd insOrdersAdd = BeanCopyUtil.deepCopy(ordersAdd, InsOrdersAdd.class);
|
|
|
+ String parentId = insOrdersMapper.selectMainOrderNumber(ordersAdd.getCarInfoVo().getLicenseNo(),ordersAdd.getInsOrders().getRealQuoteUserId());
|
|
|
+ if (StringUtils.isEmpty(insOrders.getQuoteNo())){
|
|
|
+ insOrders.setQuoteNo(SnowFlakeUtil.getSnowFlakeId());
|
|
|
+ }
|
|
|
+ HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(ordersAdd.getInsOrders().getCompanyId());
|
|
|
String companyName = CompanyConstants.getCompanyNameByCode(esmInsCompanyHttpResult.getData().getCompanyCode());
|
|
|
insOrders.setCompanyName(companyName);
|
|
|
- insOrders.setSigningTime(ordersAdd.getInsOrdersOtherInfo().getSigningTime());
|
|
|
insOrders.setIsTemporarily(ordersAdd.getIsTemporarily());
|
|
|
insOrders.setProductName(ProductsType.getProductNameByCode(ordersAdd.getProductId()));
|
|
|
- insOrders.setOrderStatus(InsOrderStatusEnum.UNDERWRITED.getCode());
|
|
|
- insOrders.setRealQuoteUserId(baseController.getUserName());
|
|
|
+ insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
+
|
|
|
+ insOrders.setEntryStatus(3);
|
|
|
+ insOrders.setParentId(parentId);
|
|
|
// 插入订单信息,如果插入失败,则返回错误信息
|
|
|
int insertResult = insOrdersMapper.insert(insOrders);
|
|
|
if (insertResult <= 0) {
|
|
|
@@ -207,6 +214,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
insOrdersCosts.setOrderNo(quoteNo);
|
|
|
insOrdersCostsService.save(insOrdersCosts);
|
|
|
|
|
|
+ // 保存保单号
|
|
|
+ InsOrdersPolicy policy = BeanUtil.copyProperties(insOrdersOtherInfo,InsOrdersPolicy.class);
|
|
|
+ policy.setOrderNo(quoteNo);
|
|
|
+ insOrdersPolicyService.save(policy);
|
|
|
+
|
|
|
+ // 保存订单费用
|
|
|
+ updateOrSaveFeeOrder(ordersAdd.getFeeOrdersVo(),quoteNo);
|
|
|
+
|
|
|
// 保险种类信息
|
|
|
List<KindInfoVo> kindInfoVo = ordersAdd.getKindInfoVo();
|
|
|
List<InsOrdersKind> insOrdersKinds = BeanUtil.copyToList(kindInfoVo, InsOrdersKind.class);
|
|
|
@@ -236,9 +251,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
if (ObjectUtil.isNotEmpty(imagesAdds)) {
|
|
|
List<InsTaskImages> insTaskImages = BeanUtil.copyToList(imagesAdds.getImages(), InsTaskImages.class);
|
|
|
insTaskImages.forEach(image -> {
|
|
|
- image.setQuoteNo(quoteNo);
|
|
|
- insTaskImagesService.save(image);
|
|
|
+ image.setQuoteNo(insOrders.getQuoteNo());
|
|
|
});
|
|
|
+ insTaskImagesService.saveBatch(insTaskImages);
|
|
|
}
|
|
|
|
|
|
InsOrdersExternalPolicy ordersExternalPolicy = ordersAdd.getInsOrdersExternalPolicy();
|
|
|
@@ -249,7 +264,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
this.orderStatusMessage(insOrders,
|
|
|
insOrdersCarInfo, insOrdersCosts,
|
|
|
baseController.getToken(), MessageCodeEnum.TEMPLATE_9);
|
|
|
-
|
|
|
+ if (StringUtils.equals("0",parentId)){
|
|
|
+ InsOrders orders = insOrdersAdd.getInsOrders();
|
|
|
+ orders.setQuoteNo(insOrders.getQuoteNo());
|
|
|
+ insOrdersAdd.setInsOrders(orders);
|
|
|
+ saveOrders(insOrdersAdd);
|
|
|
+ }
|
|
|
// 返回成功信息,表示订单、车辆和用户信息保存成功
|
|
|
return HttpResult.ok("保存成功");
|
|
|
|
|
|
@@ -260,16 +280,28 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 更新订单费用信息
|
|
|
+ public void updateOrSaveFeeOrder(InsFeeOrdersVo feeOrdersVo,String quoteNo){
|
|
|
+ if (StringUtils.isEmpty(feeOrdersVo.getAgreementId())){
|
|
|
+ feeOrdersVo.setAgreementId(null);
|
|
|
+ }
|
|
|
+ InsFeeOrders feeOrders = BeanUtil.copyProperties(feeOrdersVo,InsFeeOrders.class);
|
|
|
+ feeOrders.setOrderNo(quoteNo);
|
|
|
+ insFeeOrdersMapper.insertOrUpdate(feeOrders);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult updateOrders(InsOrdersEnd ordersEnd) {
|
|
|
try {
|
|
|
// 获取订单对象并设置引用编号
|
|
|
InsOrders insOrders = ordersEnd.getInsOrders();
|
|
|
- InsOrdersOtherInfoVo ordersOtherInfo = ordersEnd.getInsOrdersOtherInfo();
|
|
|
- if (ObjectUtil.isNotEmpty(ordersOtherInfo)) {
|
|
|
- insOrders.setCompanyId(ordersOtherInfo.getCompanyId());
|
|
|
- insOrders.setCompanyName(ordersOtherInfo.getCompanyName());
|
|
|
- insOrders.setSigningTime(ordersOtherInfo.getSigningTime());
|
|
|
+ InsOrders orders = insOrdersMapper.selectById(insOrders.getId());
|
|
|
+ if (Objects.isNull(orders)){
|
|
|
+ throw new SystemException("订单不存在或已删除");
|
|
|
}
|
|
|
// 插入订单信息,如果插入失败,则返回错误信息
|
|
|
int insertResult = insOrdersMapper.updateById(insOrders);
|
|
|
@@ -282,39 +314,31 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
InsOrdersCarInfo insOrdersCarInfo = BeanUtil.copyProperties(ordersEnd.getCarInfoVo(), InsOrdersCarInfo.class);
|
|
|
ordersCarInfoService.update(insOrdersCarInfo, new LambdaUpdateWrapper<>(InsOrdersCarInfo.class).eq(InsOrdersCarInfo::getOrderNo, quoteNo));
|
|
|
|
|
|
- // 获取用户信息对象,并设置订单编号,然后保存用户信息
|
|
|
- List<InsOrdersCarUserInfo> userInfos = new ArrayList<>();
|
|
|
- InsOrdersCarUserInfo ownersInfo = BeanUtil.copyProperties(ordersEnd.getOwnersInfo(), InsOrdersCarUserInfo.class);
|
|
|
-
|
|
|
- userInfos.add(ownersInfo);
|
|
|
- InsOrdersCarUserInfo policyHolderInfo = BeanUtil.copyProperties(ordersEnd.getPolicyHolderInfo(), InsOrdersCarUserInfo.class);
|
|
|
-
|
|
|
- userInfos.add(policyHolderInfo);
|
|
|
- InsOrdersCarUserInfo insuredPersonInfo = BeanUtil.copyProperties(ordersEnd.getInsuredPersonInfo(), InsOrdersCarUserInfo.class);
|
|
|
-
|
|
|
- userInfos.add(insuredPersonInfo);
|
|
|
- //
|
|
|
- ordersCarUserInfoService.updateBatchById(userInfos);
|
|
|
+ //更新订单人员信息
|
|
|
+ updatePersonnelInformation(ordersEnd);
|
|
|
|
|
|
//更新订单其他信息
|
|
|
InsOrdersOtherInfoVo insOrdersOtherInfo = ordersEnd.getInsOrdersOtherInfo();
|
|
|
-
|
|
|
+ //更新订单其他属性
|
|
|
InsOrdersOther insOrdersOther = BeanUtil.copyProperties(insOrdersOtherInfo, InsOrdersOther.class);
|
|
|
insOrdersOther.setOrderNo(quoteNo);
|
|
|
insOrdersOtherService.updateById(insOrdersOther);
|
|
|
- // 保存其他信息
|
|
|
+ // 保存费用信息
|
|
|
InsOrdersCosts insOrdersCosts = BeanUtil.copyProperties(insOrdersOtherInfo, InsOrdersCosts.class);
|
|
|
- if (ObjectUtil.isNotNull(insOrdersCosts.getJqPremium()) || ObjectUtil.isNotNull(insOrdersCosts.getSyPremium())
|
|
|
- || ObjectUtil.isNotNull(insOrdersCosts.getJyPremium()) || ObjectUtil.isNotNull(insOrdersCosts.getSumPremium())
|
|
|
- || ObjectUtil.isNotNull(insOrdersCosts.getTaxPremium()) || ObjectUtil.isNotNull(insOrdersCosts.getJqRatio())
|
|
|
- || ObjectUtil.isNotNull(insOrdersCosts.getSyRatio())) {
|
|
|
- insOrdersCosts.setOrderNo(quoteNo);
|
|
|
- insOrdersCostsService.updateById(insOrdersCosts);
|
|
|
- }
|
|
|
+ insOrdersCosts.setOrderNo(quoteNo);
|
|
|
+ insOrdersCostsService.updateById(insOrdersCosts);
|
|
|
// 保险种类信息
|
|
|
List<KindInfoVo> kindInfoVo = ordersEnd.getKindInfoVo();
|
|
|
List<InsOrdersKind> insOrdersKinds = BeanUtil.copyToList(kindInfoVo, InsOrdersKind.class);
|
|
|
insOrdersKindService.updateBatchById(insOrdersKinds);
|
|
|
+ // 更新保单号
|
|
|
+ InsOrdersPolicy policy = BeanUtil.copyProperties(insOrdersOtherInfo,InsOrdersPolicy.class);
|
|
|
+ policy.setOrderNo(quoteNo);
|
|
|
+ insOrdersPolicyService.updateById(policy);
|
|
|
+
|
|
|
+
|
|
|
+ //更新订单费用
|
|
|
+ updateOrSaveFeeOrder(ordersEnd.getFeeOrdersVo(),quoteNo);
|
|
|
|
|
|
// 税费信息
|
|
|
VehicleAndVesselTaxVo vehicleAndVesselTax = ordersEnd.getVehicleAndVesselTaxVo();
|
|
|
@@ -344,11 +368,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
InsTaskImagesAdd imagesAdds = ordersEnd.getImagesAdds();
|
|
|
if (ObjectUtil.isNotEmpty(imagesAdds)) {
|
|
|
+ insTaskImagesService.remove(new LambdaQueryWrapper<>(InsTaskImages.class).eq(InsTaskImages::getQuoteNo,quoteNo));
|
|
|
List<InsTaskImages> insTaskImages = BeanUtil.copyToList(imagesAdds.getImages(), InsTaskImages.class);
|
|
|
insTaskImages.forEach(image -> {
|
|
|
image.setQuoteNo(String.valueOf(quoteNo));
|
|
|
- insTaskImagesService.save(image);
|
|
|
});
|
|
|
+ insTaskImagesService.saveBatch(insTaskImages);
|
|
|
}
|
|
|
|
|
|
InsOrdersExternalPolicy ordersExternalPolicy = ordersEnd.getInsOrdersExternalPolicy();
|
|
|
@@ -369,6 +394,20 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ public void updatePersonnelInformation(InsOrdersEnd ordersEnd){
|
|
|
+ // 获取用户信息对象,并设置订单编号,保存用户信息
|
|
|
+ List<InsOrdersCarUserInfo> userInfos = new ArrayList<>();
|
|
|
+ InsOrdersCarUserInfo ownersInfo = BeanUtil.copyProperties(ordersEnd.getOwnersInfo(), InsOrdersCarUserInfo.class);
|
|
|
+ userInfos.add(ownersInfo);
|
|
|
+ InsOrdersCarUserInfo policyHolderInfo = BeanUtil.copyProperties(ordersEnd.getPolicyHolderInfo(), InsOrdersCarUserInfo.class);
|
|
|
+ userInfos.add(policyHolderInfo);
|
|
|
+ InsOrdersCarUserInfo insuredPersonInfo = BeanUtil.copyProperties(ordersEnd.getInsuredPersonInfo(), InsOrdersCarUserInfo.class);
|
|
|
+ userInfos.add(insuredPersonInfo);
|
|
|
+ ordersCarUserInfoService.updateBatchById(userInfos);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<OrdersListVo> pageList(InsOrdersParam insOrdersParam) {
|
|
|
if (Objects.nonNull(insOrdersParam.getRecordingTime()) && insOrdersParam.getRecordingTime().length > 0) {
|
|
|
@@ -449,20 +488,20 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
if (CollectionUtil.isNotEmpty(insOrdersVo.getInsOrdersRiskList())) {
|
|
|
insOrdersVo.getInsOrdersRiskList().forEach(riskInfo -> {
|
|
|
insOrdersVo.setBiRiskInfoVo(getRiskInfoVo(riskInfo));
|
|
|
-// if (StringUtils.equals(riskInfo.getRiskCode(),"0507")){
|
|
|
-// insOrdersVo.setCiRiskInfoVo(getRiskInfoVo(riskInfo));
|
|
|
-// List<KindInfoVo> kindInfoVos = insOrdersVo.getKindInfoVo();
|
|
|
-// InsOrdersCosts insOrdersCosts = insOrdersVo.getInsOrdersCosts();
|
|
|
-// KindInfoVo jqKind = new KindInfoVo();
|
|
|
-// jqKind.setKindCode("J1");
|
|
|
-// jqKind.setKindName("交强险");
|
|
|
-// if(Objects.nonNull(insOrdersCosts.getJqPremium())){
|
|
|
-// jqKind.setPremium(insOrdersCosts.getJqPremium().toString());
|
|
|
-// }
|
|
|
-// kindInfoVos.add(jqKind);
|
|
|
-// }else {
|
|
|
-// insOrdersVo.setBiRiskInfoVo(getRiskInfoVo(riskInfo));
|
|
|
-// }
|
|
|
+ insOrdersVo.setCiRiskInfoVo(getRiskInfoVo(riskInfo));
|
|
|
+ if (StringUtils.equals(riskInfo.getRiskCode(),"0507")){
|
|
|
+ List<KindInfoVo> kindInfoVos = insOrdersVo.getKindInfoVo();
|
|
|
+ InsOrdersCosts insOrdersCosts = insOrdersVo.getInsOrdersCosts();
|
|
|
+ KindInfoVo jqKind = new KindInfoVo();
|
|
|
+ jqKind.setKindCode("J1");
|
|
|
+ jqKind.setKindName("交强险");
|
|
|
+ if(Objects.nonNull(insOrdersCosts.getJqPremium())){
|
|
|
+ jqKind.setPremium(insOrdersCosts.getJqPremium().toString());
|
|
|
+ }
|
|
|
+ kindInfoVos.add(jqKind);
|
|
|
+ }else {
|
|
|
+ insOrdersVo.setBiRiskInfoVo(getRiskInfoVo(riskInfo));
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
// 订单电子保单信息
|
|
|
@@ -512,6 +551,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return insOrdersVo;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private RiskInfoVo getRiskInfoVo(InsOrdersRisk riskInfo) {
|
|
|
RiskInfoVo riskInfoVo = new RiskInfoVo();
|
|
|
riskInfoVo.setId(riskInfo.getId());
|