Commit 94b320c8 by jianan

Fna接口24

parent d83cb213
...@@ -16,7 +16,6 @@ import com.yd.csf.service.model.Fna; ...@@ -16,7 +16,6 @@ import com.yd.csf.service.model.Fna;
import com.yd.csf.service.service.CustomerService; import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.service.FnaService; import com.yd.csf.service.service.FnaService;
import com.yd.csf.service.vo.FnaVO; import com.yd.csf.service.vo.FnaVO;
import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -44,8 +43,6 @@ public class ApiFnaController { ...@@ -44,8 +43,6 @@ public class ApiFnaController {
private CustomerService customerService; private CustomerService customerService;
@Resource @Resource
private ApiAppointmentService appointmentService; private ApiAppointmentService appointmentService;
@Resource
private ApiSysUserFeignClient apiSysUserFeignClient;
/** /**
* 新建流程 * 新建流程
......
package com.yd.csf.api.controller; package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.FnaFormAddRequest; import com.yd.csf.service.dto.FnaFormAddRequest;
import com.yd.csf.service.dto.FnaFormQueryRequest; import com.yd.csf.service.dto.FnaFormQueryRequest;
import com.yd.csf.service.dto.FnaFormUpdateRequest;
import com.yd.csf.service.dto.FnaUpdateRequest;
import com.yd.csf.service.model.FnaForm; import com.yd.csf.service.model.FnaForm;
import com.yd.csf.service.service.FnaFormService; import com.yd.csf.service.service.FnaFormService;
import com.yd.csf.service.vo.FnaFormVO; import com.yd.csf.service.vo.FnaFormVO;
import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -49,19 +57,24 @@ public class ApiFnaFormController { ...@@ -49,19 +57,24 @@ public class ApiFnaFormController {
if (fnaFormAddRequest == null) { if (fnaFormAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
} }
String saveType = fnaFormAddRequest.getSaveType();
if (StringUtils.isBlank(saveType)) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "保存方式必传");
}
// 校验 // 校验
fnaFormService.validFnaFormAdd(fnaFormAddRequest); fnaFormService.validFnaFormAdd(fnaFormAddRequest.getPersonalData(), saveType);
// 转换为数据库实体 // 转换为数据库实体
FnaForm fnaForm = fnaFormService.getFnaForm(fnaFormAddRequest); FnaForm fnaForm = fnaFormService.getFnaForm(fnaFormAddRequest);
// 表单状态
fnaForm.setFnaFormStatus("save".equals(saveType)? "COMPLETED" : "UNCOMPLETED");
// 获取Security上下文当前用户的登录信息 // 获取Security上下文当前用户的登录信息
// AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser(); AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
// String userBizId = authUserDto.getUserBizId(); String userBizId = authUserDto.getUserBizId();
String userBizId = "user_dMnkKPIwemvY0zhk";
fnaForm.setUserBizId(userBizId); fnaForm.setUserBizId(userBizId);
fnaForm.setFnaFormBizId(RandomStringGenerator.generateBizId16("fna_form")); fnaForm.setFnaFormBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FNA_FORM.getCode()));
fnaForm.setCreatorId(userBizId); fnaForm.setCreatorId(userBizId);
fnaForm.setUpdaterId(userBizId); fnaForm.setUpdaterId(userBizId);
...@@ -106,31 +119,40 @@ public class ApiFnaFormController { ...@@ -106,31 +119,40 @@ public class ApiFnaFormController {
// } // }
/** /**
* 更新fna(仅管理员可用) * 更新 Fna表单
* *
* @param fnaUpdateRequest * @param fnaUpdateRequest
* @return * @return
*/ */
// @PostMapping("/update") @PostMapping("/update")
// @AuthCheck(mustRole = UserConstant.ADMIN_ROLE) @Operation(summary = "更新 Fna表单")
// public Result<Boolean> updateFna(@RequestBody FnaUpdateRequest fnaUpdateRequest) { public Result<Boolean> updateFnaForm(@RequestBody FnaFormUpdateRequest fnaUpdateRequest) {
// if (fnaUpdateRequest == null || fnaUpdateRequest.getId() <= 0) { if (fnaUpdateRequest == null || StringUtils.isBlank(fnaUpdateRequest.getFnaFormBizId())) {
// throw new BusinessException(ErrorCode.PARAMS_ERROR); throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// } }
// // todo 在此处将实体类和 DTO 进行转换 String saveType = fnaUpdateRequest.getSaveType();
// FnaForm fnaForm = new FnaForm(); if (StringUtils.isBlank(saveType)) {
// BeanUtils.copyProperties(fnaUpdateRequest, fnaForm); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "保存方式必传");
// // 数据校验 }
// fnaFormService.validFna(fnaForm, false); // 校验
// // 判断是否存在 fnaFormService.validFnaFormAdd(fnaUpdateRequest.getPersonalData(), saveType);
// long id = fnaUpdateRequest.getId(); // 转换为数据库实体
// FnaForm oldFna = fnaFormService.getById(id); FnaForm fnaForm = fnaFormService.getFnaForm(fnaUpdateRequest);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR); // 表单状态
// // 操作数据库 fnaForm.setFnaFormStatus("save".equals(saveType)? "COMPLETED" : "UNCOMPLETED");
// boolean result = fnaFormService.updateById(fnaForm); // 判断是否存在
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR); String fnaFormBizId = fnaUpdateRequest.getFnaFormBizId();
// return Result.success(true); FnaForm oldFna = fnaFormService.getByFnaFormBizId(fnaFormBizId);
// } if (oldFna == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
// 操作数据库
boolean result = fnaFormService.updateById(fnaForm);
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(true);
}
/** /**
* 根据 fnaFormBizId 获取fna表单(封装类) * 根据 fnaFormBizId 获取fna表单(封装类)
......
...@@ -15,6 +15,12 @@ import java.io.Serializable; ...@@ -15,6 +15,12 @@ import java.io.Serializable;
public class FnaAddRequest implements Serializable { public class FnaAddRequest implements Serializable {
/** /**
* 租户编码
*/
@Schema(description = "租户编码", requiredMode = Schema.RequiredMode.REQUIRED)
private String tenantCode;
/**
* 系统用户唯一业务ID * 系统用户唯一业务ID
*/ */
@Schema(description = "系统用户唯一业务ID") @Schema(description = "系统用户唯一业务ID")
...@@ -54,7 +60,7 @@ public class FnaAddRequest implements Serializable { ...@@ -54,7 +60,7 @@ public class FnaAddRequest implements Serializable {
* 新单跟进ID * 新单跟进ID
*/ */
@Schema(description = "新单跟进ID") @Schema(description = "新单跟进ID")
private String policyId; private String policyBizId;
/** /**
* 保单编号 * 保单编号
......
...@@ -14,6 +14,12 @@ import java.util.List; ...@@ -14,6 +14,12 @@ import java.util.List;
public class FnaFormAddRequest implements Serializable { public class FnaFormAddRequest implements Serializable {
/** /**
* 保存方式 temp-暂存 save-保存
*/
@Schema(description = "保存方式 temp-暂存 save-保存", requiredMode = Schema.RequiredMode.REQUIRED)
private String saveType;
/**
* 客户唯一业务ID * 客户唯一业务ID
*/ */
@Schema(description = "客户唯一业务ID") @Schema(description = "客户唯一业务ID")
......
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -11,26 +12,90 @@ import java.util.List; ...@@ -11,26 +12,90 @@ import java.util.List;
*/ */
@Data @Data
public class FnaFormUpdateRequest implements Serializable { public class FnaFormUpdateRequest implements Serializable {
/**
* 保存方式 temp-暂存 save-保存
*/
@Schema(description = "保存方式 temp-暂存 save-保存", requiredMode = Schema.RequiredMode.REQUIRED)
private String saveType;
/**
* Fna表单唯一业务ID
*/
@Schema(description = "Fna表单唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String fnaFormBizId;
/**
* 客户唯一业务ID
*/
@Schema(description = "客户唯一业务ID")
private String customerBizId;
/**
* 个人资料
*/
@Schema(description = "个人资料")
private PersonalData personalData;
/**
* 家庭状况
*/
@Schema(description = "家庭状况(父亲-father/母亲-mother/配偶-spouse/子女-children)")
private List<FamilyMember> familyMembers;
/**
* 保单持有人个人已有保障
*/
private List<ExistingSecurity> existingSecurityOwner;
/**
* 受保人个人已有保障
*/
private List<ExistingSecurity> existingSecurityInsured;
/**
* 平均月收入
*/
@Schema(description = "平均月收入")
private String monthlyIncome;
/** /**
* id * 平均月支出
*/ */
private Long id; @Schema(description = "平均月支出")
private String monthlyExpense;
/** /**
* 标题 * 累积流动资产
*/ */
private String title; @Schema(description = "累积流动资产")
private String liquidAssets;
/** /**
* 内容 * 流动资产种类
*/ */
private String content; @Schema(description = "流动资产种类,多选逗号隔开 字典值:csf_liquid_asset_type")
private String liquidAssetType;
/** /**
* 标签列表 * 其他流动资产的说明
*/ */
private List<String> tags; @Schema(description = "其他流动资产的说明")
private String otherLiquidAsset;
/**
* 保单持有人资产
*/
@Schema(description = "保单持有人资产")
private OwnerAssets ownerAssets;
/**
* 公司业务资料
*/
@Schema(description = "公司业务资料")
private CompanyBusinessData companyBusinessData;
@Schema(description = "首期及续保保费的财富来源,单选 字典值:csf_premium_funding_source")
private String premiumFundingSource;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -8,9 +8,6 @@ public class PersonalData { ...@@ -8,9 +8,6 @@ public class PersonalData {
@Schema(description = "陪同顾问姓名", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "陪同顾问姓名", requiredMode = Schema.RequiredMode.REQUIRED)
private String accountName; private String accountName;
@Schema(description = "陪同顾问手机号")
private String accountPhone;
@Schema(description = "理财顾问注册编号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "理财顾问注册编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String registrationNumber; private String registrationNumber;
......
...@@ -29,7 +29,7 @@ public class Fna implements Serializable { ...@@ -29,7 +29,7 @@ public class Fna implements Serializable {
/** /**
* 财富需要分析编号 * 财富需要分析编号
*/ */
private Long fnaNo; private String fnaNo;
/** /**
* 系统用户唯一业务ID * 系统用户唯一业务ID
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
/** /**
...@@ -81,6 +82,11 @@ public class FnaForm implements Serializable { ...@@ -81,6 +82,11 @@ public class FnaForm implements Serializable {
private String liquidAssetType; private String liquidAssetType;
/** /**
* 其他流动资产的说明
*/
private String otherLiquidAsset;
/**
* 保单持有人资产 * 保单持有人资产
*/ */
private Object ownerAssets; private Object ownerAssets;
...@@ -96,6 +102,11 @@ public class FnaForm implements Serializable { ...@@ -96,6 +102,11 @@ public class FnaForm implements Serializable {
private String premiumFundingSource; private String premiumFundingSource;
/** /**
* fna表单状态
*/
private String fnaFormStatus;
/**
* 通用备注 * 通用备注
*/ */
private String remark; private String remark;
......
...@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.dto.FnaFormAddRequest; import com.yd.csf.service.dto.FnaFormAddRequest;
import com.yd.csf.service.dto.FnaFormQueryRequest; import com.yd.csf.service.dto.FnaFormQueryRequest;
import com.yd.csf.service.dto.FnaFormUpdateRequest;
import com.yd.csf.service.dto.PersonalData;
import com.yd.csf.service.model.FnaForm; import com.yd.csf.service.model.FnaForm;
import com.yd.csf.service.vo.FnaFormVO; import com.yd.csf.service.vo.FnaFormVO;
...@@ -19,9 +21,9 @@ public interface FnaFormService extends IService<FnaForm> { ...@@ -19,9 +21,9 @@ public interface FnaFormService extends IService<FnaForm> {
* 校验数据 * 校验数据
* *
* @param fnaForm * @param fnaForm
* @param add 对创建的数据进行校验 * @param saveType 保存类型
*/ */
void validFnaForm(FnaForm fnaForm, boolean add); void validFnaForm(FnaForm fnaForm, String saveType);
/** /**
* 获取查询条件 * 获取查询条件
...@@ -47,9 +49,11 @@ public interface FnaFormService extends IService<FnaForm> { ...@@ -47,9 +49,11 @@ public interface FnaFormService extends IService<FnaForm> {
*/ */
Page<FnaFormVO> getFnaFormVOPage(Page<FnaForm> fnaFormPage); Page<FnaFormVO> getFnaFormVOPage(Page<FnaForm> fnaFormPage);
void validFnaFormAdd(FnaFormAddRequest fnaFormAddRequest); void validFnaFormAdd(PersonalData personalData, String saveType);
FnaForm getFnaForm(FnaFormAddRequest fnaFormAddRequest); FnaForm getFnaForm(FnaFormAddRequest fnaFormAddRequest);
FnaForm getFnaForm(FnaFormUpdateRequest fnaFormUpdateRequest);
FnaForm getByFnaFormBizId(String fnaFormBizId); FnaForm getByFnaFormBizId(String fnaFormBizId);
} }
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
...@@ -152,7 +153,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -152,7 +153,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
// customer.setUserBizId(""); // customer.setUserBizId("");
// 客户主表业务唯一id // 客户主表业务唯一id
customer.setCustomerBizId(RandomStringGenerator.generateBizId16("customer")); customer.setCustomerBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_CUSTOMER.getCode()));
boolean result = customerService.save(customer); boolean result = customerService.save(customer);
if (!result) { if (!result) {
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage()); throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
......
...@@ -44,23 +44,11 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl ...@@ -44,23 +44,11 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
* 校验数据 * 校验数据
* *
* @param fnaForm * @param fnaForm
* @param add 对创建的数据进行校验 * @param saveType 保存类型
*/ */
@Override @Override
public void validFnaForm(FnaForm fnaForm, boolean add) { public void validFnaForm(FnaForm fnaForm, String saveType) {
// ThrowUtils.throwIf(fnaForm == null, ErrorCode.PARAMS_ERROR);
// // todo 从对象中取值
// String title = fnaForm.getTitle();
// // 创建数据时,参数不能为空
// if (add) {
// // todo 补充校验规则
// ThrowUtils.throwIf(StringUtils.isBlank(title), ErrorCode.PARAMS_ERROR);
// }
// // 修改数据时,有参数则校验
// // todo 补充校验规则
// if (StringUtils.isNotBlank(title)) {
// ThrowUtils.throwIf(title.length() > 80, ErrorCode.PARAMS_ERROR, "标题过长");
// }
} }
/** /**
...@@ -178,15 +166,27 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl ...@@ -178,15 +166,27 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
} }
@Override @Override
public void validFnaFormAdd(FnaFormAddRequest fnaFormAddRequest) { public void validFnaFormAdd(PersonalData personalData, String saveType) {
if (fnaFormAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
PersonalData personalData = fnaFormAddRequest.getPersonalData();
if (personalData == null || ValidateUtil.isAllFieldsNull(personalData)) { if (personalData == null || ValidateUtil.isAllFieldsNull(personalData)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "个人资料不能为空"); throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "个人资料不能全不为空");
}
if ("save".equals(saveType)) {
if (StringUtils.isBlank(personalData.getAccountName())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "陪同顾问姓名不能为空");
}
if (StringUtils.isBlank(personalData.getRegistrationNumber())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "理财顾问注册编号不能为空");
}
if (StringUtils.isBlank(personalData.getCustomerName())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "客户姓名不能为空");
}
if (StringUtils.isBlank(personalData.getTaxCountry())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "税务国家不能为空");
}
if (StringUtils.isBlank(personalData.getEmployment())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "就业情况不能为空");
}
} }
} }
@Override @Override
...@@ -210,6 +210,21 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl ...@@ -210,6 +210,21 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
} }
@Override @Override
public FnaForm getFnaForm(FnaFormUpdateRequest fnaFormUpdateRequest) {
FnaForm fnaForm = new FnaForm();
BeanUtils.copyProperties(fnaFormUpdateRequest, fnaForm);
fnaForm.setPersonalData(GSON.toJson(fnaFormUpdateRequest.getPersonalData()));
fnaForm.setFamilyMembers(GSON.toJson(fnaFormUpdateRequest.getFamilyMembers()));
fnaForm.setExistingSecurityOwner(GSON.toJson(fnaFormUpdateRequest.getExistingSecurityOwner()));
fnaForm.setExistingSecurityInsured(GSON.toJson(fnaFormUpdateRequest.getExistingSecurityInsured()));
fnaForm.setOwnerAssets(GSON.toJson(fnaFormUpdateRequest.getOwnerAssets()));
fnaForm.setCompanyBusinessData(GSON.toJson(fnaFormUpdateRequest.getCompanyBusinessData()));
return fnaForm;
}
@Override
public FnaForm getByFnaFormBizId(String fnaFormBizId) { public FnaForm getByFnaFormBizId(String fnaFormBizId) {
QueryWrapper<FnaForm> queryWrapper = new QueryWrapper<>(); QueryWrapper<FnaForm> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fna_form_biz_id", fnaFormBizId); queryWrapper.eq("fna_form_biz_id", fnaFormBizId);
......
...@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; ...@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
...@@ -16,16 +19,20 @@ import com.yd.csf.service.dto.DeleteFnaRequest; ...@@ -16,16 +19,20 @@ import com.yd.csf.service.dto.DeleteFnaRequest;
import com.yd.csf.service.dto.FnaAddRequest; import com.yd.csf.service.dto.FnaAddRequest;
import com.yd.csf.service.dto.FnaQueryRequest; import com.yd.csf.service.dto.FnaQueryRequest;
import com.yd.csf.service.model.Fna; import com.yd.csf.service.model.Fna;
import com.yd.csf.service.model.FnaForm;
import com.yd.csf.service.service.FnaFormService;
import com.yd.csf.service.service.FnaService; import com.yd.csf.service.service.FnaService;
import com.yd.csf.service.vo.FnaVO; import com.yd.csf.service.vo.FnaVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -43,6 +50,9 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -43,6 +50,9 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
// @Resource // @Resource
// private UserService userService; // private UserService userService;
@Autowired
private FnaFormService fnaFormService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -51,13 +61,14 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -51,13 +61,14 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
BeanUtils.copyProperties(fnaAddRequest, fna); BeanUtils.copyProperties(fnaAddRequest, fna);
// 获取Security上下文当前用户的登录信息 // 获取Security上下文当前用户的登录信息
// AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser(); AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
// String userBizId = authUserDto.getUserBizId(); String userBizId = authUserDto.getUserBizId();
String userBizId = "user_dMnkKPIwemvY0zhk";
fna.setUserBizId(userBizId); fna.setUserBizId(userBizId);
fna.setFnaBizId(RandomStringGenerator.generateBizId16("fna"));
String fnaBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FNA.getCode());
fna.setFnaBizId(fnaBizId);
fna.setFnaNo(generateFnaNo(fnaAddRequest.getTenantCode(), fnaBizId));
fna.setCreatorId(userBizId); fna.setCreatorId(userBizId);
fna.setUpdaterId(userBizId); fna.setUpdaterId(userBizId);
...@@ -68,15 +79,9 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -68,15 +79,9 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
fna.setUpdateTime(date); fna.setUpdateTime(date);
// 写入数据库 // 写入数据库
boolean result = this.save(fna); boolean result = this.save(fna);
if (!result) {
// 更新 fna_no throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
// Fna updateFna = new Fna(); }
// updateFna.setId(fna.getId());
// updateFna.setFnaNo(fna.getId());
// fnaService.updateById(updateFna);
// 返回新写入的数据 id
String fnaBizId = fna.getFnaBizId();
// 组装返回 // 组装返回
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("fnaBizId", fnaBizId); map.put("fnaBizId", fnaBizId);
...@@ -84,6 +89,22 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -84,6 +89,22 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
} }
/** /**
* 生成f流程编号
* 流程编号格式:租户编号-流程类型-创建时间(YY-MM-DD)-bizld
*
* @param tenantCode
* @param fnaBizId
* @return
*/
private String generateFnaNo(String tenantCode, String fnaBizId) {
String defaultTenantCode = "CSF";
if (StringUtils.isBlank(tenantCode)) {
tenantCode = defaultTenantCode;
}
return tenantCode + "-B-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + "-" + fnaBizId;
}
/**
* 获取查询条件 * 获取查询条件
* *
* @param fnaQueryRequest * @param fnaQueryRequest
...@@ -136,22 +157,15 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -136,22 +157,15 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
// 对象转封装类 // 对象转封装类
FnaVO fnaVO = FnaVO.objToVo(fna); FnaVO fnaVO = FnaVO.objToVo(fna);
// region 可选 // 1. 关联查询 FNA表单 信息
String fnaFormBizId = fna.getFnaFormBizId();
// 1. 关联查询用户信息 FnaForm fnaForm = null;
// Long userId = fna.getUserId(); if (StringUtils.isNotBlank(fnaFormBizId)) {
// User user = null; fnaForm = fnaFormService.getByFnaFormBizId(fnaFormBizId);
// if (userId != null && userId > 0) { if (fnaForm != null) {
// user = userService.getById(userId); fnaVO.setFnaFormStatus(fnaForm.getFnaFormStatus());
// } }
// UserVO userVO = userService.getUserVO(user); }
// fnaVO.setUser(userVO);
// 2. 已登录,获取用户点赞、收藏状态
long fnaId = fna.getId();
// User loginUser = userService.getLoginUserPermitNull(request);
// endregion
return fnaVO; return fnaVO;
} }
......
...@@ -29,10 +29,10 @@ public class FnaVO implements Serializable { ...@@ -29,10 +29,10 @@ public class FnaVO implements Serializable {
private String fnaBizId; private String fnaBizId;
/** /**
* 财富需要分析编号 * 流程编号
*/ */
@Schema(description = "财富需要分析编号") @Schema(description = "流程编号")
private Long fnaNo; private String fnaNo;
/** /**
* 系统用户唯一业务ID * 系统用户唯一业务ID
...@@ -59,6 +59,12 @@ public class FnaVO implements Serializable { ...@@ -59,6 +59,12 @@ public class FnaVO implements Serializable {
private String fnaFormBizId; private String fnaFormBizId;
/** /**
* FNA表单 状态
*/
@Schema(description = "FNA表单 状态 'UNCOMPLETED'-未完成, 'COMPLETED'-已完成")
private String fnaFormStatus;
/**
* 预约编号 * 预约编号
*/ */
@Schema(description = "预约编号") @Schema(description = "预约编号")
......
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