Commit bd42c09e authored by fangxinjiang's avatar fangxinjiang

保单维护-fxj

parent 84b8ef78
...@@ -150,6 +150,8 @@ public interface CacheConstants { ...@@ -150,6 +150,8 @@ public interface CacheConstants {
String PAYMENT_SOCIAL_IMPORT = "payment_social_import"; String PAYMENT_SOCIAL_IMPORT = "payment_social_import";
String INSURANCE_POLICY_IMPORT = "insurance_policy_import";
String PAYMENT_FUND_IMPORT = "payment_fund_import"; String PAYMENT_FUND_IMPORT = "payment_fund_import";
String PAYMENT_SOCIAL_PUSH = "payment_social_push"; String PAYMENT_SOCIAL_PUSH = "payment_social_push";
......
...@@ -751,4 +751,19 @@ public class Common { ...@@ -751,4 +751,19 @@ public class Common {
} }
} }
} }
/**
* @Author fxj
* @Description 判断所有返回数据,是否全部为正确的
* @Date 16:32 2025/8/29
**/
public static R<List<ErrorMessage>> judgeAllMessage(List<ErrorMessage> errorMessageList) {
if (!errorMessageList.isEmpty() && errorMessageList.stream().noneMatch(e -> e.getColor().equals(CommonConstants.RED))) {
return R.ok();
}
if (!errorMessageList.isEmpty() && errorMessageList.stream().anyMatch(e -> CommonConstants.ONE_STRING.equals(e.getName()))) {
return R.ok(errorMessageList, "error");
}
return R.ok(errorMessageList);
}
} }
...@@ -1336,4 +1336,9 @@ public class InsurancesConstants { ...@@ -1336,4 +1336,9 @@ public class InsurancesConstants {
* 商险到期提醒默认提醒人配置KEY * 商险到期提醒默认提醒人配置KEY
*/ */
public static final String INSURANCE_ALERT_DEFAULT_PERSON = "INSURANCE_ALERT_DEFAULT_PERSON"; public static final String INSURANCE_ALERT_DEFAULT_PERSON = "INSURANCE_ALERT_DEFAULT_PERSON";
/**
* 保单号维护模版导入
*
*/
public static final String IMPORT_POLICY_REMARK = "保单号维护模版导入";
} }
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
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.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
/**
* @Author fxj
* @Description 保单维护导入对象
* @Date 16:34 2025/8/29
**/
@Data
@Schema(description = "保单维护导入对象")
public class InsurancePolicyImportVo extends RowIndex implements Serializable {
private static final long serialVersionUID = 1442112261102562729L;
/**
* 保单号
*/
@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;
}
...@@ -2,7 +2,17 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller; ...@@ -2,7 +2,17 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; 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.common.core.vo.YifuUser;
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.entity.TInsurancePolicy;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsurancePolicyService; 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.InsurancePolicyListEditParam;
...@@ -12,9 +22,11 @@ import io.swagger.v3.oas.annotations.Operation; ...@@ -12,9 +22,11 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
...@@ -104,4 +116,33 @@ public class TInsurancePolicyController { ...@@ -104,4 +116,33 @@ public class TInsurancePolicyController {
return tInsurancePolicyService.deleteInsurancePolicy(id); return tInsurancePolicyService.deleteInsurancePolicy(id);
} }
@SneakyThrows
@Operation(description = "批量新增保单号维护")
@SysLog("批量新增保单号维护")
@PostMapping("/importListAdd")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
return R.failed(CommonConstants.USER_FAIL);
}
// 获取redis分布式事务锁
String key = CacheConstants.INSURANCE_POLICY_IMPORT + CommonConstants.DOWN_LINE_STRING + user.getId();
String requestId;
try {
requestId = RedisDistributedLock.getLock(key,"10");
} catch (Exception e) {
throw new RuntimeException(ResultConstants.NO_GETLOCK_DATA+CommonConstants.DOWN_LINE_STRING+e.getMessage());
}
try {
if (Common.isNotNull(requestId)) {
return tInsurancePolicyService.importInsurancePolicy(file.getInputStream());
} else {
return R.failed(ResultConstants.NO_GETLOCK_DATA);
}
}finally {
//主动释放锁
RedisDistributedLock.unlock(key, requestId);
}
}
} }
...@@ -2,13 +2,16 @@ package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance; ...@@ -2,13 +2,16 @@ package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; 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.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePolicy;
import com.baomidou.mybatisplus.extension.service.IService; 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.InsurancePolicyListEditParam;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsurancePolicyListParam; 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.TInsurancePolicyDetailVO;
import java.io.InputStream;
import java.util.List; import java.util.List;
/** /**
...@@ -72,4 +75,6 @@ public interface TInsurancePolicyService extends IService<TInsurancePolicy> { ...@@ -72,4 +75,6 @@ public interface TInsurancePolicyService extends IService<TInsurancePolicy> {
* @return {@link R} * @return {@link R}
*/ */
R deleteInsurancePolicy(String id); R deleteInsurancePolicy(String id);
R<List<ErrorMessage>> importInsurancePolicy(InputStream inputStream);
} }
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