|
@@ -29,10 +29,7 @@ import com.jzg.commons.entity.quote.vo.aggregated.OrderStatusResultVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.UnderwritingResultsVo;
|
|
import com.jzg.commons.entity.quote.vo.aggregated.UnderwritingResultsVo;
|
|
|
-import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
|
|
|
|
|
-import com.jzg.commons.entity.vo.InsTaskImagesVo;
|
|
|
|
|
-import com.jzg.commons.entity.vo.OrdersListVo;
|
|
|
|
|
-import com.jzg.commons.entity.vo.PersonAreaVo;
|
|
|
|
|
|
|
+import com.jzg.commons.entity.vo.*;
|
|
|
import com.jzg.commons.util.AssertionUtils;
|
|
import com.jzg.commons.util.AssertionUtils;
|
|
|
import com.jzg.commons.util.MinioUtils;
|
|
import com.jzg.commons.util.MinioUtils;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
import com.jzg.commons.util.StringUtils;
|
|
@@ -335,6 +332,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
if (insOrdersVo == null) {
|
|
if (insOrdersVo == null) {
|
|
|
throw new IllegalArgumentException("查询结果为空,无法处理订单信息");
|
|
throw new IllegalArgumentException("查询结果为空,无法处理订单信息");
|
|
|
}
|
|
}
|
|
|
|
|
+ // 协议名称、协议类型
|
|
|
|
|
+ HttpResult<AgreementInfoVo> ptlAgreement =orgClient.queryAgreementById(insOrdersVo.getOrder().getAgreementId(),baseController.getToken());
|
|
|
|
|
+ insOrdersVo.setAgreementType(ptlAgreement.getData().getAgreement().getAgreementType());
|
|
|
|
|
+ insOrdersVo.setAgreementName(ptlAgreement.getData().getAgreement().getAgreementName());
|
|
|
// 2. 处理车辆用户信息列表
|
|
// 2. 处理车辆用户信息列表
|
|
|
if (CollectionUtil.isNotEmpty(insOrdersVo.getCarUserInfoList())) {
|
|
if (CollectionUtil.isNotEmpty(insOrdersVo.getCarUserInfoList())) {
|
|
|
for (InsOrdersCarUserInfo carUserInfo : insOrdersVo.getCarUserInfoList()) {
|
|
for (InsOrdersCarUserInfo carUserInfo : insOrdersVo.getCarUserInfoList()) {
|
|
@@ -679,11 +680,51 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public String generateOrders(QuoteVo quoteVo,String companyName) {
|
|
public String generateOrders(QuoteVo quoteVo,String companyName) {
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
- String orderNo = IdGenerate.nextId();
|
|
|
|
|
|
|
+ // 生成订单的条件
|
|
|
|
|
+ // 1个保险公司只有一个主订单 不区分险种
|
|
|
|
|
+ InsOrders mainOrders = this.getMainOrders(
|
|
|
|
|
+ quoteVo.getOrder().getInsuranceCompanyCode(),
|
|
|
|
|
+ quoteVo.getCarInfoVo().getLicenseNo(),
|
|
|
|
|
+ quoteVo.getCarInfoVo().getVinNo());
|
|
|
|
|
+ boolean isExistsMainOrder = false;
|
|
|
|
|
+ if (Objects.nonNull(mainOrders))
|
|
|
|
|
+ {
|
|
|
|
|
+ isExistsMainOrder = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ String mainOrderNo = "";
|
|
|
|
|
+ // 如果订单号为0 则生成主订单
|
|
|
|
|
+ if (!isExistsMainOrder) {
|
|
|
|
|
+ // 生成主订单
|
|
|
|
|
+ mainOrderNo = this.saveBaseOrderorSubOrder(quoteVo,companyName,"0");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // 更新主订单
|
|
|
|
|
+ mainOrderNo = this.updateMainOrders(quoteVo,mainOrderNo,companyName);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 生成子订单
|
|
|
|
|
+ return this.saveBaseOrderorSubOrder(quoteVo,companyName,this.saveBaseOrderorSubOrder(quoteVo,companyName,mainOrderNo));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 保存主订单或者子订单
|
|
|
|
|
+ * @param quoteVo
|
|
|
|
|
+ * @param companyName
|
|
|
|
|
+ * @param mainOrderNo 主订单号
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private String saveBaseOrderorSubOrder(QuoteVo quoteVo,String companyName,String mainOrderNo){
|
|
|
// 保存主订单信息
|
|
// 保存主订单信息
|
|
|
InsOrders insOrders = new InsOrders();
|
|
InsOrders insOrders = new InsOrders();
|
|
|
- insOrders.setId(orderNo);
|
|
|
|
|
|
|
+ // 生成主订单编号
|
|
|
|
|
+ if ("0".equals(mainOrderNo)){
|
|
|
|
|
+ insOrders.setParentId("0");
|
|
|
|
|
+ insOrders.setId(IdGenerate.nextId());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // 生成子订单编号
|
|
|
|
|
+ insOrders.setParentId(mainOrderNo);
|
|
|
|
|
+ insOrders.setId(IdGenerate.nextId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
insOrders.setQuoteNo(quoteVo.getOrder().getQuoteNo());
|
|
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()); // 订单状态 报价中
|
|
@@ -702,7 +743,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
insOrdersMapper.insert(insOrders);
|
|
insOrdersMapper.insert(insOrders);
|
|
|
|
|
|
|
|
// 保存订单车辆信息
|
|
// 保存订单车辆信息
|
|
|
- InsOrdersCarInfo carInfo = ordersCarInfoService.createCarInfo(insOrders, quoteVo.getCarInfoVo(), formatter);
|
|
|
|
|
|
|
+ InsOrdersCarInfo carInfo = ordersCarInfoService.createCarInfo(insOrders, quoteVo.getCarInfoVo());
|
|
|
|
|
|
|
|
// 保存订单用户信息
|
|
// 保存订单用户信息
|
|
|
List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = new ArrayList<>();
|
|
List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = new ArrayList<>();
|
|
@@ -744,9 +785,74 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
null
|
|
null
|
|
|
);
|
|
);
|
|
|
insOrdersTrackService.save(track);
|
|
insOrdersTrackService.save(track);
|
|
|
- return orderNo;
|
|
|
|
|
|
|
+ return insOrders.getId();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新主订单信息
|
|
|
|
|
+ * @param quoteVo
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private String updateMainOrders(QuoteVo quoteVo,String mainOrderNo, String companyName){
|
|
|
|
|
+ InsOrders insOrders = this.getById(mainOrderNo);
|
|
|
|
|
+ insOrders.setQuoteNo(quoteVo.getOrder().getQuoteNo());
|
|
|
|
|
+ insOrders.setAgreementId(quoteVo.getOrder().getAgreementId());
|
|
|
|
|
+ insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode()); // 订单状态 报价中
|
|
|
|
|
+ insOrders.setApiType(String.valueOf(quoteVo.getOrder().getApiType()));
|
|
|
|
|
+ insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
|
|
|
|
|
+ insOrders.setCompanyName(companyName);
|
|
|
|
|
+ insOrders.setProductId(quoteVo.getProductId());
|
|
|
|
|
+ insOrders.setProductName(ProductsType.getProductNameByCode(quoteVo.getProductId()));
|
|
|
|
|
+ String productName = ProductsType.getProductNameByCode(quoteVo.getProductId());
|
|
|
|
|
+ insOrders.setProductName(productName);
|
|
|
|
|
+ if(Objects.isNull(insOrders.getRealQuoteUserId())) {
|
|
|
|
|
+ insOrders.setRealQuoteUserId(baseController.getUserName());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ insOrders.setRealQuoteUserId(quoteVo.getOrder().getRealQuoteUserId());
|
|
|
|
|
+ }
|
|
|
|
|
+ this.updateById(insOrders);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新主订单车辆信息
|
|
|
|
|
+ InsOrdersCarInfo carInfo = ordersCarInfoService.getById(mainOrderNo);
|
|
|
|
|
+ ordersCarInfoService.updateMainOrderCarInfo(quoteVo.getCarInfoVo(), carInfo);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新主订单用户信息
|
|
|
|
|
+ List<InsOrdersCarUserInfo> subOrdersCarUserInfoList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = ordersCarUserInfoService.getByOrderId(mainOrderNo);
|
|
|
|
|
+ // 添加车主信息
|
|
|
|
|
+ subOrdersCarUserInfoList.add(new InsOrdersCarUserInfo(quoteVo.getOwnersInfo(), insOrders.getId(),1));
|
|
|
|
|
+ // 添加投保人信息
|
|
|
|
|
+ subOrdersCarUserInfoList.add(new InsOrdersCarUserInfo(quoteVo.getPolicyHolderInfo(), insOrders.getId(),2));
|
|
|
|
|
+ // 添加被保险人信息
|
|
|
|
|
+ subOrdersCarUserInfoList.add(new InsOrdersCarUserInfo(quoteVo.getInsuredPersonInfo(), insOrders.getId(),3));
|
|
|
|
|
+ ordersCarUserInfoService.updateMainOrderCarUserInfo(insOrdersCarUserInfoList, subOrdersCarUserInfoList);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新订单费用信息 ins_orders_costs
|
|
|
|
|
+ insOrdersCostsService.updateMainCosts(insOrders);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新订单险种信息 ins_orders_kind
|
|
|
|
|
+ insOrdersKindService.updateMainKind(quoteVo.getKindInfoVo(), mainOrderNo);
|
|
|
|
|
+
|
|
|
|
|
+ // 在报价的时候更新其他信息
|
|
|
|
|
+ // 更新订单其他信息 ins_orders_other
|
|
|
|
|
+// insOrdersOtherService.createOther(insOrders);
|
|
|
|
|
+
|
|
|
|
|
+ // 保存订单投保单号 保单号信息 ins_orders_policy
|
|
|
|
|
+// insOrdersPolicyService.createPolicy(insOrders);
|
|
|
|
|
+
|
|
|
|
|
+ // 保存订单险种信息 ins_orders_risk
|
|
|
|
|
+ insOrdersRiskService.updateMainRisk(quoteVo.getCiRiskInfoVo(),quoteVo.getBiRiskInfoVo(), mainOrderNo);
|
|
|
|
|
+
|
|
|
|
|
+ // 保存订单车船税税信息 ins_orders_tax
|
|
|
|
|
+ insOrdersTaxService.updateMainTax(quoteVo, mainOrderNo);
|
|
|
|
|
+ return mainOrderNo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public InsOrders getMainOrders(String companyId, String licenseNo, String vinNo) {
|
|
|
|
|
+ return baseMapper.getBaseOrders(companyId, licenseNo, vinNo);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|