Commit 9b724136 authored by fangxinjiang's avatar fangxinjiang

保单号维护表分页-fxj

parent a21c2f07
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* @author fxj
* @description 已投保查询返回类
* @date 2022-07-21 09:46:09
*/
@Data
@Tag(name = "已投保查询返回类")
public class PolicyListVo implements Serializable {
private static final long serialVersionUID = -6673220061558171816L;
/**
* 保单号
*/
@Length(max = 50, message = "保单号 不能超过50 个字符" )
@ExcelAttribute(name = "保单号", maxLength = 50, isNotEmpty = true,errorInfo = "保单号不能为空")
@ExcelProperty("保单号" )
@Schema(description = "保单号")
private String policyNo;
/**
* 保单开始日期
*/
@ExcelAttribute(name = "保单开始日期",isDate = true, isNotEmpty = true,dateFormat = DateUtil.ISO_EXPANDED_DATE_FORMAT, errorInfo = "保单开始日期不能为空")
@ExcelProperty("保单开始日期" )
@Schema(description = "保单开始日期")
private String policyStart;
/**
* 保单截止日期
*/
@ExcelAttribute(name = "保单截止日期", isDate = true, isNotEmpty = true,dateFormat = DateUtil.ISO_EXPANDED_DATE_FORMAT,errorInfo = "保单截止日期不能为空")
@ExcelProperty("保单截止日期" )
@Schema(description = "保单截止日期")
private String policyEnd;
/**
* 保险公司
*/
@ExcelAttribute(name = "保险公司", maxLength = 60, isNotEmpty = true,errorInfo = "保险公司不能为空")
@ExcelProperty("保险公司" )
@Schema(description = "保险公司")
private String insuranceCompanyName;
/**
* 险种
*/
@ExcelAttribute(name = "险种", maxLength = 50, isNotEmpty = true,errorInfo = "险种不能为空")
@ExcelProperty("险种" )
@Schema(description = "险种")
private String insuranceTypeName;
/**
* 商险购买地省code
*/
@Schema(description = "商险购买地省code")
@ExcelIgnore
private Integer insuranceProvince;
/**
* 商险购买地省
*/
@Schema(description = "商险购买地省")
@ExcelIgnore
private String insuranceProvinceName;
/**
* 商险购买地市code
*/
@Schema(description = "商险购买地市code")
@ExcelIgnore
private Integer insuranceCity;
/**
* 商险购买地市
*/
@Schema(description = "商险购买地市")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "商险购买地")
private String insuranceCityName;
}
......@@ -15,9 +15,7 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePolicy;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsurancePolicyService;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListEditParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsurancePolicyDetailVO;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -145,4 +143,23 @@ public class TInsurancePolicyController {
RedisDistributedLock.unlock(key, requestId);
}
}
/**
* 商险自动化-针对批增的查询保单号的分页接口
* 根据保单号去重,未过期的保单
* MVP1.7.15 取值从保单维护表获取
*
* @author fxj
* @param page 分页对象
* @param param 查询参数
* @return {@link R<IPage< InsuredListVo >>}
* @since 1.7.15
* @date 2025/9/1
*/
@Operation(summary = "商险自动化-针对批增的查询保单号的分页接口")
@PostMapping("/policyPageToAutoSelect" )
public R<IPage<PolicyListVo>> policyPageToAutoSelect(Page<PolicyListVo> page, @RequestBody InsuredParam param,
@RequestParam(required = false) String mId) {
return R.ok(tInsurancePolicyService.policyPageToAutoSelect(page, param, mId));
}
}
......@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePolicy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuredParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.PolicyListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -36,6 +38,8 @@ public interface TInsurancePolicyMapper extends BaseMapper<TInsurancePolicy> {
* @return {@link List< TInsurancePolicy>}
*/
List<TInsurancePolicy> getInsurancePolicyList(@Param("param") InsurancePolicyListParam param);
Page<PolicyListVo> policyPageToAutoSelect(Page page,@Param("param") InsuredParam param);
}
......
......@@ -7,9 +7,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.ErrorDetailVO;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePolicy;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListEditParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsurancePolicyDetailVO;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import java.io.InputStream;
import java.util.List;
......@@ -77,4 +75,6 @@ public interface TInsurancePolicyService extends IService<TInsurancePolicy> {
R deleteInsurancePolicy(String id);
R<List<ErrorMessage>> importInsurancePolicy(InputStream inputStream);
Page<PolicyListVo> policyPageToAutoSelect(Page<PolicyListVo> page, InsuredParam param, String mId);
}
......@@ -2109,27 +2109,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
booleanPolicyNo = true;
}
detail.setPolicyNo(success.getPolicyNo());
//保单号不为空,维护到保单表中
one = tInsurancePolicyService.getOne(Wrappers.<TInsurancePolicy>query().lambda()
.eq(TInsurancePolicy::getPolicyNo, success.getPolicyNo())
.eq(TInsurancePolicy::getDeleteFlag,CommonConstants.ZERO_INT)
.last(CommonConstants.LAST_ONE_SQL));
if (!Optional.ofNullable(one).isPresent()){
TInsurancePolicy policy = new TInsurancePolicy();
policy.setPolicyNo(success.getPolicyNo());
policy.setPolicyStart(detail.getPolicyStart());
policy.setPolicyEnd(detail.getPolicyEnd());
policy.setInsuranceCompanyName(detail.getInsuranceCompanyName());
policy.setInsuranceTypeName(detail.getInsuranceTypeName());
policy.setId(RandomStringUtils.randomNumeric(19));
policyList.add(policy);
//第一次新增插入变更记录表为insert,前端会将insert渲染为批量导入
TBusinessOperate operate = new TBusinessOperate();
operate.setBusinessId(policy.getId());
operate.setDifferenceInfo("insert");
operateList.add(operate);
}
//保单号不为空,维护到保单表中 MVP1.7.15 取消同步插入保单维护信息
//如果保单号不为空,将替换类型的保单号也全部更新
replaceList = tInsuranceReplaceService.list(Wrappers.<TInsuranceReplace>query().lambda()
......@@ -2321,10 +2301,6 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
tInsurancePolicyService.saveBatch(policyList);
policyList.clear();
}
if (!operateList.isEmpty()) {
tBusinessOperateService.saveBatch(operateList);
operateList.clear();
}
//操作记录
addOperate(detailList,user,InsurancesConstants.REGISTERED,null,CommonConstants.ONE_INT);
if (operatList.stream().allMatch(e->e.getErrorMessage().equals(CommonConstants.RESULT_DATA_SUCESS))) {
......
......@@ -29,10 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceDetail
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsurancePolicyService;
import com.yifu.cloud.plus.v1.yifu.insurances.util.BeanCopyUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyImportVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListEditParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsurancePolicyDetailVO;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import com.yifu.cloud.plus.v1.yifu.social.entity.*;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchImportVo;
import lombok.RequiredArgsConstructor;
......@@ -47,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.InputStream;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -277,6 +275,7 @@ public class TInsurancePolicyServiceImpl extends ServiceImpl<TInsurancePolicyMap
}
return Common.judgeAllMessage(errorMessageList);
}
public void importInsurancePolicy(List<InsurancePolicyImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
YifuUser user, Map<String, String> policyNoMap) {
......@@ -344,14 +343,10 @@ public class TInsurancePolicyServiceImpl extends ServiceImpl<TInsurancePolicyMap
baseMapper.insert(policy);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "保存成功",CommonConstants.GREEN));
//插入保单维护操作日志
//tBusinessOperateService.saveModificationRecord(policy.getId(), policy, policy, InsurancesConstants.IMPORT_POLICY_REMARK);
//第一次新增插入变更记录表为insert,前端会将insert渲染为批量导入
operate = new TBusinessOperate();
operate.setBusinessId(policy.getId());
operate.setCreateTime(LocalDateTime.now());
operate.setOldInfo(null);
operate.setNewInfo(JSON.toJSONString(policy,features));
operate.setDifferenceInfo(null);
operate.setRemark(InsurancesConstants.IMPORT_POLICY_REMARK);
operate.setDifferenceInfo("insert");
tBusinessOperateService.save(operate);
policyNoMap.put(excel.getPolicyNo(), excel.getRowIndex().toString());
......@@ -419,11 +414,15 @@ public class TInsurancePolicyServiceImpl extends ServiceImpl<TInsurancePolicyMap
v -> v, (existing, replacement) -> existing // 处理重复key的情况
));
}
private SerializerFeature[] features = new SerializerFeature[] {
WriteMapNullValue, WriteNullNumberAsZero, WriteNullListAsEmpty,
WriteNullStringAsEmpty,WriteDateUseDateFormat
};
@Override
public Page<PolicyListVo> policyPageToAutoSelect(Page<PolicyListVo> page, InsuredParam param, String mId) {
// 查保单未过期的数据
String today = LocalDateUtil.getDateSrt(LocalDate.now());
param.setPolicyEnd(today);
return baseMapper.policyPageToAutoSelect(page,param);
}
}
......
......@@ -90,4 +90,49 @@
</if>
ORDER BY CREATE_TIME DESC
</select>
<!--商险自动化-针对批增的查询保单号的分页接口-->
<select id="policyPageToAutoSelect" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.PolicyListVo">
select
a.id as id,
a.POLICY_NO as policyNo,
a.POLICY_START as policyStart,
a.POLICY_END as policyEnd,
a.INSURANCE_COMPANY_NAME as insuranceCompanyName,
a.INSURANCE_TYPE_NAME as insuranceTypeName,
c.id as insuranceTypeId,
d.BUY_STANDARD as buyStandard
from t_insurance_policy a
LEFT JOIN t_insurance_company b on a.INSURANCE_COMPANY_NAME=b.COMPANY_NAME
LEFT JOIN t_insurance_type c on a.INSURANCE_TYPE_NAME = c.`NAME`
LEFT JOIN t_insurance_type_standard d on c.ID = d.INSURANCE_TYPE_ID
where
a.DELETE_FLAG = 0
and a.POLICY_NO is not null
and a.POLICY_NO != ""
and d.DELETE_FLAG='0' and d.`ENABLE`='0'
and c.DELETE_FLAG='0' and c.`ENABLE`='0'
and b.DELETE_FLAG='0'
<if test="param.policyNo != null and param.policyNo.trim() != ''">
and a.POLICY_NO like concat('%',replace(replace(#{param.policyNo},'_','\_'),'%','\%'),'%')
</if>
<if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''">
and a.INSURANCE_COMPANY_NAME like concat('%',replace(replace(#{param.insuranceCompanyName},'_','\_'),'%','\%'),'%')
</if>
<if test="param.insuranceTypeName != null and param.insuranceTypeName.trim() != ''">
and a.INSURANCE_TYPE_NAME like concat('%',replace(replace(#{param.insuranceTypeName},'_','\_'),'%','\%'),'%')
</if>
<if test="param.buyStandardMin != null and param.buyStandardMin.trim() != ''">
AND d.BUY_STANDARD+0 <![CDATA[ >= ]]> #{param.buyStandardMin}+0
</if>
<if test="param.buyStandardMax != null and param.buyStandardMax.trim() != ''">
AND d.BUY_STANDARD+0 <![CDATA[ <= ]]> #{param.buyStandardMax}+0
</if>
<if test="param.policyEnd != null and param.policyEnd.trim() != ''">
AND DATE(a.POLICY_END) <![CDATA[ >= ]]> #{param.policyEnd}
</if>
group by a.POLICY_NO,d.BUY_STANDARD
ORDER BY a.CREATE_TIME DESC ,a.ID ASC
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment