|
|
@@ -2,12 +2,15 @@ package com.ydtech.modules.order.service.impl;
|
|
|
|
|
|
import cn.dev33.satoken.session.SaSession;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.components.OrderComponents;
|
|
|
import com.ydtech.constants.InsuranceEnum;
|
|
|
import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
|
|
|
import com.ydtech.constants.enums.dict.insurance.NatureOfVehicleUse;
|
|
|
@@ -15,20 +18,22 @@ import com.ydtech.constants.sys.SystemConstant;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.admin.constants.RoleConstants;
|
|
|
+import com.ydtech.modules.admin.model.SysDept;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
import com.ydtech.modules.admin.model.SysUserRole;
|
|
|
-import com.ydtech.modules.order.entity.po.InsOrdersCarInfo;
|
|
|
-import com.ydtech.modules.order.entity.po.InsOrdersCarUserInfo;
|
|
|
-import com.ydtech.modules.order.service.InsOrdersCarInfoService;
|
|
|
-import com.ydtech.modules.order.service.InsOrdersCarUserInfoService;
|
|
|
+import com.ydtech.modules.admin.service.SysDeptService;
|
|
|
import com.ydtech.modules.admin.service.SysUserRoleService;
|
|
|
import com.ydtech.modules.admin.service.SysUserService;
|
|
|
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
|
import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
|
|
|
import com.ydtech.modules.fnc.entity.InsFeeAudit;
|
|
|
import com.ydtech.modules.fnc.service.InsFeeAuditService;
|
|
|
+import com.ydtech.modules.ins.dao.InsFileMapper;
|
|
|
import com.ydtech.modules.ins.model.InsOrdersExcel;
|
|
|
import com.ydtech.modules.ins.model.InsOrdersExcelVo;
|
|
|
-import com.ydtech.modules.ins.model.vo.*;
|
|
|
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
|
|
|
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
|
|
|
+import com.ydtech.modules.ins.model.vo.QuoteKindRespVo;
|
|
|
import com.ydtech.modules.ins.model.ya.CarModelDTO;
|
|
|
import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
|
|
|
import com.ydtech.modules.ins.model.ya.ResponseDataC2;
|
|
|
@@ -36,23 +41,32 @@ import com.ydtech.modules.inv.utils.EasyExcelUtils;
|
|
|
import com.ydtech.modules.order.convert.CarModelDTOConvert;
|
|
|
import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
|
|
|
import com.ydtech.modules.order.dao.InsOrdersMapper;
|
|
|
-import com.ydtech.modules.order.entity.*;
|
|
|
-import com.ydtech.modules.order.entity.bo.InsOrdersBo;
|
|
|
+import com.ydtech.modules.order.entity.BasePageResult;
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
+import com.ydtech.modules.order.entity.InsOrders;
|
|
|
+import com.ydtech.modules.order.entity.InsOrdersTrack;
|
|
|
+import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
|
|
|
+import com.ydtech.modules.order.entity.crawler.response.CrawlerVerifyPaymentResponse;
|
|
|
import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
|
|
|
import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
|
|
|
-import com.ydtech.modules.order.entity.po.*;
|
|
|
-import com.ydtech.modules.order.entity.vo.OrderVo;
|
|
|
import com.ydtech.modules.order.entity.vo.*;
|
|
|
import com.ydtech.modules.order.entity.vo.ya.YaExtendInfoDto;
|
|
|
-import com.ydtech.modules.order.service.*;
|
|
|
+import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
+import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
+import com.ydtech.modules.order.service.InsOrdersTrackService;
|
|
|
+import com.ydtech.modules.protocol.entity.constants.PtlApiType;
|
|
|
import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
|
|
|
import com.ydtech.modules.protocol.service.PtlAgreementService;
|
|
|
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
|
|
|
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
|
+import com.ydtech.utils.SnowFlakeUtil;
|
|
|
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.beans.factory.annotation.Value;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
@@ -60,8 +74,11 @@ import org.springframework.util.ObjectUtils;
|
|
|
import javax.validation.constraints.NotBlank;
|
|
|
import java.io.File;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
|
|
|
+
|
|
|
/**
|
|
|
* @author wenkaisen
|
|
|
* @description 针对表【ins_orders(保险订单表)】的数据库操作Service实现
|
|
|
@@ -70,10 +87,18 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders> implements InsOrdersService {
|
|
|
|
|
|
+ private final OrderComponents orderComponents;
|
|
|
+
|
|
|
private final SysUserService sysUserService;
|
|
|
|
|
|
private final SysUserRoleService sysUserRoleService;
|
|
|
|
|
|
+ private final EsmUserReferrerService esmUserReferrerService;
|
|
|
+
|
|
|
+ private final SysDeptService sysDeptService;
|
|
|
+
|
|
|
+ private final StringRedisTemplate redisTemplate;
|
|
|
+
|
|
|
private final InsAreaCompanyService insAreaCompanyService;
|
|
|
|
|
|
private final InsFeeAuditService insFeeAuditService;
|
|
|
@@ -84,50 +109,35 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
private final InsOrdersTrackService insOrdersTrackService;
|
|
|
|
|
|
- @Autowired
|
|
|
- InsOrdersCarUserInfoService insOrdersCarUserInfoService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsOrdersCarInfoService insOrdersCarInfoService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsAreaCompanyRiskService insAreaCompanyRiskService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsAreaCompanyKindService insAreaCompanyKindService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsAreaCompanyTaxArrearsService insAreaCompanyTaxArrearsService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsAreaCompanyCarInfoService insAreaCompanyCarInfoService;
|
|
|
+ private final InsFileMapper insFileMapper;
|
|
|
|
|
|
@Autowired
|
|
|
- InsAreaCompanyCarUserInfoService insAreaCompanyCarUserInfoService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsOrdersTaxService insOrdersTaxService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- InsOrdersService insOrdersService;
|
|
|
+ private InsFeeOrderNewService insFeeOrderNewService;
|
|
|
|
|
|
@Value("${upload.file.path}")
|
|
|
private String uploadFilePath;
|
|
|
|
|
|
- public InsOrdersServiceImpl(SysUserService sysUserService,
|
|
|
+ public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
|
|
|
SysUserRoleService sysUserRoleService,
|
|
|
- @Lazy InsAreaCompanyService insAreaCompanyService,
|
|
|
+ EsmUserReferrerService esmUserReferrerService, SysDeptService sysDeptService,
|
|
|
+ StringRedisTemplate redisTemplate, @Lazy InsAreaCompanyService insAreaCompanyService,
|
|
|
PtlAgreementService ptlAgreementService,
|
|
|
@Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
|
|
|
- InsFeeAuditService insFeeAuditService,
|
|
|
- InsOrdersTrackService insOrdersTrackService) {
|
|
|
+ InsFeeAuditService insFeeAuditService, InsOrdersTrackService insOrdersTrackService,
|
|
|
+ InsFileMapper insFileMapper) {
|
|
|
+
|
|
|
+ this.orderComponents = orderComponents;
|
|
|
this.sysUserService = sysUserService;
|
|
|
this.sysUserRoleService = sysUserRoleService;
|
|
|
+ this.esmUserReferrerService = esmUserReferrerService;
|
|
|
+ this.sysDeptService = sysDeptService;
|
|
|
+ this.redisTemplate = redisTemplate;
|
|
|
this.insAreaCompanyService = insAreaCompanyService;
|
|
|
this.ptlAgreementService = ptlAgreementService;
|
|
|
this.feeRuleSchemeService = feeRuleSchemeService;
|
|
|
this.insFeeAuditService = insFeeAuditService;
|
|
|
this.insOrdersTrackService = insOrdersTrackService;
|
|
|
+ this.insFileMapper = insFileMapper;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -150,12 +160,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ String orderStatus = insAreaCompany.getOrderstatus();
|
|
|
+
|
|
|
if (!ObjectUtils.isEmpty(insAreaCompany)) {
|
|
|
InsOrders insOrders = getById(insAreaCompany.getOrderno());
|
|
|
- String companyStatus = "";
|
|
|
+
|
|
|
+ // 查出最新状态的子订单修改
|
|
|
if (!InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())) {
|
|
|
- // 查出最新状态的子订单修改
|
|
|
- companyStatus = insAreaCompanyService.queryLatestStatus(insAreaCompany.getOrderno());
|
|
|
+ orderStatus = insAreaCompanyService.queryLatestStatus(insAreaCompany.getOrderno());
|
|
|
} else {
|
|
|
insOrders.setCompanyId(insAreaCompany.getCompanyId());
|
|
|
insOrders.setInsCompany(insAreaCompany.getInscompany());
|
|
|
@@ -165,7 +177,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- insOrders.setOrderstatus(companyStatus);
|
|
|
+ insOrders.setOrderstatus(orderStatus);
|
|
|
LambdaQueryWrapper<InsOrders> insOrdersLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
insOrdersLambdaQueryWrapper.ne(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
|
|
|
insOrdersLambdaQueryWrapper.eq(InsOrders::getOrderno, insAreaCompany.getOrderno());
|
|
|
@@ -177,15 +189,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Override
|
|
|
public List<CarModelDTO> vinSearch(String vin) {
|
|
|
LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
|
|
|
-
|
|
|
-
|
|
|
- wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.query().eq("frame_no", vin).one();
|
|
|
-// InsOrders insOrders = baseMapper.selectOne(wrapper);
|
|
|
- if (!ObjectUtils.isEmpty(insOrdersCarInfo)) {
|
|
|
- CarInfoVo carInfoVo = new CarInfoVo();
|
|
|
- BeanUtils.copyProperties(insOrdersCarInfo,carInfoVo);
|
|
|
-// CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
|
|
|
+ wrapper.select(InsOrders::getCarinfo);
|
|
|
+ wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus,
|
|
|
+ InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
|
|
|
+ InsOrders insOrders = baseMapper.selectOne(wrapper);
|
|
|
+ if (!ObjectUtils.isEmpty(insOrders)) {
|
|
|
+ JSONObject carinfo = insOrders.getCarinfo();
|
|
|
+ CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
|
|
|
CarModelDTO carModelDTO = CarModelDTOConvert.INSTANCE.CarInfoVotoCarModelDTO(carInfoVo);
|
|
|
return Collections.singletonList(carModelDTO);
|
|
|
}
|
|
|
@@ -201,6 +211,90 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return insOrders;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param userId 当前登录人id
|
|
|
+ * @param quoteInfoVo 报价信息
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
|
|
|
+ String realUserId = userId;//实际跟单业务人默认登录人
|
|
|
+ boolean daikeFlag = false;//是否代客录单业务
|
|
|
+ //添加出单员报价的逻辑,
|
|
|
+ boolean isCdy = false;//是否出单员标志
|
|
|
+ if (StringUtils.isNotEmpty(userId)) {
|
|
|
+ SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
|
|
|
+ if (19 == userRole.getRoleId()) {
|
|
|
+ isCdy = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isCdy) {
|
|
|
+ //如果是出单员 获取最终实际业务员
|
|
|
+ SysUser user = sysUserService.getById(realUserId);
|
|
|
+ realUserId = user.getOperatorCode();
|
|
|
+ } else {
|
|
|
+ //如果传递的业务归属人且与登录人不一致,则是代客录单业务
|
|
|
+ if (StringUtils.isNotEmpty(quoteInfoVo.getUserId()) && !userId.equals(quoteInfoVo.getUserId())) {
|
|
|
+ //实际跟单业务人变更为手工选择的人
|
|
|
+ realUserId = quoteInfoVo.getUserId();
|
|
|
+ daikeFlag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1. 验证订单参数
|
|
|
+ orderComponents.checkEmpty(quoteInfoVo);
|
|
|
+ SysUser user = sysUserService.getById(realUserId);
|
|
|
+ SysDept dept = sysDeptService.getById(user.getDeptId());
|
|
|
+ // 2 构造订单
|
|
|
+ InsOrders insOrders = new InsOrders(user, dept, quoteInfoVo);
|
|
|
+ if (daikeFlag) {//当时代客录单业务时,才需要赋值该字段
|
|
|
+ insOrders.setOperatorid(userId);//赋值代客录单操作人为登录人
|
|
|
+ }
|
|
|
+ if (isCdy) {//赋值出单员 操作人为登录人
|
|
|
+ insOrders.setOperatorid(userId);
|
|
|
+ }
|
|
|
+ InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
|
|
|
+
|
|
|
+ //需要赋值代录单人ID
|
|
|
+
|
|
|
+ if (ObjectUtils.isEmpty(insOrders1)) {
|
|
|
+ insOrders1 = insOrders;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!quoteInfoVo.getCarInfo().getLicenseNo().equals(insOrders1.getLicenseno())) {
|
|
|
+ throw new SystemException("1001", "车牌与此订单不符,请重新录单");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3 订单操作
|
|
|
+ if (!realUserId.equals(insOrders1.getUserid()) || StringUtils.isEmpty(quoteInfoVo.getOrderNo())) {
|
|
|
+ // 存入订单
|
|
|
+ String orderno = IdGenerate.nextId();
|
|
|
+ insOrders.setOrderno(orderno);
|
|
|
+ // 将报价号返回
|
|
|
+ long l = new SnowFlakeUtil().nextId();
|
|
|
+ insOrders.setQuoteno(String.valueOf(l));
|
|
|
+ boolean save = this.saveAndTrajectories(insOrders);
|
|
|
+ if (!save) {
|
|
|
+ throw new SystemException("订单生成失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // 修改订单
|
|
|
+ insOrders.setOrderno(quoteInfoVo.getOrderNo());
|
|
|
+ this.updateById(insOrders);
|
|
|
+ }
|
|
|
+ // 4 将报价信息存入redis 中
|
|
|
+ String s = JSON.toJSONString(quoteInfoVo);
|
|
|
+ redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s, QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
|
|
|
+
|
|
|
+ // 5 生成承包规则参数
|
|
|
+ UnderwritingRulesBo underwritingRulesBo = new UnderwritingRulesBo(quoteInfoVo);
|
|
|
+ String rules = JSON.toJSONString(underwritingRulesBo);
|
|
|
+ redisTemplate.opsForValue().set(QUOTE_RULES_KEY + insOrders.getOrderno(), rules, QUOTE_RULES_KEY_TIME,
|
|
|
+ TimeUnit.HOURS);
|
|
|
+
|
|
|
+ return insOrders;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 新的查询分页接口
|
|
|
@@ -218,7 +312,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
boolean isCdy = false;
|
|
|
if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
|
|
|
SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
|
|
|
- if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
|
|
|
+ if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
|
|
|
+ //团队长可查询下面所有人员订单
|
|
|
isTeamLeader = true;
|
|
|
}
|
|
|
if (19 == userRole.getRoleId()) {
|
|
|
@@ -230,14 +325,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, isTeamLeader, isCdy);
|
|
|
Long total = baseMapper.queryPageOrderCount(orderQueryVo, isTeamLeader, isCdy);
|
|
|
orderVoPage.setTotal(total);
|
|
|
- return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(), orderVoPage.getPages()
|
|
|
+ return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
|
|
|
+ orderVoPage.getPages()
|
|
|
, orderVoPage.getRecords());
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public BasePageResult<InsOrders> queryPageOrder(OrderQueryVo orderQueryVo) {
|
|
|
-
|
|
|
// 领导标志
|
|
|
boolean isTeamLeader = false;
|
|
|
//是否出单员标志
|
|
|
@@ -245,7 +340,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
|
|
|
SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
|
|
|
|
|
|
- if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
|
|
|
+ if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
|
|
|
+ //团队长可查询下面所有人员订单
|
|
|
isTeamLeader = true;
|
|
|
}
|
|
|
|
|
|
@@ -258,20 +354,27 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
// 构造查询条件
|
|
|
LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getOrderNo()), InsOrders::getOrderno, orderQueryVo.getOrderNo())
|
|
|
- .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid, orderQueryVo.getDeptId())
|
|
|
- .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus, orderQueryVo.getOrderStatus())
|
|
|
- .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno, orderQueryVo.getFrameNo())
|
|
|
- .likeRight(StringUtils.isNotEmpty(orderQueryVo.getLicenseNo()), InsOrders::getLicenseno, orderQueryVo.getLicenseNo())
|
|
|
- .likeRight(StringUtils.isNotEmpty(orderQueryVo.getInsuredName()), InsOrders::getInsuredname, orderQueryVo.getInsuredName())
|
|
|
+ .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid,
|
|
|
+ orderQueryVo.getDeptId())
|
|
|
+ .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus,
|
|
|
+ orderQueryVo.getOrderStatus())
|
|
|
+ .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno,
|
|
|
+ orderQueryVo.getFrameNo())
|
|
|
+ .likeRight(StringUtils.isNotEmpty(orderQueryVo.getLicenseNo()), InsOrders::getLicenseno,
|
|
|
+ orderQueryVo.getLicenseNo())
|
|
|
+ .likeRight(StringUtils.isNotEmpty(orderQueryVo.getInsuredName()), InsOrders::getInsuredname,
|
|
|
+ orderQueryVo.getInsuredName())
|
|
|
.between(!ObjectUtils.isEmpty(orderQueryVo.getStartDate()) && !ObjectUtils.isEmpty(orderQueryVo.getEndDate()),
|
|
|
InsOrders::getCreatetime, orderQueryVo.getStartDate(), orderQueryVo.getEndDatePlusOneDay())
|
|
|
.orderBy(true, false, InsOrders::getCreatetime);
|
|
|
|
|
|
|
|
|
if (isCdy) {//如果是出单员查询时,只查自己的 与代客录单一致,查operatorid (手机前端userid传过来是出单用户,直接用该字段查询查operatorid)
|
|
|
- wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getOperatorid, orderQueryVo.getUserId());
|
|
|
+ wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getOperatorid,
|
|
|
+ orderQueryVo.getUserId());
|
|
|
} else {
|
|
|
- wrapper.eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid, orderQueryVo.getUserId());
|
|
|
+ wrapper.eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid,
|
|
|
+ orderQueryVo.getUserId());
|
|
|
}
|
|
|
|
|
|
Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
|
|
|
@@ -279,7 +382,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {
|
|
|
List<InsAreaCompany> list = insAreaCompanyService.query().select("DISTINCT orderno").eq("company_id",
|
|
|
orderQueryVo.getCompanyId()).list();
|
|
|
- List<String> collect = list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
|
|
|
+ List<String> collect =
|
|
|
+ list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
|
|
|
if (!collect.isEmpty()) {
|
|
|
wrapper.in(InsOrders::getOrderno, collect);
|
|
|
}
|
|
|
@@ -295,7 +399,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotEmpty(orderQueryVo.getAuditStatus()) && orderQueryVo.getAuditStatus().equals("0")) {
|
|
|
- List<InsFeeAudit> list = insFeeAuditService.query().select("DISTINCT orderno").eq("auditstatus", "1").list();
|
|
|
+ List<InsFeeAudit> list =
|
|
|
+ insFeeAuditService.query().select("DISTINCT orderno").eq("auditstatus", "1").list();
|
|
|
List<String> collect = list.stream().map(InsFeeAudit::getOrderno).distinct().collect(Collectors.toList());
|
|
|
|
|
|
if (!collect.isEmpty()) {
|
|
|
@@ -303,9 +408,21 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //查出报价状态为 3
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyService.getorDerIds();
|
|
|
+// 新的费用订单表
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ List<String> collect =
|
|
|
+ insAreaCompanies.stream().map(insAreaCompany -> insAreaCompany.getOrderno()).collect(Collectors.toList());
|
|
|
+ if (!collect.isEmpty()) {
|
|
|
+ wrapper.in(InsOrders::getOrderno, collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
Page<InsOrders> insOrdersPage = page(page, wrapper);
|
|
|
|
|
|
- return new BasePageResult<>(orderQueryVo.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
+ return new BasePageResult<>(orderQueryVo.getPageNum(), page.getSize(), insOrdersPage.getTotal(),
|
|
|
+ page.getPages(),
|
|
|
insOrdersPage.getRecords());
|
|
|
}
|
|
|
|
|
|
@@ -331,7 +448,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
insOrdersExcel.setRegisterDate(carInfoVo.getRegisterDate());
|
|
|
insOrdersExcel.setIssueDate(carInfoVo.getIssueDate());
|
|
|
|
|
|
- String natureOfVehicleUse = NatureOfVehicleUse.getNatureOfVehicleUse(carInfoVo.getCarnature(), carInfoVo.getVehicleUse());
|
|
|
+ String natureOfVehicleUse = NatureOfVehicleUse.getNatureOfVehicleUse(carInfoVo.getCarnature(),
|
|
|
+ carInfoVo.getVehicleUse());
|
|
|
insOrdersExcel.setVehicleUse(natureOfVehicleUse);
|
|
|
|
|
|
insOrdersExcel.setCarNature(NatureOfVehicleUse.getDesc(carInfoVo.getCarnature()));
|
|
|
@@ -363,11 +481,24 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
//非车
|
|
|
if (!ObjectUtils.isEmpty(insOrdersExcel.getCrossInsurance())) {
|
|
|
- List<DrivingInsuranceDto> drivingInsuranceDtos = insOrdersExcel.getCrossInsurance().toJavaList(DrivingInsuranceDto.class);
|
|
|
- if (!drivingInsuranceDtos.isEmpty()) {
|
|
|
- String policyNumber = drivingInsuranceDtos.get(0).getPolicyNumber();
|
|
|
- insOrdersExcel.setJyPolicyno(policyNumber);
|
|
|
+
|
|
|
+ if(String.valueOf(PtlApiType.PTL_API_2.getCode()).equals(insOrdersExcel.getApiType())){
|
|
|
+ List<CrawlerVerifyPaymentResponse.DrivingInsurancesDTO> drivingInsurancesDTOS =
|
|
|
+ insOrdersExcel.getCrossInsurance().toJavaList(CrawlerVerifyPaymentResponse.DrivingInsurancesDTO.class);
|
|
|
+ if (!drivingInsurancesDTOS.isEmpty()) {
|
|
|
+ String policyNumber = drivingInsurancesDTOS.get(0).getPolicy();
|
|
|
+ insOrdersExcel.setJyPolicyno(policyNumber);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ List<DrivingInsuranceDto> drivingInsuranceDtos =
|
|
|
+ insOrdersExcel.getCrossInsurance().toJavaList(DrivingInsuranceDto.class);
|
|
|
+ if (!drivingInsuranceDtos.isEmpty()) {
|
|
|
+ String policyNumber = drivingInsuranceDtos.get(0).getPolicyNumber();
|
|
|
+ insOrdersExcel.setJyPolicyno(policyNumber);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 设置险种信息
|
|
|
@@ -403,7 +534,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
|
|
|
} else {
|
|
|
if (folder.mkdirs()) {
|
|
|
- return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
|
|
|
+ return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class,
|
|
|
+ insOrdersExcels));
|
|
|
} else {
|
|
|
throw new SystemException("文件导出失败");
|
|
|
}
|
|
|
@@ -427,48 +559,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
JSONObject reptxt = orderAndAreaCompany.getReptxt();
|
|
|
ResponseDataC2 responseDataC2 = JSON.toJavaObject(reptxt, ResponseDataC2.class);
|
|
|
List<ExtendInfoDto> extendInfoDtos = responseDataC2.getResponseBody().getExtendInfo();
|
|
|
- Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(),
|
|
|
- v.getValue()), LinkedHashMap::putAll);
|
|
|
+ Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new,
|
|
|
+ (m, v) -> m.put(v.getKey(),
|
|
|
+ v.getValue()), LinkedHashMap::putAll);
|
|
|
yaExtendInfoDto = MapToYaExtendInfoDto.INSTANCE.mapToYaExtendInfoDto(stringStringMap);
|
|
|
orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
|
|
|
}
|
|
|
InsAreaCompany iac = insAreaCompanyService.getById(companyId);
|
|
|
- //查找车辆信息
|
|
|
- InsAreaCompanyCarInfo carInfo = insAreaCompanyCarInfoService.getById(iac.getCarInfoId());
|
|
|
- orderAndAreaCompany.setCarinfo(JSONObject.parseObject(JSON.toJSONString(carInfo)));
|
|
|
- //查找车辆用户信息
|
|
|
- InsAreaCompanyCarUserInfo ownerInfo = insAreaCompanyCarUserInfoService.getById(iac.getOwnerId());
|
|
|
- InsAreaCompanyCarUserInfo applyInfo;
|
|
|
- orderAndAreaCompany.setOwnerinfo(JSONObject.parseObject(JSON.toJSONString(ownerInfo)));
|
|
|
- List<String> userIds = new ArrayList<>();
|
|
|
- userIds.add(iac.getOwnerId());
|
|
|
- userIds.add(iac.getApplyId());
|
|
|
- userIds.add(iac.getInsureId());
|
|
|
- List<String> uniqueUserIds = userIds.stream().distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- List<InsAreaCompanyCarUserInfo> insAreaCompanyCarUserInfos = insAreaCompanyCarUserInfoService.list(new LambdaQueryWrapper<InsAreaCompanyCarUserInfo>().in(InsAreaCompanyCarUserInfo::getId, uniqueUserIds));
|
|
|
- insAreaCompanyCarUserInfos.forEach(carUserInfo -> {
|
|
|
- String id = carUserInfo.getId();
|
|
|
- if(id.equals(iac.getOwnerId())){
|
|
|
- orderAndAreaCompany.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(carUserInfo)));
|
|
|
- }
|
|
|
- if(id.equals(iac.getApplyId())){
|
|
|
- orderAndAreaCompany.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(carUserInfo)));
|
|
|
- }
|
|
|
- if(id.equals(iac.getInsureId())){
|
|
|
- orderAndAreaCompany.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(carUserInfo)));
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- //查找risk
|
|
|
- List<InsAreaCompanyRisk> riskList = insAreaCompanyRiskService.query().eq("company_id", companyId).list();
|
|
|
- orderAndAreaCompany.setRiskinfo(JSON.parseArray(JSON.toJSONString(riskList)));
|
|
|
- //查找kind
|
|
|
- List<InsAreaCompanyKind> kindList = insAreaCompanyKindService.query().eq("company_id", companyId).list();
|
|
|
- orderAndAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(kindList)));
|
|
|
- //查找tax
|
|
|
- List<InsAreaCompanyTaxArrears> taxArrearsList = insAreaCompanyTaxArrearsService.query().eq("company_id", companyId).list();
|
|
|
- orderAndAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
|
|
|
//保费因素
|
|
|
yaExtendInfoDto.setAccidentInfoStr(iac.getAccidentStrInfo());
|
|
|
//评分
|
|
|
@@ -486,24 +583,31 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
//新增费用明细信息
|
|
|
// QueryOrderFeeVo queryOrderFeeVo = feeRuleSchemeService.queryFeeOrderInfo(companyId);
|
|
|
+ //查询费用信息
|
|
|
+ InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
|
|
|
+ .eq(InsFeeOrderNew::getInsOrderNo, companyId));
|
|
|
// orderAndAreaCompany.setOrderCommissionVo(queryOrderFeeVo.getOrderCommissionVo());
|
|
|
// orderAndAreaCompany.setAdjustFeeDescVo(queryOrderFeeVo.getAdjustFeeDescVo());
|
|
|
boolean isShowOrderFee = false;
|
|
|
//如果是财务菜单进入的,不再进行权限控制,所有都可查看
|
|
|
- if ("accountingUser".equals(userId)) {
|
|
|
- isShowOrderFee = true;
|
|
|
- } else {
|
|
|
- //判断当前登录人员是否为后线人员,来决定是否返回总费用详情信息
|
|
|
- List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
|
|
|
- if (userList != null && !userList.isEmpty()) {
|
|
|
- isShowOrderFee = true;
|
|
|
- }
|
|
|
- }
|
|
|
- if (isShowOrderFee) {
|
|
|
- List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(null);
|
|
|
- if (!orderFeeVoList.isEmpty()) {
|
|
|
- orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
|
|
|
- }
|
|
|
+// if ("accountingUser".equals(userId)) {
|
|
|
+// isShowOrderFee = true;
|
|
|
+// } else {
|
|
|
+// //判断当前登录人员是否为后线人员,来决定是否返回总费用详情信息
|
|
|
+// List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
|
|
|
+// if (userList != null && !userList.isEmpty()) {
|
|
|
+// isShowOrderFee = true;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (isShowOrderFee) {
|
|
|
+// List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(queryOrderFeeVo);
|
|
|
+// if (!orderFeeVoList.isEmpty()) {
|
|
|
+// orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
|
|
|
+// }
|
|
|
+// }
|
|
|
+ if (!Objects.isNull(insFeeOrderNew)) {
|
|
|
+ List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(insFeeOrderNew);
|
|
|
+ orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
|
|
|
}
|
|
|
//查询费用审核状态
|
|
|
List<InsFeeAudit> feeAuditList = insFeeAuditService.query().eq("ins_order_no", companyId).list();
|
|
|
@@ -512,77 +616,23 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
//add 解决返回null页面错误 lig 2023-09-14
|
|
|
if (null == orderAndAreaCompany.getExtendInfo()) orderAndAreaCompany.setExtendInfo("");
|
|
|
- if (null == orderAndAreaCompany.getCrossInsurance()) orderAndAreaCompany.setCrossInsurance(JSON.parseArray("[]"));
|
|
|
+ if (null == orderAndAreaCompany.getCrossInsurance())
|
|
|
+ orderAndAreaCompany.setCrossInsurance(JSON.parseArray("[]"));
|
|
|
if (null == orderAndAreaCompany.getKindinfo()) orderAndAreaCompany.setKindinfo(JSON.parseArray("[]"));
|
|
|
if (null == orderAndAreaCompany.getFeeStatus()) orderAndAreaCompany.setFeeStatus("0");
|
|
|
|
|
|
return HttpResult.ok("success", orderAndAreaCompany);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public InsOrdersEditingVo revise(String orderNo) {
|
|
|
InsOrders insOrders = getById(orderNo);
|
|
|
+ List<InsAreaCompany> insAreaCompanyList =
|
|
|
+ insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).orderByDesc(InsAreaCompany::getCreatetime).list();
|
|
|
+ insOrders.setInsAreaCompanyList(insAreaCompanyList);
|
|
|
InsOrdersEditingVo insOrdersEditingVo = new InsOrdersEditingVo();
|
|
|
|
|
|
-
|
|
|
BeanUtils.copyProperties(insOrders, insOrdersEditingVo);
|
|
|
-
|
|
|
- //获取车辆信息
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(insOrders.getCarInfoId());
|
|
|
- insOrdersEditingVo.setCarinfo(insOrdersCarInfo);
|
|
|
- //获取车主信息
|
|
|
- InsOrdersCarUserInfo ownerInfo = new InsOrdersCarUserInfo();
|
|
|
- InsOrdersCarUserInfo applyInfo = new InsOrdersCarUserInfo();
|
|
|
- InsOrdersCarUserInfo insureInfo = new InsOrdersCarUserInfo();
|
|
|
- ownerInfo = insOrdersCarUserInfoService.getById(insOrders.getOwnerId());
|
|
|
- ownerInfo.setGender(ownerInfo.getGender().equals("1") ? "男" : "女");
|
|
|
- ownerInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
|
|
|
- ownerInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
|
|
|
- insOrdersEditingVo.setOwnerinfo(ownerInfo);
|
|
|
-
|
|
|
- //是否同车主
|
|
|
- if(insOrders.getOwnerId().equals(insOrders.getApplyId())){
|
|
|
- BeanUtils.copyProperties(ownerInfo, applyInfo);
|
|
|
- applyInfo.setOwner(true);
|
|
|
- insOrdersEditingVo.setApplyinfo(applyInfo);
|
|
|
- }else{
|
|
|
- //获取投保人信息
|
|
|
- applyInfo = insOrdersCarUserInfoService.getById(insOrders.getApplyId());
|
|
|
- applyInfo.setGender(applyInfo.getGender().equals("1") ? "男" : "女");
|
|
|
- applyInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
|
|
|
- applyInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
|
|
|
- insOrdersEditingVo.setApplyinfo(applyInfo);
|
|
|
- }
|
|
|
-
|
|
|
- //是否同车主
|
|
|
- if(insOrders.getApplyId().equals(insOrders.getInsureId())) {
|
|
|
- BeanUtils.copyProperties(applyInfo, insureInfo);
|
|
|
- insOrdersEditingVo.setInsureinfo(insureInfo);
|
|
|
- insOrdersEditingVo.getInsureinfo().setInsuranceHolder(true);
|
|
|
- insOrdersEditingVo.getInsureinfo().setOwner(false);
|
|
|
- }else if(insOrders.getOwnerId().equals(insOrders.getInsureId())) {
|
|
|
- insOrdersEditingVo.setInsureinfo(ownerInfo);
|
|
|
- insOrdersEditingVo.getInsureinfo().setOwner(true);
|
|
|
- }else{
|
|
|
- //获取被保人信息
|
|
|
- insureInfo = insOrdersCarUserInfoService.getById(insOrders.getInsureId());
|
|
|
- insureInfo.setGender(insureInfo.getGender().equals("1") ? "男" : "女");
|
|
|
- insureInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
|
|
|
- insureInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
|
|
|
- insOrdersEditingVo.setInsureinfo(insureInfo);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //获取 risk信息
|
|
|
- List<InsOrdersRisk> insOrdersRisks = insOrdersRiskService.lambdaQuery().eq(InsOrdersRisk::getOrderNo, orderNo).list();
|
|
|
- insOrdersEditingVo.setRisk(insOrdersRisks);
|
|
|
-
|
|
|
- //获取 kind信息
|
|
|
- List<InsOrdersKind> insOrdersKinds = insOrdersKindService.lambdaQuery().eq(InsOrdersKind::getOrderNo, orderNo).list();
|
|
|
- insOrdersEditingVo.setKind(insOrdersKinds);
|
|
|
-
|
|
|
List<InsAreaCompanyQueryDto> insAreaCompanyQueryDtos = insAreaCompanyService.getByOrderNo(orderNo);
|
|
|
List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
|
|
|
insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
|
|
|
@@ -609,7 +659,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
queryFlag = "queryPayTime";
|
|
|
}
|
|
|
policyInsuranceReportReqVo.setQueryFlag(queryFlag);
|
|
|
- Page<InsOrders> page = new Page<>(policyInsuranceReportReqVo.getPageNum(), policyInsuranceReportReqVo.getPageSize());
|
|
|
+ Page<InsOrders> page = new Page<>(policyInsuranceReportReqVo.getPageNum(),
|
|
|
+ policyInsuranceReportReqVo.getPageSize());
|
|
|
page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
|
|
|
Page<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(page,
|
|
|
policyInsuranceReportReqVo);
|
|
|
@@ -621,7 +672,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo, String userId) {
|
|
|
+ public HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo,
|
|
|
+ String userId) {
|
|
|
String queryFlag = "queryPayDate";
|
|
|
//判断当前登录人员是否为管理人员和财务人员;要求管理人员查询paytime,其他查询paydate
|
|
|
List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
|
|
|
@@ -629,249 +681,22 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
queryFlag = "queryPayTime";
|
|
|
}
|
|
|
policyInsuranceReportReqVo.setQueryFlag(queryFlag);
|
|
|
- List<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(policyInsuranceReportReqVo);
|
|
|
- String s = EasyExcelUtils.downExcel(uploadFilePath, PolicyInsuranceReportResVo.class, policyInsuranceReportResVoPage);
|
|
|
+ List<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage =
|
|
|
+ baseMapper.getPolicyInsuranceReport(policyInsuranceReportReqVo);
|
|
|
+ String s = EasyExcelUtils.downExcel(uploadFilePath, PolicyInsuranceReportResVo.class,
|
|
|
+ policyInsuranceReportResVoPage);
|
|
|
return HttpResult.ok("", s);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public void updateInsOrders(InsOrdersBo insOrdersBo) {
|
|
|
- InsOrders insOrders = new InsOrders(insOrdersBo);
|
|
|
- //先查找车主信息
|
|
|
- CarInfoVo carinfo = insOrdersBo.getCarinfo();
|
|
|
- //是否存在车主信息
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getCarInfoByFrameNo(carinfo.getFrameNo());
|
|
|
- if(Objects.isNull(insOrdersCarInfo)){
|
|
|
- BeanUtils.copyProperties(carinfo, insOrdersCarInfo);
|
|
|
- insOrders.setCarInfoId(IdGenerate.nextId());
|
|
|
- insOrdersCarInfoService.save(insOrdersCarInfo);
|
|
|
- }else{
|
|
|
- insOrders.setCarInfoId(insOrdersCarInfo.getId());
|
|
|
- insOrdersCarInfoService.updateById(insOrdersCarInfo);
|
|
|
- }
|
|
|
-
|
|
|
- //更新车主信息
|
|
|
- CustomerInfoVo ownerinfo = insOrdersBo.getOwnerinfo();
|
|
|
- InsOrdersCarUserInfo ownerUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(ownerinfo.getIdentifyNumber());
|
|
|
- //如果车主信息不存在 添加一条
|
|
|
- if(Objects.isNull(ownerUserInfo)) {
|
|
|
- BeanUtils.copyProperties(ownerinfo, ownerUserInfo);
|
|
|
- ownerUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrders.setOwnerId(ownerUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.save(ownerUserInfo);
|
|
|
- }else{
|
|
|
- insOrders.setOwnerId(ownerUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.updateById(ownerUserInfo);
|
|
|
- }
|
|
|
-
|
|
|
- //投保人信息和车主是否一致
|
|
|
- CustomerInfoVo applyinfo = insOrdersBo.getApplyinfo();
|
|
|
- InsOrdersCarUserInfo applyUserInfo;
|
|
|
- if(!applyinfo.isOwner()){
|
|
|
- //查询投保人信息
|
|
|
- applyUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(applyinfo.getIdentifyNumber());
|
|
|
- //投保人信息是否存在
|
|
|
- if(Objects.isNull(applyUserInfo)){
|
|
|
- BeanUtils.copyProperties(applyinfo, applyUserInfo);
|
|
|
- applyUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrders.setApplyId(applyUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.save(applyUserInfo);
|
|
|
- }else{
|
|
|
- insOrders.setApplyId(applyUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.updateById(applyUserInfo);
|
|
|
- }
|
|
|
- }else{
|
|
|
- insOrders.setApplyId(ownerUserInfo.getId());
|
|
|
- applyUserInfo = ownerUserInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //更新被保人信息
|
|
|
- CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
|
|
|
- if(insureInfo.isOwner() || insureInfo.isInsuranceHolder()){
|
|
|
- if(insureInfo.isOwner()){
|
|
|
- insOrders.setInsureId(ownerUserInfo.getId());
|
|
|
- }
|
|
|
- if(insureInfo.isInsuranceHolder()){
|
|
|
- insOrders.setInsureId(applyUserInfo.getId());
|
|
|
- }
|
|
|
- }else{
|
|
|
- //查询被保人信息
|
|
|
- InsOrdersCarUserInfo insureUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
|
|
|
- //被保人信息是否存在
|
|
|
- if(Objects.isNull(insureUserInfo)){
|
|
|
- BeanUtils.copyProperties(insureInfo, insureUserInfo);
|
|
|
- insureUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrders.setInsureId(insureUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.save(insureUserInfo);
|
|
|
- }else{
|
|
|
- insOrders.setInsureId(insureUserInfo.getId());
|
|
|
- insOrdersCarUserInfoService.updateById(insureUserInfo);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //更新risk
|
|
|
- List<RiskInfoVo> riskInfoVos = insOrdersBo.getRisk();
|
|
|
- List<InsOrdersRisk> insOrdersRisks = new ArrayList<>();
|
|
|
- riskInfoVos.forEach(riskInfoVo -> {
|
|
|
- InsOrdersRisk insOrdersRisk = new InsOrdersRisk(riskInfoVo,insOrders.getOrderno());
|
|
|
- insOrdersRisks.add(insOrdersRisk);
|
|
|
- });
|
|
|
- insOrdersRiskService.remove(new LambdaQueryWrapper<InsOrdersRisk>().eq(InsOrdersRisk::getOrderNo,insOrders.getOrderno()));
|
|
|
- insOrdersRiskService.saveOrUpdateBatch(insOrdersRisks);
|
|
|
-
|
|
|
- //更新kind
|
|
|
- List<KindInfoVo> kindInfoVos = insOrdersBo.getKing();
|
|
|
- List<InsOrdersKind> insOrdersKinds = new ArrayList<>();
|
|
|
- kindInfoVos.forEach(kindInfoVo -> {
|
|
|
- InsOrdersKind insOrdersKind = new InsOrdersKind(kindInfoVo,insOrders.getOrderno());
|
|
|
- insOrdersKinds.add(insOrdersKind);
|
|
|
- });
|
|
|
- insOrdersKindService.remove(new LambdaQueryWrapper<InsOrdersKind>().eq(InsOrdersKind::getOrderNo,insOrders.getOrderno()));
|
|
|
- insOrdersKindService.saveOrUpdateBatch(insOrdersKinds);
|
|
|
-
|
|
|
- //更新 tax
|
|
|
- VehicleAndVesselTax vehicleAndVesselTax = insOrdersBo.getVehicleAndVesselTax();
|
|
|
- InsOrdersTax insOrdersTax = new InsOrdersTax(insOrders.getOrderno(), vehicleAndVesselTax);
|
|
|
- insOrdersTaxService.remove(new LambdaQueryWrapper<InsOrdersTax>().eq(InsOrdersTax::getOrderNo,insOrders.getOrderno()));
|
|
|
- insOrdersTaxService.saveOrUpdate(insOrdersTax);
|
|
|
-
|
|
|
- insOrdersService.saveOrUpdate(insOrders);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public InsOrdersBo queryInsOrders(String orderNo) {
|
|
|
- InsOrdersBo insOrdersBo = new InsOrdersBo();
|
|
|
- InsOrders insOrders = baseMapper.selectById(orderNo);
|
|
|
- if(insOrders == null){
|
|
|
- return null;
|
|
|
- }
|
|
|
- BeanUtils.copyProperties(insOrders,insOrdersBo);
|
|
|
- List<String> originalList = new ArrayList<>();
|
|
|
- originalList.add(insOrders.getOwnerId());
|
|
|
- originalList.add(insOrders.getApplyId());
|
|
|
- originalList.add(insOrders.getInsureId());
|
|
|
- //车主id去重
|
|
|
- List<String> uniqueList = originalList.stream()
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
- List<InsOrdersCarUserInfo> insOrdersCarUserInfos = insOrdersCarUserInfoService.listByIds(uniqueList);
|
|
|
- //设置车主信息
|
|
|
- insOrdersBo.setCarUserInfo(insOrders, insOrdersCarUserInfos);
|
|
|
- //获取车辆信息
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(insOrders.getCarInfoId());
|
|
|
- insOrdersBo.setCarAllInfo(insOrdersCarInfo);
|
|
|
- return insOrdersBo;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private InsOrdersCustomerService insOrdersCustomerService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private InsOrdersKindService insOrdersKindService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private InsOrdersRiskService insOrdersRiskService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private InsOrdersTaxService InsOrdersTaxService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public boolean saveAndTrajectories(InsOrdersBo insOrdersBo) {
|
|
|
- // 订单信息
|
|
|
- InsOrders insOrders = new InsOrders(insOrdersBo);
|
|
|
- final String orderNo = insOrders.getOrderno();
|
|
|
- // 1 车辆信息
|
|
|
- // 是否存在车辆信息
|
|
|
- if(!insOrdersCarInfoService.isExist(insOrdersBo.getCarinfo().getLicenseNo())){
|
|
|
- CarInfoVo carinfo = insOrdersBo.getCarinfo();
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = new InsOrdersCarInfo();
|
|
|
- BeanUtils.copyProperties(carinfo, insOrdersCarInfo);
|
|
|
- insOrdersCarInfo.setId(IdGenerate.nextId());
|
|
|
- insOrdersCarInfoService.save(insOrdersCarInfo);
|
|
|
- insOrders.setCarInfoId(insOrdersCarInfo.getId());
|
|
|
- }else{
|
|
|
- InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getCarInfoByFrameNo(insOrdersBo.getCarinfo().getFrameNo());
|
|
|
- insOrders.setCarInfoId(insOrdersCarInfo.getId());
|
|
|
- }
|
|
|
-
|
|
|
- // 2 人员信息
|
|
|
-
|
|
|
- // 车主信息
|
|
|
- CustomerInfoVo ownerInfo = insOrdersBo.getOwnerinfo();
|
|
|
- //检查是否存在车主信息
|
|
|
- if(insOrdersCarUserInfoService.isExist(ownerInfo.getIdentifyNumber())){
|
|
|
- InsOrdersCarUserInfo carUserInfoByIdCard = insOrdersCarUserInfoService.getCarUserInfoByIdCard(ownerInfo.getIdentifyNumber());
|
|
|
- insOrders.setOwnerId(carUserInfoByIdCard.getId());
|
|
|
- }else{
|
|
|
- //保存车主信息
|
|
|
- InsOrdersCarUserInfo insOrdersCarUserInfo = new InsOrdersCarUserInfo();
|
|
|
- BeanUtils.copyProperties(ownerInfo, insOrdersCarUserInfo);
|
|
|
- insOrdersCarUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrdersCarUserInfoService.save(insOrdersCarUserInfo);
|
|
|
- insOrders.setOwnerId(insOrdersCarUserInfo.getId());
|
|
|
- }
|
|
|
- // 投保人信息
|
|
|
- CustomerInfoVo applyInfo = insOrdersBo.getApplyinfo();
|
|
|
- if(!applyInfo.isOwner()){
|
|
|
- //检查是否存在投保人信息
|
|
|
- if(insOrdersCarUserInfoService.isExist(applyInfo.getIdentifyNumber())){
|
|
|
- InsOrdersCarUserInfo carUserInfoByIdCard = insOrdersCarUserInfoService.getCarUserInfoByIdCard(applyInfo.getIdentifyNumber());
|
|
|
- insOrders.setApplyId(carUserInfoByIdCard.getId());
|
|
|
- }else{
|
|
|
- //保存投保人信息
|
|
|
- InsOrdersCarUserInfo insOrdersCarUserInfo = new InsOrdersCarUserInfo();
|
|
|
- BeanUtils.copyProperties(applyInfo, insOrdersCarUserInfo);
|
|
|
- insOrdersCarUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrdersCarUserInfoService.save(insOrdersCarUserInfo);
|
|
|
- insOrders.setApplyId(insOrdersCarUserInfo.getId());
|
|
|
- }
|
|
|
- }else{
|
|
|
- insOrders.setApplyId(insOrders.getOwnerId());
|
|
|
- }
|
|
|
- // 被保人信息
|
|
|
- CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
|
|
|
- if(!insureInfo.isOwner() && !insureInfo.isInsuranceHolder()){
|
|
|
- //检查是否存在被保人信息
|
|
|
- if(insOrdersCarUserInfoService.isExist(insureInfo.getIdentifyNumber())){
|
|
|
- InsOrdersCarUserInfo carUserInfoByIdCard = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
|
|
|
- insOrders.setInsureId(carUserInfoByIdCard.getId());
|
|
|
- }else{
|
|
|
- //保存被保人信息
|
|
|
- InsOrdersCarUserInfo insOrdersCarUserInfo = new InsOrdersCarUserInfo();
|
|
|
- BeanUtils.copyProperties(insureInfo, insOrdersCarUserInfo);
|
|
|
- insOrdersCarUserInfo.setId(IdGenerate.nextId());
|
|
|
- insOrdersCarUserInfoService.save(insOrdersCarUserInfo);
|
|
|
- insOrders.setInsureId(insOrdersCarUserInfo.getId());
|
|
|
- }
|
|
|
- }else{
|
|
|
- insOrders.setInsureId(insOrders.getOwnerId());
|
|
|
- }
|
|
|
-
|
|
|
- // 3 车船税信息
|
|
|
- VehicleAndVesselTax vehicleAndVesselTax = insOrdersBo.getVehicleAndVesselTax();
|
|
|
- InsOrdersTax insOrdersTax = new InsOrdersTax(orderNo, vehicleAndVesselTax);
|
|
|
- InsOrdersTaxService.save(insOrdersTax);
|
|
|
- // 4 交强商业信息表
|
|
|
- List<KindInfoVo> kind = insOrdersBo.getKing();
|
|
|
- List<InsOrdersKind> kindList = InsOrdersKind.buildKindList(orderNo, kind);
|
|
|
- insOrdersKindService.saveBatch(kindList);
|
|
|
- // 5 商业险险种信息
|
|
|
- List<RiskInfoVo> risk = insOrdersBo.getRisk();
|
|
|
- List<InsOrdersRisk> riskList = InsOrdersRisk.buildRiskList(orderNo, risk);
|
|
|
- insOrdersRiskService.saveBatch(riskList);
|
|
|
+ public boolean saveAndTrajectories(InsOrders insOrders) {
|
|
|
+ this.baseMapper.insert(insOrders);
|
|
|
SaSession saSession = StpUtil.getSessionByLoginId(StpUtil.getLoginId());
|
|
|
SysUser sysUser = (SysUser) saSession.get(SaSession.USER);
|
|
|
final InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insOrders, sysUser.getId(), sysUser.getName());
|
|
|
insOrdersTrackService.save(insOrdersTrack);
|
|
|
- this.baseMapper.insert(insOrders);
|
|
|
return true;
|
|
|
}
|
|
|
|