Commit 9deff75e by zhangxingmin

Merge remote-tracking branch 'origin/test' into test

parents d018582e b4a7b8d4
......@@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* policy接口
......
......@@ -718,4 +718,16 @@ public class ApiPolicyFollowController {
return new ArrayList<>();
}
/**
* 查询保单号列表
*
* @param policyNo 保单号
* @return 保单号列表
*/
@GetMapping("/policyNos")
@Operation(summary = "查询保单号列表")
public Result<List<String>> queryPolicyNumbers(@RequestParam String policyNo) {
List<String> policyNumbers = policyFollowService.queryPolicyNumbers(policyNo);
return Result.success(policyNumbers);
}
}
\ No newline at end of file
package com.yd.csf.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.gson.reflect.TypeToken;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.constant.CodeGeneratorConstants;
......@@ -24,17 +26,15 @@ import com.yd.csf.service.enums.PolicyStatusEnum;
import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*;
import com.yd.csf.service.utils.GSONUtil;
import com.yd.oss.feign.client.ApiMaterialFeignClient;
import com.yd.oss.feign.client.ApiRelObjectMaterialFeignClient;
import com.yd.oss.feign.dto.ApiRelMaterialDto;
import com.yd.oss.feign.request.ApiMaterialListRequest;
import com.yd.oss.feign.request.ApiRelObjectMaterialListAddRequest;
import com.yd.oss.feign.response.ApiMaterialListResponse;
import com.yd.question.feign.client.ApiQuestionnairesFeignClient;
import com.yd.question.feign.request.ApiAnswerSaveRequest;
import com.yd.question.feign.request.ApiBatchSaveAnswerRequest;
import com.yd.question.feign.request.ApiObjectSaveRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -135,6 +135,10 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
private IProductPlanService iProductPlanService;
@Resource
private CustomerService customerService;
@Resource
private FnaFormService fnaFormService;
@Resource
private PolicyBrokerService policyBrokerService;
/**
* 预约分页查询
......@@ -690,7 +694,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
ApiAppointmentUserSignDto firstSigner = response.getApiAppointmentInfoDto().getUserSignDtoList().get(0);
follow.setSigner(firstSigner.getName());
follow.setSignerBizId(firstSigner.getAppointmentUserSignBizId());
follow.setSignerRegNo(firstSigner.getPracticeCode());
follow.setPracticeCode(firstSigner.getPracticeCode());
}
// 产品计划信息
......@@ -734,6 +738,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
follow.setInitialPaymentMethod(apiProductPlanMainInfoDto.getInitialPaymentMethod());
// 续期付款方式
follow.setRenewalPaymentMethod(apiProductPlanMainInfoDto.getRenewalPaymentMethod());
// 红利付款方式
follow.setDividendDistributionMethod(apiProductPlanMainInfoDto.getDividendDistributionMethod());
// 保单征费
if (apiProductPlanMainInfoDto.getPolicyLevy() != null) {
follow.setPolicyLevy(apiProductPlanMainInfoDto.getPolicyLevy().toString());
......@@ -745,6 +751,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// 同步保存保单产品计划附加险
savePolicyAdditional(apiProductPlanAdditionalInfoDtoList, policyBizId);
// 同步转介人
savePolicyBroker(appointment.getFnaBizId(), policyBizId);
// // 同步保存保单(产品计划)
// savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// // 同步保存保单投保人
......@@ -761,6 +770,37 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
return Result.success();
}
private void savePolicyBroker(String fnaBizId, String policyBizId) {
log.info("同步保存保单转介人, fnaBizId: {}, policyBizId: {}", fnaBizId, policyBizId);
QueryWrapper<FnaForm> queryWrapper = new QueryWrapper<>();
queryWrapper.apply("fna_form_biz_id in (select fna_form_biz_id from fna where fna_biz_id = {0})", fnaBizId);
FnaForm fnaForm = fnaFormService.getOne(queryWrapper);
if (Objects.isNull(fnaForm)) {
return;
}
// 转介人
if (ObjectUtils.isNotEmpty(fnaForm.getBrokerList())) {
List<PolicyBroker> brokerList = GSONUtil.fromJson((String) fnaForm.getBrokerList(), new TypeToken<List<PolicyBroker>>() {
}.getType());
log.info("转介人列表: {}", brokerList);
if (ObjectUtils.isNotEmpty(brokerList)) {
if (brokerList.get(0) != null && !Objects.isNull(brokerList.get(0).getPolicyBizId())) {
// 先删除旧的转介人
policyBrokerService.removeByPolicyBizId(brokerList.get(0).getPolicyBizId());
}
brokerList.forEach(broker -> {
broker.setPolicyBizId(policyBizId);
});
// 保存新的转介人
policyBrokerService.saveOrUpdateBatch(brokerList);
}
}
}
private void setSignerList(PolicyFollow follow, Appointment appointment) {
List<PolicySigner> signerList = new ArrayList<>();
......
package com.yd.csf.service.component;
import cn.hutool.core.util.NumberUtil;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
......@@ -249,9 +250,9 @@ public class PolicyReportPdfService {
addTableHeaderCellNoBorder(table, "保費徵費");
addTableCellNoBorder(table, formatAmount(data.getPremiumFee()));
// 第六行:合預繳息金額 | 金額值 | (空) | (空)
addTableHeaderCellNoBorder(table, "合預繳息金額");
addTableCellNoBorder(table, formatAmount(data.getTotalPrepayment()));
// 第六行:首期合計金額 | 金額值 | (空) | (空)
addTableHeaderCellNoBorder(table, "首期合計金額");
addTableCellNoBorder(table, formatAmount(NumberUtil.add(data.getInitialPremium(), data.getPolicyLevy())));
addTableCellNoBorder(table, "");
addTableCellNoBorder(table, "");
......
......@@ -49,7 +49,7 @@ public class PolicyFollowDto implements Serializable {
private String signerBizId;
@Schema(description = "签单人执业编号")
private String signerRegNo;
private String practiceCode;
@Schema(description = "签单地点")
private String signLocation;
......@@ -205,7 +205,7 @@ public class PolicyFollowDto implements Serializable {
private String renewalPaymentMethod;
@Schema(description = "红利付款方式(字典)")
private String dividendPaymentMethod;
private String dividendDistributionMethod;
@Schema(description = "快递单号")
private String deliveryNo;
......
......@@ -25,6 +25,8 @@ public class PolicyReportData {
private BigDecimal annualAmount;
private BigDecimal totalPrepayment;
private BigDecimal premiumFee;
private BigDecimal initialPremium;
private BigDecimal policyLevy;
// 附加险信息
private List<AdditionalInsurance> additionalInsurances;
......
......@@ -83,7 +83,7 @@ public class PolicyFollow implements Serializable {
/**
* 签单人执业编号
*/
private String signerRegNo;
private String practiceCode;
/**
* 签单地点
......@@ -326,9 +326,9 @@ public class PolicyFollow implements Serializable {
private String renewalPaymentMethod;
/**
* 红利付款方式(字典)
* 红利方式(字典)
*/
private String dividendPaymentMethod;
private String dividendDistributionMethod;
/**
* 快递单号
......
......@@ -16,4 +16,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
List<PolicyBroker> queryList(QueryPolicyBrokerDto dto);
PolicyBroker queryOne(QueryPolicyBrokerDto dto);
void removeByPolicyBizId(String policyBizId);
}
......@@ -74,4 +74,12 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
* 批量保存介绍人信息
*/
Boolean batchSaveBrokers(BrokerBatchSaveRequest brokerBatchSaveRequest);
/**
* 查询保单号列表
*
* @param policyNo 保单号
* @return 保单号列表
*/
List<String> queryPolicyNumbers(String policyNo);
}
......@@ -42,6 +42,13 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
.last("limit 1")
);
}
@Override
public void removeByPolicyBizId(String policyBizId) {
baseMapper.delete(new LambdaQueryWrapper<PolicyBroker>()
.eq(PolicyBroker::getPolicyBizId, policyBizId)
);
}
}
......
......@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.auth.core.dto.AuthUserDto;
......@@ -194,7 +195,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
// 复制属性,排除系统字段
BeanUtils.copyProperties(policyFollowDto, policyFollow, "id", "policyBizId", "brokerList", "signerList");
BeanUtils.copyProperties(policyFollowDto, policyFollow, "id", "policyBizId", "brokerList");
// 检查保单号是否从空变为有值
String oldPolicyNo = policyFollow.getPolicyNo();
......@@ -410,10 +411,22 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
throw new BusinessException("保单号 " + policyFollow.getPolicyNo() + " 已存在,请勿重复添加");
}
}
// 更新转介人
updatePolicyBrokerPolicyNo(policyBizId, policyFollow.getPolicyNo());
}
return true;
}
private void updatePolicyBrokerPolicyNo(String policyBizId, String policyNo) {
// 更新转介人保单号
policyBrokerService.update(
new UpdateWrapper<PolicyBroker>()
.set("policy_no", policyNo)
.eq("policy_biz_id", policyBizId)
.eq("is_deleted", 0)
);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest, PolicyFollow policyFollow) {
......@@ -531,6 +544,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
throw new BusinessException("保单号 " + policy.getPolicyNo() + " 已存在,请勿重复添加");
}
// 更新转介人保单号
updatePolicyBrokerPolicyNo(policyBizId, policy.getPolicyNo());
// 根据保单生成预计入账记录
generateExpectedCommission(policyFollow, policy);
}
......@@ -631,14 +647,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
// 处理附加险信息
policyReportData.setAdditionalInsurances(additionalInsurances);
// 处理服务经理
String signerList = policyReportData.getServiceManager();
if (StringUtils.isNotBlank(signerList)) {
PolicySigner[] signers = GSONUtil.fromJson(signerList, PolicySigner[].class);
policyReportData.setServiceManager(signers[0].getSigner());
}
// 处理位置
policyReportData.setLocation("香港");
return policyReportData;
}
......@@ -804,6 +813,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return policyBrokerService.saveBatch(brokerList);
}
@Override
public List<String> queryPolicyNumbers(String policyNo) {
QueryWrapper<PolicyFollow> queryWrapper = new QueryWrapper<>();
queryWrapper.select("policyNo");
queryWrapper.like(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo);
queryWrapper.isNotNull("policy_no");
return policyFollowService.list(queryWrapper)
.stream()
.map(PolicyFollow::getPolicyNo)
.collect(Collectors.toList());
}
/**
* 根据保单生成预计入账记录
*
......
......@@ -97,7 +97,7 @@ public class PolicyFollowDetailVO implements Serializable {
* 签单人执业编号
*/
@Schema(description = "签单人执业编号")
private String signerRegNo;
private String practiceCode;
/**
* 签单地点
......@@ -399,7 +399,7 @@ public class PolicyFollowDetailVO implements Serializable {
* 红利付款方式(字典)
*/
@Schema(description = "红利付款方式")
private String dividendPaymentMethod;
private String dividendDistributionMethod;
/**
* 快递单号
......
......@@ -17,7 +17,7 @@
<result property="signDate" column="sign_date" />
<result property="signer" column="signer" />
<result property="signerBizId" column="signer_biz_id" />
<result property="signerRegNo" column="signer_reg_no" />
<result property="practiceCode" column="practice_code" />
<result property="signLocation" column="sign_location" />
<result property="issueDate" column="issue_date" />
<result property="coolingOffEndDate" column="cooling_off_end_date" />
......@@ -64,7 +64,7 @@
<result property="initialPremiumDiscount" column="initial_premium_discount" />
<result property="mailingMethod" column="mailing_method" />
<result property="renewalPaymentMethod" column="renewal_payment_method" />
<result property="dividendPaymentMethod" column="dividend_payment_method" />
<result property="dividendDistributionMethod" column="dividend_distribution_method" />
<result property="deliveryNo" column="delivery_no" />
<result property="policyLevy" column="policy_levy" />
<result property="initialPremiumPaid" column="initial_premium_paid" />
......@@ -85,7 +85,7 @@
<sql id="Base_Column_List">
id,policy_biz_id,policy_no,fna_biz_id,appointment_biz_id,appointment_no,customer_biz_id,
submit_date,customer_name,sign_date,signer,signer_biz_id,
signer_reg_no,sign_location,issue_date,cooling_off_end_date,cooling_off_days,
practice_code,sign_location,issue_date,cooling_off_end_date,cooling_off_days,
underwriting_date,effective_date,renewal_date,receipt_date,receipt_status,
direct_payment_enabled,issue_number,guarantee_period,sum_insured,payment_frequency,
each_issue_premium,is_prepay,is_traceable,retroactive_date,prepaid_term,
......@@ -94,7 +94,7 @@
reconciliation_company_biz_id,status,next_status_list,policy_holder,insured,
insured_age,grace_period,is_join,policy_currency,initial_payment_method,
initial_premium,initial_premium_total,initial_payment_status,initial_premium_discount,
mailing_method,renewal_payment_method,dividend_payment_method,delivery_no,
mailing_method,renewal_payment_method,dividend_distribution_method,delivery_no,
policy_levy,initial_premium_paid,initial_premium_due,latest_payment_date,broker_sign_date,
insurer_mailing_date,customer_sign_date,attachments,remark,is_deleted,
creator_id,updater_id,create_time,update_time
......@@ -110,13 +110,16 @@
t.issue_number as paymentPeriod,
t.initial_premium as annualAmount,
t.prepaid_amount as totalPrepayment,
t.payment_premium as premiumFee,
t.each_issue_premium as premiumFee,
t.sign_date as startTime,
t.sign_date as endTime,
t.signer_list as serviceManager,
t.signer as serviceManager,
t.sign_location as location,
t.policy_holder as policyHolder,
t.currency as currency,
t.policy_currency as currency,
ifnull(i.name, i.name_en) as insuredPerson,
t.initial_premium as initialPremium,
t.policy_levy as policyLevy,
i.age as insuredAge
from policy_follow t
......
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