Commit 2651bf80 authored by fangxinjiang's avatar fangxinjiang

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

parents 65a8e726 ec284ebc
......@@ -275,6 +275,8 @@ public interface CommonConstants {
String DATA_CAN_NOT_EMPTY = "数据不可为空";
String NO_DATA_TO_HANDLE = "无数据可操作!";
String PLEASE_LOG_IN = "请登录!";
String SEX_MAN = "1";
......
package com.yifu.cloud.plus.v1.yifu.common.core.redis;
/**
* @program: master
* @description: 分布式锁
* @author: pwang
* @create: 2020-06-01 15:51
**/
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.SpringContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.scripting.support.ResourceScriptSource;
import java.util.Collections;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
* redis分布式式锁
*
* @Author pwang
* @Date 2020-06-02 14:53
* @return
**/
@Slf4j
public class RedisDistributedLock {
private static final StringRedisTemplate redisTemplate = SpringContextHolder.getBean(StringRedisTemplate.class);
private static final DefaultRedisScript<Long> LOCK_SCRIPT;
private static final DefaultRedisScript<Object> UNLOCK_SCRIPT;
private static String prefix = "RedisDistributedLock_";
static {
// 加载释放锁的脚本
LOCK_SCRIPT = new DefaultRedisScript<>();
LOCK_SCRIPT.setScriptSource(new ResourceScriptSource(new ClassPathResource("lock.lua")));
LOCK_SCRIPT.setResultType(Long.class);
// 加载释放锁的脚本
UNLOCK_SCRIPT = new DefaultRedisScript<>();
UNLOCK_SCRIPT.setScriptSource(new ResourceScriptSource(new ClassPathResource("unlock.lua")));
}
/**
* 获取锁
*
* @param lockName 锁名称
* @param releaseTime 超时时间(单位:秒)
* @return key 解锁标识
*/
public static String getLock(String lockName, String releaseTime) {
// 存入的线程信息的前缀,防止与其它JVM中线程信息冲突
String key = UUID.randomUUID().toString();
// 执行脚本
Long result = redisTemplate.execute(
LOCK_SCRIPT,
Collections.singletonList(prefix.concat(lockName)),
key + Thread.currentThread().getId(), releaseTime);
// 判断结果
if (result != null && result.intValue() == 1) {
return key;
} else {
return null;
}
}
/**
* 默认三秒过期
* @Author pwang
* @Date 2021-07-30 18:00
* @param lockName
* @return
**/
public static String getLock(String lockName) {
return getLock(lockName,"3");
}
/**
* 释放锁
*
* @param lockName 锁名称
* @param key 解锁标识
*/
public static void unlock(String lockName, String key) {
// 执行脚本
redisTemplate.execute(
UNLOCK_SCRIPT,
Collections.singletonList(prefix.concat(lockName)),
key + Thread.currentThread().getId(), null);
}
/**
* 锁在给定的等待时间内空闲,则获取锁成功 返回true, 否则返回false,作为阻塞式锁使用
*
* @param key 锁键
* @param releaseTime 超时时间(单位:秒)
* @param timeout 尝试获取锁时长,建议传递500,结合实践单位,则可表示500毫秒
* @param unit,建议传递TimeUnit.MILLISECONDS
* @return requestId
* @throws InterruptedException
*/
public static String tryLock(String key, String releaseTime, long timeout, TimeUnit unit) throws InterruptedException {
//纳秒
long begin = System.nanoTime();
if (null == unit) {
unit = TimeUnit.MILLISECONDS;
}
do {
//LOGGER.debug("{}尝试获得{}的锁.", value, key);
String result = getLock(key, releaseTime);
if (Common.isNotNull(result)) {
/* log.debug(value + "-成功获取{}的锁,设置锁过期时间为{}秒 ", key, timeout);*/
return result;
} else {
// 存在锁 ,但可能获取不到,原因是获取的一刹那间
}
if (timeout == 0) {
break;
}
//在其睡眠的期间,锁可能被解,也可能又被他人占用,但会尝试继续获取锁直到指定的时间
Thread.sleep(10);
} while ((System.nanoTime() - begin) < unit.toNanos(timeout));
//因超时没有获得锁
return null;
}
/**
* 默认保存时间3秒,锁获取时间3000毫秒
* @Author pwang
* @Date 2020-06-02 15:00
* @param key
* @return
**/
public static String tryLock(String key) throws InterruptedException {
return tryLock(key, "3", 3000, null);
}
/**
* @param key
* @param time
* @Author: wangan
* @Date: 2020/9/30
* @Description: 审批时间较长。需要设置超过3秒时间
* @return: java.lang.String
**/
public static String tryLockAndTime(String key,String time) throws InterruptedException {
return tryLock(key, time, 3000, null);
}
}
package com.yifu.cloud.plus.v1.yifu.common.dapr.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* @Author hgw
* @Date 2022-7-27 19:38:08
* @Description
* @Version 1.0
*/
@Data
@Component
@PropertySource("classpath:daprConfig.properties")
@ConfigurationProperties(value = "dapr.social", ignoreInvalidFields = false)
public class DaprSocialProperties {
/*
* @author fxj
* @date 14:34
* @Description dapr sidercar url 如:http://localhost:3005/v1.0/invoke/
**/
String appUrl;
/*
* @author fxj
* @date 14:35
* @decription app_id 如:"yifu_upms_sider"
**/
String appId;
String appPort;
String httpPort;
String grpcPort;
String metricsPort;
}
......@@ -120,6 +120,10 @@ public class InsurancesConstants {
* 当前记录在减员流程中,无法替换
*/
public static final String REDUCE_REPLACE_IS_NOT_ALLOW = "当前记录在减员流程中,无法替换";
/**
* 已减员,无法退回
*/
public static final String REDUCE_ROLLBACK_IS_NOT_ALLOW = "已减员,无法退回";
/**
* 员工姓名不能为空
*/
......@@ -184,6 +188,10 @@ public class InsurancesConstants {
* 险种不存在
*/
public static final String INSURANCE_TYPE_NAME_NOT_EXIST = "险种不存在";
/**
* 费率不存在
*/
public static final String INSURANCE_TYPE_RATE_NOT_EXIST = "费率不存在";
/**
* 保单开始时间不能为空
*/
......
......@@ -213,7 +213,7 @@ public class TInsuranceDetail extends BaseEntity {
* 默认结算信息id
*/
@Schema(description = "默认结算信息id")
private Integer defaultSettleId;
private String defaultSettleId;
/**
* 减员状态 1待减员 2减员中3减员退回
......
......@@ -35,7 +35,7 @@ public class TInsuranceSettle implements Serializable {
/**
* 结算状态
*/
@Schema(description = "结算状态")
@Schema(description = "结算状态 1、待结算,2、结算中,3、已结算")
private String settleHandleStatus;
/**
......
package com.yifu.cloud.plus.v1.yifu.insurances.util;
import cn.hutool.core.date.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import java.text.DateFormat;
......@@ -185,7 +186,86 @@ public class LocalDateUtil {
return flag;
}
/**
* 计算相差多少天,如果开始时间晚于结束时间会对调
*
* @author licancan
* @param startDate
* @param endDate
* @return {@link long}
*/
public static long betweenDay(String startDate,String endDate){
long dif = 0;
//在日期字符串非空时执行
if (!Common.isEmpty(startDate) && !Common.isEmpty(endDate)) {
Date parseStartDate = null;
Date parseEndDate = null;
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(NORM_DATE_PATTERN, Locale.CHINA);
try {
//将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。
parseStartDate = sdf.parse(startDate);
parseEndDate = sdf.parse(endDate);
//调用hutool里面的DateUtil.betweenDay方法来做判断
dif = DateUtil.betweenDay(parseStartDate, parseEndDate, true);
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
return dif + 1;
}
/**
* 计算相差月份,如果开始时间晚于结束时间会对调
* 公式:(endYear - starYear) * 12 + endMonth - startMonth + (endDay >= startDay ? 1 : 0)
* @author licancan
* @param startDate
* @param endDate
* @return {@link long}
*/
public static long betweenMonth(String startDate,String endDate){
long dif = 0;
//在日期字符串非空时执行
if (!Common.isEmpty(startDate) && !Common.isEmpty(endDate)) {
Date parseStartDate = null;
Date parseEndDate = null;
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(NORM_DATE_PATTERN, Locale.CHINA);
try {
//将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。
parseStartDate = sdf.parse(startDate);
parseEndDate = sdf.parse(endDate);
//如果开始时间晚于结束时间对调
if (parseStartDate.after(parseEndDate)) {
Date t = parseStartDate;
parseStartDate = parseEndDate;
parseEndDate = t;
}
Calendar starCalendar = Calendar.getInstance();
starCalendar.setTime(parseStartDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(parseEndDate);
int starYear = starCalendar.get(Calendar.YEAR);
int startMonth = starCalendar.get(Calendar.MONTH);
int startDay = starCalendar.get(Calendar.DATE);
int endYear = endCalendar.get(Calendar.YEAR);
int endMonth = endCalendar.get(Calendar.MONTH);
int endDay = endCalendar.get(Calendar.DATE);
dif = (endYear - starYear) * 12 + endMonth - startMonth + (endDay >= startDay ? 1 : 0);
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
return dif;
}
public static void main(String[] args) {
System.out.println(compareDate("2022-07-26","2022-07-27"));
System.out.println(betweenMonth("2022-10-03","2022-08-03"));
}
}
......@@ -52,6 +52,18 @@ public class InsuranceExportListVO implements Serializable {
@Schema(description = " 投保类型, 1新增、3批增、4替换")
private Integer buyType;
/**
* 购买月数
*/
@Schema(description = "购买月数")
private Long buyMonth;
/**
* 购买天数
*/
@Schema(description = "购买天数")
private Long buyDay;
/**
* 投保岗位
*/
......
......@@ -42,6 +42,12 @@ public class InsuranceListVO implements Serializable {
@Schema(description = " 投保类型, 1新增、3批增、4替换")
private Integer buyType;
/**
* 购买月数
*/
@Schema(description = "购买月数")
private Long buyMonth;
/**
* 项目名称
*/
......@@ -115,4 +121,10 @@ public class InsuranceListVO implements Serializable {
*/
@Schema(description = "结算月")
private String settleMonth;
/**
* 错误信息
*/
@Schema(description = "错误信息")
private String errorMessage;
}
......@@ -160,11 +160,11 @@ public class TInsuranceDetailController {
*
* @author licancan
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
*/
@Operation(summary = "投保退回", description = "投保退回")
@PostMapping("/rollBackInsurance")
public R<List<TInsuranceDetail>> rollBackInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
public R<List<InsuranceListVO>> rollBackInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
return tInsuranceDetailService.rollBackInsurance(idList);
}
......@@ -173,11 +173,11 @@ public class TInsuranceDetailController {
*
* @author licancan
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
*/
@Operation(summary = "办理成功", description = "办理成功")
@PostMapping("/successfulInsurance")
public R<List<TInsuranceDetail>> successfulInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
public R<List<InsuranceListVO>> successfulInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
return tInsuranceDetailService.successfulInsurance(idList);
}
......
......@@ -104,18 +104,18 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*
* @author licancan
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
*/
R<List<TInsuranceDetail>> rollBackInsurance(List<String> idList);
R<List<InsuranceListVO>> rollBackInsurance(List<String> idList);
/**
* 办理成功
*
* @author licancan
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
*/
R<List<TInsuranceDetail>> successfulInsurance(List<String> idList);
R<List<InsuranceListVO>> successfulInsurance(List<String> idList);
/**
* 登记保单保费
......
......@@ -62,6 +62,9 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
@Lazy
private TInsuranceTypeStandardService tInsuranceTypeStandardService;
@Resource
@Lazy
private TInsuranceTypeRateService tInsuranceTypeRateService;
@Resource
private TInsuranceReplaceService tInsuranceReplaceService;
@Resource
private ArchivesDaprUtil archivesDaprUtil;
......@@ -88,19 +91,13 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
public IPage<InsuranceListVO> getInsuranceListPage(Page<InsuranceListVO> page, InsuranceListParam param) {
//todo 根据登录人获取数据权限
IPage<InsuranceListVO> insuranceList = baseMapper.getInsuranceListPage(page,param);
//根据项目编码获取项目名称
setProjectNameByDeptNo(insuranceList.getRecords());
// 购买月数
if (CollectionUtils.isNotEmpty(insuranceList.getRecords())){
//根据项目编码获取项目名称
List<String> collect = insuranceList.getRecords().stream().map(e -> e.getDeptNo()).distinct().collect(Collectors.toList());
R<SetInfoVo> setInfoByCodes = archivesDaprUtil.getSetInfoByCodes(collect);
if (null != setInfoByCodes && setInfoByCodes.getCode() == CommonConstants.SUCCESS && Common.isNotNull(setInfoByCodes.getData())) {
Map<String, ProjectSetInfoVo> data = setInfoByCodes.getData().getProjectSetInfoVoMap();
for (InsuranceListVO record : insuranceList.getRecords()) {
ProjectSetInfoVo jsonObject = data.get(record.getDeptNo());
if (null != jsonObject){
record.setProjectName(Optional.ofNullable(jsonObject.getDepartName()).orElse(""));
}
}
}
insuranceList.getRecords().stream().forEach(e ->{
e.setBuyMonth(LocalDateUtil.betweenMonth(e.getPolicyStart().toString(),e.getPolicyEnd().toString()));
});
}
return insuranceList;
}
......@@ -116,19 +113,13 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
public List<InsuranceListVO> getInsuranceList(InsuranceListParam param) {
//todo 根据登录人获取数据权限
List<InsuranceListVO> insuranceList = baseMapper.getInsuranceList(param);
//根据项目编码获取项目名称
setProjectNameByDeptNo(insuranceList);
// 购买月数
if (CollectionUtils.isNotEmpty(insuranceList)){
//根据项目编码获取项目名称
List<String> collect = insuranceList.stream().map(e -> e.getDeptNo()).distinct().collect(Collectors.toList());
R<SetInfoVo> setInfoByCodes = archivesDaprUtil.getSetInfoByCodes(collect);
if (null != setInfoByCodes && setInfoByCodes.getCode() == CommonConstants.SUCCESS && Common.isNotNull(setInfoByCodes.getData())) {
Map<String, ProjectSetInfoVo> data = setInfoByCodes.getData().getProjectSetInfoVoMap();
for (InsuranceListVO record : insuranceList) {
ProjectSetInfoVo jsonObject = data.get(record.getDeptNo());
if (null != jsonObject){
record.setProjectName(Optional.ofNullable(jsonObject.getDepartName()).orElse(""));
}
}
}
insuranceList.stream().forEach(e ->{
e.setBuyMonth(LocalDateUtil.betweenMonth(e.getPolicyStart().toString(),e.getPolicyEnd().toString()));
});
}
return insuranceList;
}
......@@ -268,6 +259,13 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
newDetail.setEmpIdcardNo(success.getReplaceEmpIdcardNo());
newDetail.setDeptNo(success.getReplaceDeptNo());
newDetail.setPost(success.getPost());
//其他状态置为空
newDetail.setIsOverdue(null);
newDetail.setIsUse(null);
newDetail.setIsEffect(null);
newDetail.setReduceHandleStatus(null);
//替换不参与结算
newDetail.setDefaultSettleId(null);
Boolean insert = this.save(newDetail);
//替换记录
if (insert){
......@@ -401,9 +399,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
}
//记录查重校验:姓名 + 身份证号 + 保险公司 + 险种 + 保单开始日期~保单结束日期区间 是唯一(剔除退回、过期状态的记录)
//todo 时间区间
//待投保、投保中、已投保(有效、未过期)
Set<Integer> setRStatus = Sets.newHashSet();
setRStatus.add(CommonConstants.FOUR_INT);
setRStatus.add(CommonConstants.FIVE_INT);
TInsuranceDetail insuranceDetail = this.baseMapper.selectOne(Wrappers.<TInsuranceDetail>query().lambda()
.eq(TInsuranceDetail::getEmpName, param.getEmpName())
.eq(TInsuranceDetail::getEmpIdcardNo, param.getEmpIdcardNo())
......@@ -412,12 +411,35 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
.eq(TInsuranceDetail::getPolicyStart, param.getPolicyStart())
.eq(TInsuranceDetail::getPolicyEnd, param.getPolicyEnd())
.notIn(TInsuranceDetail::getBuyHandleStatus, setRStatus)
.eq(TInsuranceDetail::getIsOverdue, CommonConstants.ZERO_INT)
.eq(TInsuranceDetail::getDeleteFlag, CommonConstants.ZERO_INT)
.ne(TInsuranceDetail::getIsEffect,CommonConstants.ONE_INT)
.ne(TInsuranceDetail::getIsOverdue,CommonConstants.ONE_INT)
.last(CommonConstants.LAST_ONE_SQL)
);
if (Optional.ofNullable(insuranceDetail).isPresent()){
if (Optional.ofNullable(insuranceDetail).isPresent() && !insuranceDetail.getId().equals(param.getId())){
return R.failed(InsurancesConstants.DATA_IS_EXIST);
}
//时间区间
TInsuranceDetail insuranceDetailBetween = this.baseMapper.selectOne(Wrappers.<TInsuranceDetail>query().lambda()
.eq(TInsuranceDetail::getEmpName, param.getEmpName())
.eq(TInsuranceDetail::getEmpIdcardNo, param.getEmpIdcardNo())
.eq(TInsuranceDetail::getInsuranceCompanyName, param.getInsuranceCompanyName())
.eq(TInsuranceDetail::getInsuranceTypeName, param.getInsuranceTypeName())
.notIn(TInsuranceDetail::getBuyHandleStatus, setRStatus)
.eq(TInsuranceDetail::getDeleteFlag, CommonConstants.ZERO_INT)
.and(
wrapper -> wrapper.between(TInsuranceDetail::getPolicyStart,LocalDateUtil.parseLocalDate(param.getPolicyStart()),LocalDateUtil.parseLocalDate(param.getPolicyEnd()))
.or()
.between(TInsuranceDetail::getPolicyEnd,LocalDateUtil.parseLocalDate(param.getPolicyStart()),LocalDateUtil.parseLocalDate(param.getPolicyEnd()))
)
.ne(TInsuranceDetail::getIsEffect,CommonConstants.ONE_INT)
.ne(TInsuranceDetail::getIsOverdue,CommonConstants.ONE_INT)
.last(CommonConstants.LAST_ONE_SQL)
);
if (Optional.ofNullable(insuranceDetailBetween).isPresent() && !insuranceDetailBetween.getId().equals(param.getId())){
return R.failed("当前员工在["+param.getPolicyStart()+"-"+param.getPolicyEnd()+"]期间内有投保记录");
}
BeanCopyUtils.copyProperties(param,byId);
//投保状态:待投保
byId.setBuyHandleStatus(CommonConstants.ONE_INT);
......@@ -488,6 +510,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if (null != jsonObject){
record.setProjectName(Optional.ofNullable(jsonObject.getDepartName()).orElse(""));
}
//购买月数
record.setBuyMonth(LocalDateUtil.betweenMonth(record.getPolicyStart().toString(),record.getPolicyEnd().toString()));
//购买天数
record.setBuyDay(LocalDateUtil.betweenDay(record.getPolicyStart().toString(),record.getPolicyEnd().toString()));
TInsuranceDetail detail = new TInsuranceDetail();
detail.setId(record.getId());
//update状态由「待投保」置为「投保中」
......@@ -515,11 +541,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* 投保退回
*
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
* @author licancan
*/
@Override
public R<List<TInsuranceDetail>> rollBackInsurance(List<String> idList) {
public R<List<InsuranceListVO>> rollBackInsurance(List<String> idList) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
......@@ -528,19 +554,34 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return R.failed(CommonConstants.PARAM_IS_NOT_EMPTY);
}
List<TInsuranceDetail> detailList = baseMapper.selectBatchIds(idList);
List<TInsuranceDetail> errorList = new ArrayList<>();
//返回给前端的数据
List<InsuranceListVO> errorList = new ArrayList<>();
//后端处理的数据
List<TInsuranceDetail> successList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(detailList)){
detailList.stream().forEach(e ->{
// 记录状态置为「退回」
e.setBuyHandleStatus(CommonConstants.FOUR_INT);
e.setUpdateBy(user.getId());
e.setUpdateTime(LocalDateTime.now());
});
//更新
this.saveOrUpdateBatch(detailList);
for (TInsuranceDetail detail : detailList) {
if (detail.getBuyHandleStatus() == CommonConstants.FIVE_INT){
InsuranceListVO listVO = new InsuranceListVO();
BeanCopyUtils.copyProperties(detail,listVO);
listVO.setErrorMessage(InsurancesConstants.REDUCE_ROLLBACK_IS_NOT_ALLOW);
errorList.add(listVO);
}else {
// 记录状态置为「退回」
detail.setBuyHandleStatus(CommonConstants.FOUR_INT);
detail.setUpdateBy(user.getId());
detail.setUpdateTime(LocalDateTime.now());
successList.add(detail);
}
}
}
if (CollectionUtils.isNotEmpty(successList)){
//更新状态
this.saveOrUpdateBatch(successList);
}
//根据项目编码获取项目名称
setProjectNameByDeptNo(errorList);
//操作记录
addOperate(detailList,user,InsurancesConstants.ROLLBACK);
addOperate(successList,user,InsurancesConstants.ROLLBACK);
return R.ok(errorList,InsurancesConstants.OPERATE_SUCCESS);
}
......@@ -548,11 +589,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* 办理成功
*
* @param idList
* @return {@link R<List<TInsuranceDetail>>}
* @return {@link R<List<InsuranceListVO>>}
* @author licancan
*/
@Override
public R<List<TInsuranceDetail>> successfulInsurance(List<String> idList) {
public R<List<InsuranceListVO>> successfulInsurance(List<String> idList) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
......@@ -561,24 +602,129 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return R.failed(CommonConstants.PARAM_IS_NOT_EMPTY);
}
List<TInsuranceDetail> detailList = baseMapper.selectBatchIds(idList);
List<TInsuranceDetail> errorList = new ArrayList<>();
//返回给前端的数据
List<InsuranceListVO> errorList = new ArrayList<>();
//后端处理的数据
List<TInsuranceDetail> successList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(detailList)){
for (TInsuranceDetail detail : detailList) {
if (detail.getBuyType() == CommonConstants.THREE_INT){
detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
//根据结算类型判断是否需要计算预估保费
//预估
if (detail.getSettleType() == CommonConstants.ZERO_INT){
//根据险种获取费率,没费率返回错误
TInsuranceType insuranceType = tInsuranceTypeService.getById(detail.getInsuranceTypeId());
//险种存不存在
if (!Optional.ofNullable(insuranceType).isPresent()){
InsuranceListVO listVO = new InsuranceListVO();
BeanCopyUtils.copyProperties(detail,listVO);
listVO.setErrorMessage(InsurancesConstants.INSURANCE_TYPE_NAME_NOT_EXIST);
errorList.add(listVO);
}else {
TInsuranceCompany insuranceCompany = tInsuranceCompanyService.getById(insuranceType.getInsuranceCompanyId());
//保险公司存不存在
if (!Optional.ofNullable(insuranceCompany).isPresent()){
InsuranceListVO listVO = new InsuranceListVO();
BeanCopyUtils.copyProperties(detail,listVO);
listVO.setErrorMessage(InsurancesConstants.INSURANCE_COMPANY_NAME_NOT_EXIST);
errorList.add(listVO);
}else {
if (CommonConstants.ONE_STRING.equals(insuranceCompany.getBillingType())){
//按月查费率
//计算起止时间的月数
long month = LocalDateUtil.betweenMonth(detail.getPolicyStart().toString(), detail.getPolicyEnd().toString());
TInsuranceTypeRate typeRate = tInsuranceTypeRateService.getOne(Wrappers.<TInsuranceTypeRate>query().lambda()
.eq(TInsuranceTypeRate::getInsuranceTypeId, detail.getInsuranceTypeId())
.eq(TInsuranceTypeRate::getMonth, month)
.eq(TInsuranceTypeRate::getDeleteFlag, CommonConstants.ZERO_INT)
.last(CommonConstants.LAST_ONE_SQL)
);
if (!Optional.ofNullable(typeRate).isPresent()){
InsuranceListVO listVO = new InsuranceListVO();
BeanCopyUtils.copyProperties(detail,listVO);
listVO.setErrorMessage(InsurancesConstants.INSURANCE_TYPE_RATE_NOT_EXIST);
errorList.add(listVO);
}else {
// 预估保费 = 费率 * 购买标准
BigDecimal estimatePremium = new BigDecimal(detail.getBuyStandard()).multiply(new BigDecimal(typeRate.getRate())).setScale(2,BigDecimal.ROUND_HALF_UP);
detail.setEstimatePremium(estimatePremium);
if (detail.getBuyType() == CommonConstants.THREE_INT){
detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
}
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
//保费存储
TInsuranceSettle settle = new TInsuranceSettle();
settle.setInsDetailId(detail.getId());
settle.setSettleType(detail.getSettleType());
settle.setSettleHandleStatus(CommonConstants.ONE_STRING);
settle.setEstimatePremium(estimatePremium);
settle.setIsEstimatePush(CommonConstants.ZERO_INT);
settle.setCreateTime(LocalDateTime.now());
tInsuranceSettleService.save(settle);
detail.setDefaultSettleId(settle.getId());
successList.add(detail);
}
}else {
//按天
//计算起止时间的天数
long day = LocalDateUtil.betweenDay(detail.getPolicyStart().toString(), detail.getPolicyEnd().toString());
//预估保费 = (购买标准 / 365) * 天数
BigDecimal estimatePremium = new BigDecimal(detail.getBuyStandard()).divide(new BigDecimal("365")).multiply(new BigDecimal(day)).setScale(2,BigDecimal.ROUND_HALF_UP);
detail.setEstimatePremium(estimatePremium);
if (detail.getBuyType() == CommonConstants.THREE_INT){
detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
}
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
//保费存储
TInsuranceSettle settle = new TInsuranceSettle();
settle.setInsDetailId(detail.getId());
settle.setSettleType(detail.getSettleType());
settle.setSettleHandleStatus(CommonConstants.ONE_STRING);
settle.setEstimatePremium(estimatePremium);
settle.setIsEstimatePush(CommonConstants.ZERO_INT);
settle.setCreateTime(LocalDateTime.now());
tInsuranceSettleService.save(settle);
detail.setDefaultSettleId(settle.getId());
successList.add(detail);
}
}
}
}
//实缴
if(detail.getSettleType() == CommonConstants.ONE_INT){
if (detail.getBuyType() == CommonConstants.THREE_INT){
detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
}
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
successList.add(detail);
}
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
}
}
if (CollectionUtils.isNotEmpty(successList)){
//更新
this.saveOrUpdateBatch(detailList);
//todo 根据结算类型推送ekp
this.saveOrUpdateBatch(successList);
//todo 根据结算类型推送预估保费到ekp
}
//根据项目编码获取项目名称
setProjectNameByDeptNo(errorList);
//操作记录
addOperate(detailList,user,InsurancesConstants.SUCCESSFUL);
addOperate(successList,user,InsurancesConstants.SUCCESSFUL);
return R.ok(errorList, InsurancesConstants.OPERATE_SUCCESS);
}
......@@ -1586,6 +1732,29 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return String.valueOf(RedisUtil.redis.opsForValue().get(CacheConstants.AREA_VALUE + areaString));
}
/**
* 根据项目编码获取项目名称
*
* @author licancan
* @param insuranceList
* @return void
*/
private void setProjectNameByDeptNo(List<InsuranceListVO> insuranceList) {
if (CollectionUtils.isNotEmpty(insuranceList)){
List<String> collect = insuranceList.stream().map(e -> e.getDeptNo()).distinct().collect(Collectors.toList());
R<SetInfoVo> setInfoByCodes = archivesDaprUtil.getSetInfoByCodes(collect);
if (null != setInfoByCodes && setInfoByCodes.getCode() == CommonConstants.SUCCESS && Common.isNotNull(setInfoByCodes.getData())) {
Map<String, ProjectSetInfoVo> data = setInfoByCodes.getData().getProjectSetInfoVoMap();
for (InsuranceListVO record : insuranceList) {
ProjectSetInfoVo jsonObject = data.get(record.getDeptNo());
if (null != jsonObject){
record.setProjectName(Optional.ofNullable(jsonObject.getDepartName()).orElse(""));
}
}
}
}
}
/**
* 操作记录
*
......
package com.yifu.cloud.plus.v1.job.compont;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @Author hgw
* @Date 2022-7-27 19:37:14
* @Description 社保定时任务
* @Version 1.0
*/
@Component(value = "socialTask")
@Slf4j
@EnableConfigurationProperties(DaprSocialProperties.class)
public class SocialTask {
@Autowired
private DaprSocialProperties daprProperties;
/**
* @Description: 定时生成基数配置新增的数据
* @Author: hgw
* @Date: 2022/7/27 19:39
* @return: void
**/
public void updateForecastLibaryBySysBase() {
log.info("------------定时生成基数配置新增的数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl(),daprProperties.getAppId(),"/tforecastlibrary/inner/updateForecastLibaryBySysBase","", Object.class, SecurityConstants.FROM_IN);
log.info("------------定时生成基数配置新增的数据-定时任务结束------------");
}
/**
* @Description: 每月定时生成下月预估库数据
*
* 必须在【定时生成基数配置新增的数据】之后执行
*
* @Author: hgw
* @Date: 2022/7/27 19:39
* @return: void
**/
public void everyMonthCreateForecastLibary() {
log.info("------------每月定时生成下月预估库数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl(),daprProperties.getAppId(),"/tforecastlibrary/inner/everyMonthCreateForecastLibary","", Object.class, SecurityConstants.FROM_IN);
log.info("------------每月定时生成下月预估库数据-定时任务结束------------");
}
}
package com.yifu.cloud.plus.v1.yifu.social.concurrent.threadpool;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @description: 社保导入线程池初始化配置
* @author: wangweiguo
* @date: 2021/6/30
*/
public class YFSocialImportThreadPoolExecutor extends ThreadPoolExecutor {
private static final int CORE_POOL_SIZE = 8;
private static final int MAX_POOL_SIZE = 12;
private static final long KEEP_ALIVE_TIME = 15;
private static final int CAPACITY = 1024;
/**
* @description: 社保导入线程池构造方法
* @param yfThreadFactory
* @return:
* @author: wangweiguo
* @date: 2021/8/4
*/
public YFSocialImportThreadPoolExecutor(YFThreadFactory yfThreadFactory) {
super(CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS, new LinkedBlockingQueue<>(CAPACITY), yfThreadFactory, (runnable, executor) -> {
try {
final Thread t = new Thread(runnable, "Temporary task executor");
t.start();
} catch (Throwable e) {
throw new RejectedExecutionException(
"Failed to start a new thread", e);
}
});
}
/**
* @description: 获取剩余可以添加的任务数量
* @return: int
* @author: wangweiguo
* @date: 2021/8/4
*/
public int getResidualCapacity() {
return CAPACITY - this.getQueue().size() + this.getPoolSize() - this.getActiveCount();
}
}
package com.yifu.cloud.plus.v1.yifu.social.concurrent.threadpool;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @description:
* @author: wangweiguo
* @date: 2021/6/30
*/
public class YFThreadFactory implements ThreadFactory {
private final AtomicInteger poolNumber = new AtomicInteger(1);
private final ThreadGroup threadGroup;
private final AtomicInteger threadNumber = new AtomicInteger(1);
public final String namePrefix;
YFThreadFactory(String name){
SecurityManager s = System.getSecurityManager();
threadGroup = (s != null) ? s.getThreadGroup() :
Thread.currentThread().getThreadGroup();
if (null==name || "".equals(name.trim())){
name = "pool";
}
namePrefix = name +"-"+
poolNumber.getAndIncrement() +
"-thread-";
}
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(threadGroup, r,
namePrefix + threadNumber.getAndIncrement(),
0);
if (t.isDaemon())
t.setDaemon(false);
if (t.getPriority() != Thread.NORM_PRIORITY)
t.setPriority(Thread.NORM_PRIORITY);
return t;
}
}
package com.yifu.cloud.plus.v1.yifu.social.concurrent.threadpool;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @description: 线程池配置添加到spring管理,并初始化线程池名称
* @author: wangweiguo
* @date: 2021/6/30
*/
@Configuration
public class YFThreadPoolConfig {
@Bean(name = "yfSocialImportThreadPoolExecutor")
YFSocialImportThreadPoolExecutor yfSocialImportThreadPoolExecutor(@Qualifier("yfThreadFactory") YFThreadFactory yfThreadFactory) {
return new YFSocialImportThreadPoolExecutor(yfThreadFactory);
}
@Bean(name = "yfThreadFactory")
YFThreadFactory yfThreadFactory() {
return new YFThreadFactory("social_import");
}
}
......@@ -372,4 +372,223 @@ public class TPaymentInfo extends BaseEntity {
@ExcelProperty("财务账单ID")
private String financeBillId;
/**
* 单位社保补缴利息
*/
@ExcelAttribute(name = "单位社保补缴利息" )
@ExcelProperty("单位社保补缴利息")
private BigDecimal companyAccrual;
/**
* 个人社保补缴利息
*/
@ExcelAttribute(name = "个人社保补缴利息" )
@ExcelProperty("个人社保补缴利息")
private BigDecimal personalAccrual;
/**
* 单位养老基数
*/
@ExcelAttribute(name = "单位养老基数" )
@ExcelProperty("单位养老基数")
private BigDecimal unitPensionSet;
/**
* 单位医疗基数
*/
@ExcelAttribute(name = "单位医疗基数" )
@ExcelProperty("单位医疗基数")
private BigDecimal unitMedicalSet;
/**
* 单位失业基数
*/
@ExcelAttribute(name = "单位失业基数" )
@ExcelProperty("单位失业基数")
private BigDecimal unitUnemploymentSet;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "单位工伤基数" )
@ExcelProperty("单位工伤基数")
private BigDecimal unitInjurySet;
/**
* 单位生育基数
*/
@ExcelAttribute(name = "单位生育基数" )
@ExcelProperty("单位生育基数")
private BigDecimal unitBirthSet;
/**
* 个人养老基数
*/
@ExcelAttribute(name = "个人养老基数" )
@ExcelProperty("个人养老基数")
private BigDecimal personalPensionSet;
/**
* 个人医疗基数
*/
@ExcelAttribute(name = "个人医疗基数" )
@ExcelProperty("个人医疗基数")
private BigDecimal personalMedicalSet;
/**
* 个人失业基数
*/
@ExcelAttribute(name = "个人失业基数" )
@ExcelProperty("个人失业基数")
private BigDecimal personalUnemploymentSet;
/**
* 单位养老比例
*/
@ExcelAttribute(name = "单位养老比例" )
@ExcelProperty("单位养老比例")
private BigDecimal unitPensionPer;
/**
* 单位医疗比例
*/
@ExcelAttribute(name = "单位医疗比例" )
@ExcelProperty("单位医疗比例")
private BigDecimal unitMedicalPer;
/**
* 单位失业比例
*/
@ExcelAttribute(name = "单位失业比例" )
@ExcelProperty("单位失业比例")
private BigDecimal unitUnemploymentPer;
/**
* 单位工伤比例
*/
@ExcelAttribute(name = "单位工伤比例" )
@ExcelProperty("单位工伤比例")
private BigDecimal unitInjuryPer;
/**
* 单位生育比例
*/
@ExcelAttribute(name = "单位生育比例" )
@ExcelProperty("单位生育比例")
private BigDecimal unitBirthPer;
/**
* 个人养老比例
*/
@ExcelAttribute(name = "个人养老比例" )
@ExcelProperty("个人养老比例")
private BigDecimal personalPensionPer;
/**
* 个人医疗比例
*/
@ExcelAttribute(name = "个人医疗比例" )
@ExcelProperty("个人医疗比例")
private BigDecimal personalMedicalPer;
/**
* 个人失业比例
*/
@ExcelAttribute(name = "个人失业比例" )
@ExcelProperty("个人失业比例")
private BigDecimal personalUnemploymentPer;
/**
* 单位大病比例
*/
@ExcelAttribute(name = "单位大病比例" )
@ExcelProperty("单位大病比例")
private BigDecimal unitBigailmentPer;
/**
* 个人大病比例
*/
@ExcelAttribute(name = "个人大病比例" )
@ExcelProperty("个人大病比例")
private BigDecimal personalBigailmentPer;
/**
* 单位养老金额
*/
@ExcelAttribute(name = "单位养老金额" )
@ExcelProperty("单位养老金额")
private BigDecimal unitPensionMoney;
/**
* 单位医疗金额
*/
@ExcelAttribute(name = "单位医疗金额" )
@ExcelProperty("单位医疗金额")
private BigDecimal unitMedicalMoney;
/**
* 单位失业金额
*/
@ExcelAttribute(name = "单位失业金额" )
@ExcelProperty("单位失业金额")
private BigDecimal unitUnemploymentMoney;
/**
* 单位工伤金额
*/
@ExcelAttribute(name = "单位工伤金额" )
@ExcelProperty("单位工伤金额")
private BigDecimal unitInjuryMoney;
/**
* 单位生育金额
*/
@ExcelAttribute(name = "单位生育金额" )
@ExcelProperty("单位生育金额")
private BigDecimal unitBirthMoney;
/**
* 单位大病金额
*/
@ExcelAttribute(name = "单位大病金额" )
@ExcelProperty("单位大病金额")
private BigDecimal unitBigmailmentMoney;
/**
* 个人养老金额
*/
@ExcelAttribute(name = "个人养老金额" )
@ExcelProperty("个人养老金额")
private BigDecimal personalPensionMoney;
/**
* 个人医疗金额
*/
@ExcelAttribute(name = "个人医疗金额" )
@ExcelProperty("个人医疗金额")
private BigDecimal personalMedicalMoney;
/**
* 个人失业金额
*/
@ExcelAttribute(name = "个人失业金额" )
@ExcelProperty("个人失业金额")
private BigDecimal personalUnemploymentMoney;
/**
* 个人大病金额
*/
@ExcelAttribute(name = "个人大病金额" )
@ExcelProperty("个人大病金额")
private BigDecimal personalBigmailmentMoney;
/**
* 公积金编号
*/
@ExcelAttribute(name = "公积金编号" , maxLength = 50 )
@Size(max = 50, message = "公积金编号不可超过50位")
@ExcelProperty("公积金编号")
private String providentNo;
/**
* 单位公积金基数
*/
@ExcelAttribute(name = "单位公积金基数" )
@ExcelProperty("单位公积金基数")
private BigDecimal unitProvidentSet;
/**
* 单边公积金比例
*/
@ExcelAttribute(name = "单边公积金比例" )
@ExcelProperty("单边公积金比例")
private BigDecimal providentPercent;
/**
* 单位公积金费用
*/
@ExcelAttribute(name = "单位公积金费用" )
@ExcelProperty("单位公积金费用")
private BigDecimal unitProvidentSum;
/**
* 个人公积金基数
*/
@ExcelAttribute(name = "个人公积金基数" )
@ExcelProperty("个人公积金基数")
private BigDecimal personalProidentSet;
/**
* 个人公积金费用
*/
@ExcelAttribute(name = "个人公积金费用" )
@ExcelProperty("个人公积金费用")
private BigDecimal personalProvidentSum;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
/**
* @author huyc
* @date 2022-07-25 14:08:58
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_payment_info_import_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "")
public class TPaymentInfoImportLog extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
private Integer id;
/**
* 姓名
*/
@ExcelAttribute(name = "姓名", maxLength = 50)
@Length(max = 50, message = "姓名不能超过50个字符")
@ExcelProperty("姓名")
private String empName;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号", maxLength = 32)
@Length(max = 32, message = "身份证号不能超过32个字符")
@ExcelProperty("身份证号")
private String idCard;
/**
* 错误信息
*/
@ExcelAttribute(name = "错误信息", maxLength = 500)
@Length(max = 500, message = "错误信息不能超过500个字符")
@ExcelProperty("错误信息")
private String errMsg;
/**
* 问题行数
*/
@ExcelAttribute(name = "问题行数")
@ExcelProperty("问题行数")
private Integer line;
/**
* 导入标识key
*/
@ExcelAttribute(name = "导入标识key", maxLength = 64)
@Length(max = 64, message = "导入标识key不能超过64个字符")
@ExcelProperty("导入标识key")
private String randomKey;
}
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
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;
import java.math.BigDecimal;
/**
* @ClassName TPaymentHeFeiVo
* @Description 合肥三险导入 养老 工伤 失业 生育
* @author huyc
* @date 2022-07-26 17:01:22
*/
@Data
public class TPaymentHeFeiVo extends RowIndex implements Serializable {
/**
* 员工姓名
*/
@Length(max = 20, message = "员工姓名不能超过20个字符")
@ExcelAttribute(name = "员工姓名", maxLength = 20)
@Schema(description = "员工姓名")
@ExcelProperty("员工姓名")
private String empName;
/**
* 员工编码
*/
@Length(max = 32, message = "员工编码不能超过32个字符")
@ExcelAttribute(name = "员工编码", maxLength = 32)
@Schema(description = "员工编码")
@ExcelProperty("员工编码")
private String empNo;
/**
* 员工ID
*/
@Length(max = 32, message = "员工ID不能超过32个字符")
@ExcelAttribute(name = "员工ID", maxLength = 32)
@Schema(description = "员工ID")
@ExcelProperty("员工ID")
private String empId;
/**
* 员工身份证
*/
@Length(max = 100, message = "不能超过100个字符")
@ExcelAttribute(name = "身份证号", isNotEmpty = true, maxLength = 100,errorInfo = "身份证字段不可为空!")
@Schema(description = "身份证号")
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 社保编号
*/
@Length(max = 20, message = "社保编号不能超过20个字符")
@ExcelAttribute(name = "社保编号", maxLength = 20)
@Schema(description = "社保编号")
@ExcelProperty("社保编号")
private String socialSecurityNo;
/**
* 社保缴纳地
*/
@Length(max = 50, message = "社保缴纳地不能超过50个字符")
@ExcelAttribute(name = "社保缴纳地", isNotEmpty = true, errorInfo = "社保缴纳地不可为空", maxLength = 50)
@Schema(description = "社保缴纳地")
@ExcelProperty("社保缴纳地")
private String socialPayAddr;
/**
* 社保缴纳地-省
*/
@Length(max = 32, message = "不能超过32个字符")
@ExcelAttribute(name = "社保缴纳地-省", maxLength = 32, isDataId = true, isArea = true, parentField = "")
@Schema(description = "社保缴纳地-省")
@ExcelProperty("社保缴纳地-省")
private Integer socialProvince;
/**
* 社保缴纳地-市
*/
@Length(max = 32, message = "不能超过32个字符")
@ExcelAttribute(name = "社保缴纳地-市", maxLength = 32, isDataId = true, isArea = true, parentField = "socialProvince")
@Schema(description = "社保缴纳地-市")
@ExcelProperty("社保缴纳地-市")
private Integer socialCity;
/**
* 社保缴纳地-县
*/
@Length(max = 32, message = "不能超过32个字符")
@ExcelAttribute(name = "社保缴纳地-县", maxLength = 32, isDataId = true, isArea = true, parentField = "socialCity")
@Schema(description = "社保缴纳地-县")
@ExcelProperty("社保缴纳地-县")
private Integer socialTown;
/**
* 社保缴纳月份empNo
*/
@Length(max = 6, message = "社保缴纳月份不能超过6个字符")
@ExcelAttribute(name = "社保缴纳月份", isNotEmpty = true, errorInfo = "社保缴纳月份不可为空", maxLength = 6)
@Schema(description = "社保缴纳月份")
@ExcelProperty("社保缴纳月份")
private String socialPayMonth;
/**
* 社保生成月份
*/
@Length(max = 6, message = "社保生成月份不能超过6个字符")
@ExcelAttribute(name = "社保生成月份", isNotEmpty = true, errorInfo = "社保生成月份不可为空", maxLength = 6)
@Schema(description = "社保生成月份")
@ExcelProperty("社保生成月份")
private String socialCreateMonth;
/**
* 参保险种: 养老保险,失业保险, 工伤保险
*/
@ExcelAttribute(name = "参保险种")
@Schema(description = "参保险种")
@ExcelProperty("参保险种")
private String riskType;
/**
* 个人缴费基数
*/
@ExcelAttribute(name = "个人缴费基数")
@Schema(description = "个人缴费基数")
@ExcelProperty("个人缴费基数")
private BigDecimal personalSet;
/**
* 单位缴费基数
*/
@ExcelAttribute(name = "单位缴费基数")
@Schema(description = "单位缴费基数")
@ExcelProperty("单位缴费基数")
private BigDecimal unitSet;
/**
* 个人缴费额
*/
@ExcelAttribute(name = "个人缴费额")
@Schema(description = "个人缴费额")
@ExcelProperty("个人缴费额")
private BigDecimal personalMoney;
/**
* 单位缴费额
*/
@ExcelAttribute(name = "单位缴费额")
@Schema(description = "单位缴费额")
@ExcelProperty("单位缴费额")
private BigDecimal unitMoney;
/**
* 医保基数
*/
@ExcelAttribute(name = "医保基数")
@Schema(description = "医保基数")
@ExcelProperty("医保基数")
private BigDecimal medicalSet;
/**
* 医保单位缴费
*/
@ExcelAttribute(name = "医保单位缴费")
@Schema(description = "医保单位缴费")
@ExcelProperty("医保单位缴费")
private BigDecimal unitMedicalMoney;
/**
* 医保个人缴费
*/
@ExcelAttribute(name = "医保个人缴费")
@Schema(description = "医保个人缴费")
@ExcelProperty("医保个人缴费")
private BigDecimal personalMedicalMoney;
/**
* 单位医疗救助金 (对应单位大病)
*/
@ExcelAttribute(name = "单位医疗救助金")
@Schema(description = "单位医疗救助金")
@ExcelProperty("单位医疗救助金")
private BigDecimal unitBigailmentMoney;
/**
* 个人医疗救助金 (对应个人大病)
*/
@ExcelAttribute(name = "个人医疗救助金")
@Schema(description = "个人医疗救助金")
@ExcelProperty("个人医疗救助金")
private BigDecimal personalBigailmentMoney;
/**
* 社保ID
*/
@Length(max = 32, message = "不能超过32个字符")
@ExcelAttribute(name = "社保ID", maxLength = 32, isDataId = true)
@Schema(description = "社保ID")
@ExcelProperty("社保ID")
private String socialId;
/**
* 公积金ID
*/
@Length(max = 32, message = "不能超过32个字符")
@ExcelAttribute(name = "公积金ID", maxLength = 32, isDataId = true)
@Schema(description = "公积金ID")
@ExcelProperty("公积金ID")
private String fundId;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author huyc
* @date 2022-07-25 14:08:58
*/
@Data
public class TPaymentInfoImportLogVo extends RowIndex implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键 不能为空")
@ExcelAttribute(name = "主键", isNotEmpty = true, errorInfo = "主键 不能为空")
@Schema(description = "主键")
@ExcelProperty("主键")
private Integer id;
/**
* 姓名
*/
@Length(max = 50, message = "姓名 不能超过50 个字符")
@ExcelAttribute(name = "姓名", maxLength = 50)
@Schema(description = "姓名")
@ExcelProperty("姓名")
private String empName;
/**
* 身份证号
*/
@Length(max = 32, message = "身份证号 不能超过32 个字符")
@ExcelAttribute(name = "身份证号", maxLength = 32)
@Schema(description = "身份证号")
@ExcelProperty("身份证号")
private String idCard;
/**
* 错误信息
*/
@Length(max = 500, message = "错误信息 不能超过500 个字符")
@ExcelAttribute(name = "错误信息", maxLength = 500)
@Schema(description = "错误信息")
@ExcelProperty("错误信息")
private String errMsg;
/**
* 问题行数
*/
@ExcelAttribute(name = "问题行数")
@Schema(description = "问题行数")
@ExcelProperty("问题行数")
private Integer line;
/**
* 导入标识key
*/
@Length(max = 64, message = "导入标识key 不能超过64 个字符")
@ExcelAttribute(name = "导入标识key", maxLength = 64)
@Schema(description = "导入标识key")
@ExcelProperty("导入标识key")
private String randomKey;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 缴费库
*
* @author huyc
* @date 2022-07-22 17:01:22
*/
@Data
public class TPaymentInfoSearchVo extends TPaymentInfo {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,id数组")
private List<String> idList;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 缴费库
* @author huyc
* @date 2022-07-22 17:01:22
*/
@Data
public class TPaymentInfoVo extends RowIndex implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键 不能为空")
@Length(max = 32, message = "主键 不能超过32 个字符")
@ExcelAttribute(name = "主键", isNotEmpty = true, errorInfo = "主键 不能为空", maxLength = 32)
@Schema(description = "主键")
@ExcelProperty("主键")
private String id;
/**
* 员工姓名
*/
@Length(max = 20, message = "员工姓名 不能超过20 个字符")
@ExcelAttribute(name = "员工姓名", maxLength = 20)
@Schema(description = "员工姓名")
@ExcelProperty("员工姓名")
private String empName;
/**
* 员工编码
*/
@Length(max = 32, message = "员工编码 不能超过32 个字符")
@ExcelAttribute(name = "员工编码", maxLength = 32)
@Schema(description = "员工编码")
@ExcelProperty("员工编码")
private String empNo;
/**
* 员工ID
*/
@NotBlank(message = "员工ID 不能为空")
@Length(max = 32, message = "员工ID 不能超过32 个字符")
@ExcelAttribute(name = "员工ID", isNotEmpty = true, errorInfo = "员工ID 不能为空", maxLength = 32)
@Schema(description = "员工ID")
@ExcelProperty("员工ID")
private String empId;
/**
* 身份证号
*/
@Length(max = 20, message = "身份证号 不能超过20 个字符")
@ExcelAttribute(name = "身份证号", maxLength = 20)
@Schema(description = "身份证号")
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 单位名称
*/
@Length(max = 50, message = "单位名称 不能超过50 个字符")
@ExcelAttribute(name = "单位名称", maxLength = 50)
@Schema(description = "单位名称")
@ExcelProperty("单位名称")
private String unitId;
/**
* 项目名称
*/
@Length(max = 50, message = "项目名称 不能超过50 个字符")
@ExcelAttribute(name = "项目名称", maxLength = 50)
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String settleDomainId;
/**
* 社保户
*/
@Length(max = 32, message = "社保户 不能超过32 个字符")
@ExcelAttribute(name = "社保户", maxLength = 32)
@Schema(description = "社保户")
@ExcelProperty("社保户")
private String socialHousehold;
/**
* 社保编号
*/
@Length(max = 20, message = "社保编号 不能超过20 个字符")
@ExcelAttribute(name = "社保编号", maxLength = 20)
@Schema(description = "社保编号")
@ExcelProperty("社保编号")
private String socialSecurityNo;
/**
* 社保缴纳地
*/
@Length(max = 50, message = "社保缴纳地 不能超过50 个字符")
@ExcelAttribute(name = "社保缴纳地", maxLength = 50)
@Schema(description = "社保缴纳地")
@ExcelProperty("社保缴纳地")
private String socialPayAddr;
/**
* 社保缴纳月份
*/
@Length(max = 6, message = "社保缴纳月份 不能超过6 个字符")
@ExcelAttribute(name = "社保缴纳月份", maxLength = 6)
@Schema(description = "社保缴纳月份")
@ExcelProperty("社保缴纳月份")
private String socialPayMonth;
/**
* 社保生成月份
*/
@Length(max = 6, message = "社保生成月份 不能超过6 个字符")
@ExcelAttribute(name = "社保生成月份", maxLength = 6)
@Schema(description = "社保生成月份")
@ExcelProperty("社保生成月份")
private String socialCreateMonth;
/**
* 锁定状态 0 未锁定 1 锁定
*/
@Length(max = 1, message = "锁定状态 0 未锁定 1 锁定 不能超过1 个字符")
@ExcelAttribute(name = "锁定状态 0 未锁定 1 锁定", maxLength = 1)
@Schema(description = "锁定状态 0 未锁定 1 锁定")
@ExcelProperty("锁定状态 0 未锁定 1 锁定")
private String lockStatus;
/**
* 社保结算状态 0: 未结算 1: 待结算 2: 已结算
*/
@Length(max = 1, message = "社保结算状态 0: 未结算 1: 待结算 2: 已结算 不能超过1 个字符")
@ExcelAttribute(name = "社保结算状态 0: 未结算 1: 待结算 2: 已结算", maxLength = 1)
@Schema(description = "社保结算状态 0: 未结算 1: 待结算 2: 已结算")
@ExcelProperty("社保结算状态 0: 未结算 1: 待结算 2: 已结算")
private String socialSettlementFlag;
/**
* 公积金结算状态
*/
@Length(max = 1, message = "公积金结算状态 不能超过1 个字符")
@ExcelAttribute(name = "公积金结算状态", maxLength = 1)
@Schema(description = "公积金结算状态")
@ExcelProperty("公积金结算状态")
private String fundSettlementFlag;
/**
* 总合计
*/
@ExcelAttribute(name = "总合计")
@Schema(description = "总合计")
@ExcelProperty("总合计")
private BigDecimal sumAll;
/**
* 公积金缴纳月份
*/
@Length(max = 6, message = "公积金缴纳月份 不能超过6 个字符")
@ExcelAttribute(name = "公积金缴纳月份", maxLength = 6)
@Schema(description = "公积金缴纳月份")
@ExcelProperty("公积金缴纳月份")
private String providentPayMonth;
/**
* 公积金生成月份
*/
@Length(max = 6, message = "公积金生成月份 不能超过6 个字符")
@ExcelAttribute(name = "公积金生成月份", maxLength = 6)
@Schema(description = "公积金生成月份")
@ExcelProperty("公积金生成月份")
private String providentCreateMonth;
/**
* 公积金户
*/
@Length(max = 32, message = "公积金户 不能超过32 个字符")
@ExcelAttribute(name = "公积金户", maxLength = 32)
@Schema(description = "公积金户")
@ExcelProperty("公积金户")
private String providentHousehold;
/**
* 公积金缴纳地
*/
@Length(max = 50, message = "公积金缴纳地 不能超过50 个字符")
@ExcelAttribute(name = "公积金缴纳地", maxLength = 50)
@Schema(description = "公积金缴纳地")
@ExcelProperty("公积金缴纳地")
private String providentPayAddr;
/**
* 公积金缴纳地-省
*/
@Length(max = 32, message = "公积金缴纳地-省 不能超过32 个字符")
@ExcelAttribute(name = "公积金缴纳地-省", maxLength = 32)
@Schema(description = "公积金缴纳地-省")
@ExcelProperty("公积金缴纳地-省")
private String fundProvince;
/**
* 公积金缴纳地-市
*/
@Length(max = 32, message = "公积金缴纳地-市 不能超过32 个字符")
@ExcelAttribute(name = "公积金缴纳地-市", maxLength = 32)
@Schema(description = "公积金缴纳地-市")
@ExcelProperty("公积金缴纳地-市")
private String fundCity;
/**
* 公积金缴纳地-县
*/
@Length(max = 32, message = "公积金缴纳地-县 不能超过32 个字符")
@ExcelAttribute(name = "公积金缴纳地-县", maxLength = 32)
@Schema(description = "公积金缴纳地-县")
@ExcelProperty("公积金缴纳地-县")
private String fundTown;
/**
* 社保缴纳地-省
*/
@Length(max = 32, message = "社保缴纳地-省 不能超过32 个字符")
@ExcelAttribute(name = "社保缴纳地-省", maxLength = 32)
@Schema(description = "社保缴纳地-省")
@ExcelProperty("社保缴纳地-省")
private String socialProvince;
/**
* 社保缴纳地-市
*/
@Length(max = 32, message = "社保缴纳地-市 不能超过32 个字符")
@ExcelAttribute(name = "社保缴纳地-市", maxLength = 32)
@Schema(description = "社保缴纳地-市")
@ExcelProperty("社保缴纳地-市")
private String socialCity;
/**
* 社保缴纳地-县
*/
@Length(max = 32, message = "社保缴纳地-县 不能超过32 个字符")
@ExcelAttribute(name = "社保缴纳地-县", maxLength = 32)
@Schema(description = "社保缴纳地-县")
@ExcelProperty("社保缴纳地-县")
private String socialTown;
/**
* 社保ID
*/
@Length(max = 32, message = "社保ID 不能超过32 个字符")
@ExcelAttribute(name = "社保ID", maxLength = 32)
@Schema(description = "社保ID")
@ExcelProperty("社保ID")
private String socialId;
/**
* 公积金ID
*/
@Length(max = 32, message = "公积金ID 不能超过32 个字符")
@ExcelAttribute(name = "公积金ID", maxLength = 32)
@Schema(description = "公积金ID")
@ExcelProperty("公积金ID")
private String fundId;
/**
* 社保合计
*/
@ExcelAttribute(name = "社保合计")
@Schema(description = "社保合计")
@ExcelProperty("社保合计")
private BigDecimal socialSum;
/**
* 单位社保合计
*/
@ExcelAttribute(name = "单位社保合计")
@Schema(description = "单位社保合计")
@ExcelProperty("单位社保合计")
private BigDecimal unitSocialSum;
/**
* 个人社保合计
*/
@ExcelAttribute(name = "个人社保合计")
@Schema(description = "个人社保合计")
@ExcelProperty("个人社保合计")
private BigDecimal socialSecurityPersonalSum;
/**
* 公积金总合计
*/
@ExcelAttribute(name = "公积金总合计")
@Schema(description = "公积金总合计")
@ExcelProperty("公积金总合计")
private BigDecimal providentSum;
/**
* 社保核准表ID
*/
@Length(max = 32, message = "社保核准表ID 不能超过32 个字符")
@ExcelAttribute(name = "社保核准表ID", maxLength = 32)
@Schema(description = "社保核准表ID")
@ExcelProperty("社保核准表ID")
private String socialSettlementId;
/**
* 公积金核准表ID
*/
@Length(max = 32, message = "公积金核准表ID 不能超过32 个字符")
@ExcelAttribute(name = "公积金核准表ID", maxLength = 32)
@Schema(description = "公积金核准表ID")
@ExcelProperty("公积金核准表ID")
private String fundSettlementId;
/**
* 工资社保结算状态 0: 未结算 1: 已结算
*/
@Length(max = 1, message = "工资社保结算状态 0: 未结算 1: 已结算 不能超过1 个字符")
@ExcelAttribute(name = "工资社保结算状态 0: 未结算 1: 已结算", maxLength = 1)
@Schema(description = "工资社保结算状态 0: 未结算 1: 已结算")
@ExcelProperty("工资社保结算状态 0: 未结算 1: 已结算")
private String salarySocialFlag;
/**
* 工资公积金结算状态 0: 未结算 1: 已结算
*/
@Length(max = 1, message = "工资公积金结算状态 0: 未结算 1: 已结算 不能超过1 个字符")
@ExcelAttribute(name = "工资公积金结算状态 0: 未结算 1: 已结算", maxLength = 1)
@Schema(description = "工资公积金结算状态 0: 未结算 1: 已结算")
@ExcelProperty("工资公积金结算状态 0: 未结算 1: 已结算")
private String salaryFundFlag;
/**
* 就职班组
*/
@Length(max = 50, message = "就职班组 不能超过50 个字符")
@ExcelAttribute(name = "就职班组", maxLength = 50)
@Schema(description = "就职班组")
@ExcelProperty("就职班组")
private String inauguralTeam;
/**
* 电信编号
*/
@Length(max = 50, message = "电信编号 不能超过50 个字符")
@ExcelAttribute(name = "电信编号", maxLength = 50)
@Schema(description = "电信编号")
@ExcelProperty("电信编号")
private String telecomNumber;
/**
* 排序字段
*/
@Length(max = 32, message = "排序字段 不能超过32 个字符")
@ExcelAttribute(name = "排序字段", maxLength = 32)
@Schema(description = "排序字段")
@ExcelProperty("排序字段")
private String sortTime;
/**
* 代理结算id
*/
@Length(max = 32, message = "代理结算id 不能超过32 个字符")
@ExcelAttribute(name = "代理结算id", maxLength = 32)
@Schema(description = "代理结算id")
@ExcelProperty("代理结算id")
private String agentId;
/**
* 财务账单ID
*/
@Length(max = 32, message = "财务账单ID 不能超过32 个字符")
@ExcelAttribute(name = "财务账单ID", maxLength = 32)
@Schema(description = "财务账单ID")
@ExcelProperty("财务账单ID")
private String financeBillId;
/**
* 单位社保补缴利息
*/
@ExcelAttribute(name = "单位社保补缴利息")
@Schema(description ="单位社保补缴利息")
@ExcelProperty("单位社保补缴利息")
private BigDecimal companyAccrual;
/**
* 个人社保补缴利息
*/
@ExcelAttribute(name = "个人社保补缴利息")
@Schema(description ="个人社保补缴利息")
@ExcelProperty("个人社保补缴利息")
private BigDecimal personalAccrual;
/**
* 单位养老基数
*/
@ExcelAttribute(name = "单位养老基数")
@Schema(description ="单位养老基数")
@ExcelProperty("单位养老基数")
private BigDecimal unitPensionSet;
/**
* 单位医疗基数
*/
@ExcelAttribute(name = "单位医疗基数")
@Schema(description ="单位医疗基数")
@ExcelProperty("单位医疗基数")
private BigDecimal unitMedicalSet;
/**
* 单位失业基数
*/
@ExcelAttribute(name = "单位失业基数")
@Schema(description ="单位失业基数")
@ExcelProperty("单位失业基数")
private BigDecimal unitUnemploymentSet;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "单位工伤基数")
@Schema(description ="单位工伤基数")
@ExcelProperty("单位工伤基数")
private BigDecimal unitInjurySet;
/**
* 单位生育基数
*/
@ExcelAttribute(name = "单位生育基数")
@Schema(description ="单位生育基数")
@ExcelProperty("单位生育基数")
private BigDecimal unitBirthSet;
/**
* 个人养老基数
*/
@ExcelAttribute(name = "个人养老基数")
@Schema(description ="个人养老基数")
@ExcelProperty("个人养老基数")
private BigDecimal personalPensionSet;
/**
* 个人医疗基数
*/
@ExcelAttribute(name = "个人医疗基数")
@Schema(description ="个人医疗基数")
@ExcelProperty("个人医疗基数")
private BigDecimal personalMedicalSet;
/**
* 个人失业基数
*/
@ExcelAttribute(name = "个人失业基数")
@Schema(description ="个人失业基数")
@ExcelProperty("个人失业基数")
private BigDecimal personalUnemploymentSet;
/**
* 单位养老比例
*/
@ExcelAttribute(name = "单位养老比例")
@Schema(description ="单位养老比例")
@ExcelProperty("单位养老比例")
private BigDecimal unitPensionPer;
/**
* 单位医疗比例
*/
@ExcelAttribute(name = "单位医疗比例")
@Schema(description ="单位医疗比例")
@ExcelProperty("单位医疗比例")
private BigDecimal unitMedicalPer;
/**
* 单位失业比例
*/
@ExcelAttribute(name = "单位失业比例")
@Schema(description ="单位失业比例")
@ExcelProperty("单位失业比例")
private BigDecimal unitUnemploymentPer;
/**
* 单位工伤比例
*/
@ExcelAttribute(name = "单位工伤比例")
@Schema(description ="单位工伤比例")
@ExcelProperty("单位工伤比例")
private BigDecimal unitInjuryPer;
/**
* 单位生育比例
*/
@ExcelAttribute(name = "单位生育比例")
@Schema(description ="单位生育比例")
@ExcelProperty("单位生育比例")
private BigDecimal unitBirthPer;
/**
* 个人养老比例
*/
@ExcelAttribute(name = "个人养老比例")
@Schema(description ="个人养老比例")
@ExcelProperty("个人养老比例")
private BigDecimal personalPensionPer;
/**
* 个人医疗比例
*/
@ExcelAttribute(name = "个人医疗比例")
@Schema(description ="个人医疗比例")
@ExcelProperty("个人医疗比例")
private BigDecimal personalMedicalPer;
/**
* 个人失业比例
*/
@ExcelAttribute(name = "个人失业比例")
@Schema(description ="个人失业比例")
@ExcelProperty("个人失业比例")
private BigDecimal personalUnemploymentPer;
/**
* 单位大病比例
*/
@ExcelAttribute(name = "单位大病比例")
@Schema(description ="单位大病比例")
@ExcelProperty("单位大病比例")
private BigDecimal unitBigailmentPer;
/**
* 个人大病比例
*/
@ExcelAttribute(name = "个人大病比例")
@Schema(description ="个人大病比例")
@ExcelProperty("个人大病比例")
private BigDecimal personalBigailmentPer;
/**
* 单位养老金额
*/
@ExcelAttribute(name = "单位养老金额")
@Schema(description ="单位养老金额")
@ExcelProperty("单位养老金额")
private BigDecimal unitPensionMoney;
/**
* 单位医疗金额
*/
@ExcelAttribute(name = "单位医疗金额")
@Schema(description ="单位医疗金额")
@ExcelProperty("单位医疗金额")
private BigDecimal unitMedicalMoney;
/**
* 单位失业金额
*/
@ExcelAttribute(name = "单位失业金额")
@Schema(description ="单位失业金额")
@ExcelProperty("单位失业金额")
private BigDecimal unitUnemploymentMoney;
/**
* 单位工伤金额
*/
@ExcelAttribute(name = "单位工伤金额")
@Schema(description ="单位工伤金额")
@ExcelProperty("单位工伤金额")
private BigDecimal unitInjuryMoney;
/**
* 单位生育金额
*/
@ExcelAttribute(name = "单位生育金额")
@Schema(description ="单位生育金额")
@ExcelProperty("单位生育金额")
private BigDecimal unitBirthMoney;
/**
* 单位大病金额
*/
@ExcelAttribute(name = "单位大病金额")
@Schema(description ="单位大病金额")
@ExcelProperty("单位大病金额")
private BigDecimal unitBigmailmentMoney;
/**
* 个人养老金额
*/
@ExcelAttribute(name = "个人养老金额")
@Schema(description ="个人养老金额")
@ExcelProperty("个人养老金额")
private BigDecimal personalPensionMoney;
/**
* 个人医疗金额
*/
@ExcelAttribute(name = "个人医疗金额")
@Schema(description ="个人医疗金额")
@ExcelProperty("个人医疗金额")
private BigDecimal personalMedicalMoney;
/**
* 个人失业金额
*/
@ExcelAttribute(name = "个人失业金额")
@Schema(description ="个人失业金额")
@ExcelProperty("个人失业金额")
private BigDecimal personalUnemploymentMoney;
/**
* 个人大病金额
*/
@ExcelAttribute(name = "个人大病金额")
@Schema(description ="个人大病金额")
@ExcelProperty("个人大病金额")
private BigDecimal personalBigmailmentMoney;
/**
* 公积金编号
*/
@Length(max=50,message = "公积金编号 不能超过50 个字符")
@ExcelAttribute(name = "公积金编号", maxLength = 50 )
@Schema(description ="公积金编号")
@ExcelProperty("公积金编号")
private String providentNo;
/**
* 单位公积金基数
*/
@ExcelAttribute(name = "单位公积金基数")
@Schema(description ="单位公积金基数")
@ExcelProperty("单位公积金基数")
private BigDecimal unitProvidentSet;
/**
* 单边公积金比例
*/
@ExcelAttribute(name = "单边公积金比例")
@Schema(description ="单边公积金比例")
@ExcelProperty("单边公积金比例")
private BigDecimal providentPercent;
/**
* 单位公积金费用
*/
@ExcelAttribute(name = "单位公积金费用")
@Schema(description ="单位公积金费用")
@ExcelProperty("单位公积金费用")
private BigDecimal unitProvidentSum;
/**
* 个人公积金基数
*/
@ExcelAttribute(name = "个人公积金基数")
@Schema(description ="个人公积金基数")
@ExcelProperty("个人公积金基数")
private BigDecimal personalProidentSet;
/**
* 个人公积金费用
*/
@ExcelAttribute(name = "个人公积金费用")
@Schema(description ="个人公积金费用")
@ExcelProperty("个人公积金费用")
private BigDecimal personalProvidentSum;
/**
* 创建者
*/
@Length(max = 64, message = "创建者 不能超过64 个字符")
@ExcelAttribute(name = "创建者", maxLength = 64)
@Schema(description = "创建者")
@ExcelProperty("创建者")
private String createBy;
/**
* 更新人
*/
@Length(max = 64, message = "更新人 不能超过64 个字符")
@ExcelAttribute(name = "更新人", maxLength = 64)
@Schema(description = "更新人")
@ExcelProperty("更新人")
private String updateBy;
/**
* 创建人姓名
*/
@Length(max = 32, message = "创建人姓名 不能超过32 个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 32)
@Schema(description = "创建人姓名")
@ExcelProperty("创建人姓名")
private String createName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间", isDate = true)
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private Date createTime;
/**
* 更新时间
*/
@ExcelAttribute(name = "更新时间", isDate = true)
@Schema(description = "更新时间")
@ExcelProperty("更新时间")
private Date updateTime;
}
......@@ -64,7 +64,7 @@ public class TSocialFundInfoExportVo extends RowIndex implements Serializable {
@ExcelProperty("身份证号")
private String empIdcard;
@ExcelAttribute(name = "员工类型", maxLength = 32)
@ExcelAttribute(name = "员工类型", isDataId = true,dataType = ExcelAttributeConstants.EMP_NATRUE)
@Schema(description = "员工类型")
@ExcelProperty("员工类型")
private String empType;
......@@ -145,20 +145,24 @@ public class TSocialFundInfoExportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "合同类型", maxLength = 32, needExport = true)
@Schema(description = "合同类型", name = "contractName")
@ExcelProperty("合同类型")
private String contractName;
@ExcelAttribute(name = "业务细分", maxLength = 32)
@Schema(description = "业务细分", name = "contractSubName")
@ExcelProperty("业务细分")
private String contractSubName;
// 社保户——2022-7-26 15:02:00 倩倩告诉房工,社保户就是合同甲方
@ExcelAttribute(name = "合同甲方", maxLength = 50, needExport = true)
@Schema(description = "合同甲方")
@Size(max = 50, message = "合同甲方不可超过50位")
@ExcelProperty("合同甲方")
private String contractParty;
@ExcelAttribute(name = "签订期限", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.EMPLOYEE_CONTRACT_TYPE, needExport = true)
@Schema(description = "签订期限", name = "contractType")
@ExcelProperty("签订期限")
private String contractType;
@DateTimeFormat("yyyy-MM-dd")
......@@ -180,6 +184,7 @@ public class TSocialFundInfoExportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "学历", maxLength = 32)
@Schema(description = "学历", name = "contractName")
@ExcelProperty("学历")
private String educationName;
@ExcelAttribute(name = "备案基数", maxLength = 255)
......
package com.yifu.cloud.plus.v1.yifu.social.constants;
/**
* 缴费库导入静态数据
* @Author huyc
* @Date 2022-07-27
**/
public class PaymentConstants {
public static final String saveFailExistsSocialSettlement = "社保数据已生成核准表,无法删除!";
public static final String saveFailExistsSalarySocialSettlement = "社保数据已工资结算,无法删除!";
public static final String saveFailExistsFundSettlement = "公积金数据已生成核准表,无法删除!";
public static final String saveFailExistsSalaryFundSettlement = "公积金数据已工资结算,无法删除!";
public static final String saveFailExistsAgentSettlement = "对应缴费库数据已生成代理类结算单,无法删除!";
public static final String saveFailExistsFinanceBillSettlement = "数据已生成财务账单,无法删除!";
public static final String PENSION_RISK = "养老保险";
public static final String PENSION = "养老";
public static final String UNEMPLOYEEMENT_RISK = "失业保险";
public static final String UNEMPLOYEEMENT = "失业";
public static final String INJURY_RISK = "工伤保险";
public static final String INJURY = "工伤";
public static final String MEDICAL = "医疗";
}
......@@ -11,4 +11,12 @@ public class SocialConstants {
public static final String EMP_NAME_ERROR = "员工姓名错误!";
public static final String DIFF_TYPE_ONE = "预估";
public static final String DIFF_TYPE_TWO = "差额";
public static final String YL = "养老";
public static final String DB = "大病";
public static final String SY = "失业";
public static final String BIR = "生育";
public static final String GS = "工伤";
public static final String YB = "医保";
}
......@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.social.entity.TForecastLibrary;
import com.yifu.cloud.plus.v1.yifu.social.service.TForecastLibraryService;
import io.swagger.v3.oas.annotations.Operation;
......@@ -168,4 +169,33 @@ public class TForecastLibraryController {
return tForecastLibraryService.createForecastlibary(payMonths, empIdCard, settleDomainIds);
}
/**
* @Description: 每日定时刷新社保公积金信息、预估数据,根据新增的户数据
* @Author: hgw
* @Date: 2022/7/27 19:34
* @return: void
**/
@Operation(summary = "每日定时刷新社保公积金信息、预估数据,根据新增的户数据", description = "每日定时刷新社保公积金信息、预估数据,根据新增的户数据")
@SysLog("每日定时刷新社保公积金信息、预估数据,根据新增的户数据")
@Inner
@GetMapping("/inner/updateForecastLibaryBySysBase")
public void updateForecastLibaryBySysBase() {
tForecastLibraryService.updateForecastLibaryBySysBase(null);
}
/**
* @Description: 每月定时生成下月预估库数据
* @Author: hgw
* @Date: 2022/7/27 19:34
* @return: void
**/
@Operation(summary = "每月定时生成下月预估库数据", description = "每月定时生成下月预估库数据")
@SysLog("每月定时生成下月预估库数据")
@Inner
@GetMapping("/inner/everyMonthCreateForecastLibary")
public void everyMonthCreateForecastLibary() {
tForecastLibraryService.everyMonthCreateForecastLibary();
}
}
/*
package com.yifu.cloud.plus.v1.yifu.social.controller;/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......@@ -15,15 +15,15 @@
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.TPaymentInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoSearchVo;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
......@@ -31,15 +31,16 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 缴费库
*
* @author huyc
* @date 2022-07-14 18:53:42
* @author fxj
* @date 2022-07-22 17:01:22
*/
@RestController
@RequiredArgsConstructor
......@@ -48,78 +49,159 @@ import java.util.List;
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class TPaymentInfoController {
private final TPaymentInfoService tPaymentInfoService;
/**
* 简单分页查询
* @param page 分页对象
* @param tPaymentInfo 缴费库
* @return
*/
@Operation(summary = "简单分页查询", description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TPaymentInfo>> getTPaymentInfoPage(Page<TPaymentInfo> page, TPaymentInfo tPaymentInfo) {
return new R<>(tPaymentInfoService.getTPaymentInfoPage(page,tPaymentInfo));
}
/**
* 不分页查询
* @param tPaymentInfo 缴费库
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
public R<List<TPaymentInfo>> getTPaymentInfoNoPage(@RequestBody TPaymentInfo tPaymentInfo) {
return R.ok(tPaymentInfoService.list(Wrappers.query(tPaymentInfo)));
}
/**
* 通过id查询缴费库
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('social_tpaymentinfo_get')")
@GetMapping("/{id}" )
public R<TPaymentInfo> getById(@PathVariable("id" ) String id) {
return R.ok(tPaymentInfoService.getById(id));
}
/**
* 新增缴费库
* @param tPaymentInfo 缴费库
* @return R
*/
@Operation(summary = "新增缴费库", description = "新增缴费库:hasPermission('social_tpaymentinfo_add')")
@SysLog("新增缴费库" )
@PostMapping
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_add')" )
public R<Boolean> save(@RequestBody TPaymentInfo tPaymentInfo) {
return R.ok(tPaymentInfoService.save(tPaymentInfo));
}
/**
* 修改缴费库
* @param tPaymentInfo 缴费库
* @return R
*/
@Operation(summary = "修改缴费库", description = "修改缴费库:hasPermission('social_tpaymentinfo_edit')")
@SysLog("修改缴费库" )
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_edit')" )
public R<Boolean> updateById(@RequestBody TPaymentInfo tPaymentInfo) {
return R.ok(tPaymentInfoService.updateById(tPaymentInfo));
}
/**
* 通过id删除缴费库
* @param id id
* @return R
*/
@Operation(summary = "通过id删除缴费库", description = "通过id删除缴费库:hasPermission('social_tpaymentinfo_del')")
@SysLog("通过id删除缴费库" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_del')" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tPaymentInfoService.removeById(id));
}
private final TPaymentInfoService tPaymentInfoService;
/**
* 简单分页查询
* @param page 分页对象
* @param tPaymentInfo 缴费库
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TPaymentInfo>> getTPaymentInfoPage(Page<TPaymentInfo> page, TPaymentInfoSearchVo tPaymentInfo) {
return new R<>(tPaymentInfoService.getTPaymentInfoPage(page,tPaymentInfo));
}
/**
* 通过id查询缴费库
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询")
@GetMapping("/{id}" )
public R<TPaymentInfo> getById(@PathVariable("id" ) String id) {
return R.ok(tPaymentInfoService.getById(id));
}
/**
* 修改缴费库
* @param tPaymentInfo 缴费库
* @return R
*/
@Operation(summary = "修改缴费库", description = "修改缴费库:hasPermission('social_tpaymentinfo_edit')")
@SysLog("修改缴费库" )
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_edit')" )
public R<Boolean> updateById(@RequestBody TPaymentInfo tPaymentInfo) {
return R.ok(tPaymentInfoService.updateById(tPaymentInfo));
}
/**
* 通过id删除缴费库
* @param id id
* @return R
*/
@Operation(summary = "通过id删除缴费库", description = "通过id删除缴费库:hasPermission('social_tpaymentinfo_del')")
@SysLog("通过id删除缴费库" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_del')" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tPaymentInfoService.removeById(id));
}
/**
* 按类型删除
* @author huyc
* @date 2022-07-22 17:01:22
* @param id
* @param type
* @return
**/
@Operation(summary = "按类型删除", description = "按类型删除:hasPermission('social_tpaymentinfo_del')")
@SysLog("按类型删除缴费库")
@GetMapping("/removeByIdAndType")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_del')")
public R<Boolean> removeByIdAndType(@RequestParam String id, @RequestParam String type) {
return tPaymentInfoService.removeByIdAndType(id,type);
}
/**
* 通过id查询单条记录(包含明细)
* @param id
* @return R
*/
@Operation(summary = "通过id查询单条记录")
@GetMapping("/allInfo/{id}")
public R getAllInfoById(@PathVariable("id") String id) {
return tPaymentInfoService.getAllInfoById(id);
}
/**
* 省市社保 批量导入
* @author huyc
* @date 2022-07-22
**/
@SneakyThrows
@Operation(description = "导入省市社保 hasPermission('social_tpaymentinfo_batchImport')")
@SysLog("批量新增缴费库")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_batchImport')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file, @RequestParam String random){
return tPaymentInfoService.importSocialDiy(file.getInputStream(),random);
}
/**
* 导入省市社保-合肥三险
* @author huyc
* @date 2022-07-22
**/
@SneakyThrows
@Operation(description = "导入省市社保-合肥三险 hasPermission('social_tpaymentinfo_batchImport')")
@SysLog("批量新增缴费库-合肥三险")
@PostMapping("/importListSocialHeFei")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_batchImport')")
public R<List<ErrorMessage>> importListSocialHeFei(@RequestBody MultipartFile file, @RequestParam String random,
@RequestParam(value = "type") String type){
return tPaymentInfoService.importSocialHeFeiDiy(file.getInputStream(),random,type);
}
/**
* 导入公积金
* @author huyc
* @date 2022-07-27
**/
@SneakyThrows
@Operation(description = "导入公积金 hasPermission('social_tpaymentinfo_batchImport')")
@SysLog("导入公积金")
@PostMapping("/batchImportPaymentFundInfo")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_batchImport')")
public R<List<ErrorMessage>> importListFund(@RequestBody MultipartFile file){
return tPaymentInfoService.batchImportPaymentFundInfo(file.getInputStream());
}
/**
* 缴费库 批量导出
* @author huyc
* @date 2022-07-22
**/
@Operation(description = "导出缴费库 hasPermission('social_tpaymentinfo_export')")
@PostMapping("/export")
// @PreAuthorize("@pms.hasPermission('social_tpaymentinfo_export')")
public void export(HttpServletResponse response, @RequestBody TPaymentInfoSearchVo searchVo) {
tPaymentInfoService.listExport(response,searchVo);
}
/**
* 删除当前登录人当前月的社保或公积金数据
* @param type 0 全部删除 1 删除社保 2 删除公积金 必填
* @param settleDepartId 结算主体ID 可选
* @param unitId 单位ID 可选
* @param empIdCard 员工身份证 可选
* @param socialHouseId 社保户 可选
* @param fundHouseId 公积金户 可选
* @return R
*/
@Operation(description = "删除(social_tpaymentinfo_del)")
@SysLog("删除缴费库")
@PostMapping("/removeBatchByIdsAndType")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_del')")
public R removeBatchByIdsAndType(@RequestParam(name = "type",required = true) String type,
@RequestParam(name = "settleDepartId",required = false) String settleDepartId,
@RequestParam(name = "unitId",required = false) String unitId,
@RequestParam(name = "empIdCard",required = false) String empIdCard,
@RequestParam(name = "socialHouseId",required = false) String socialHouseId,
@RequestParam(name = "fundHouseId",required = false) String fundHouseId) {
return tPaymentInfoService.removeBatchByIdsAndType(type,settleDepartId,unitId,empIdCard,socialHouseId,fundHouseId);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.social.service.TPaymentInfoImportLogService;
import com.yifu.cloud.plus.v1.yifu.social.util.ServiceUtil;
import org.apache.commons.lang.StringUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
*
*
* @author huyc
* @date 2022-07-25 14:08:58
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tpaymentinfoimportlog" )
@Tag(name = "管理")
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class TPaymentInfoImportLogController {
private final TPaymentInfoImportLogService tPaymentInfoImportLogService;
private final RedisUtil redisUtil;
@Operation(description = "导出社保导入日志")
@GetMapping("/exportPaymentInfoLog")
public void exportPaymentInfoLog(HttpServletResponse response) {
YifuUser user = SecurityUtils.getUser();
String key = user.getId() + CommonConstants.DOWN_LINE_STRING + CommonConstants.PAYMENT_SOCIAL_WAIT_EXPORT;
String importRandom = (String) redisUtil.get(key);
if (StringUtils.isBlank(importRandom)) {
ServiceUtil.runTimeExceptionDiy("当前社保数据还未导入完成或者数据不存在");
}
String res = tPaymentInfoImportLogService.exportPaymentInfoLog(response, importRandom);
if (Common.isNotNull(res)){
ServiceUtil.runTimeExceptionDiy(res);
}
}
/**
* @description: 清空社保导入日志表
* @return: com.yifu.cloud.v1.common.core.util.R<java.lang.Void>
* @author: huyc
* @date: 2022/7/25
*/
@Inner
@DeleteMapping("/inner/delPaymentInfoLog")
public R<Void> delPaymentInfoLog() {
boolean flag = tPaymentInfoImportLogService.remove(new QueryWrapper<>());
if (flag) {
return R.ok();
} else {
return R.failed("操作失败!");
}
}
}
......@@ -80,7 +80,7 @@ public class TSocialFundInfoController {
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tsocialfundinfo_get')")
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('tsocialfundinfo_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('tsocialfundinfo_get')" )
public R<TSocialFundInfo> getById(@PathVariable("id" ) String id) {
......@@ -94,7 +94,7 @@ public class TSocialFundInfoController {
* @date 2022-07-15 11:38:05
**/
@SneakyThrows
@Operation(description = "批量调基 hasPermission('demo_tsocialfundinfo-batch-import')")
@Operation(description = "批量调基 hasPermission('tsocialfundinfo-batch-import')")
@SysLog("批量调基")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('tsocialfundinfo-batch-import')")
......@@ -107,9 +107,9 @@ public class TSocialFundInfoController {
* @author fxj
* @date 2022-07-15 11:38:05
**/
@Operation(description = "导出社保公积金查询表 hasPermission('demo_tsocialfundinfo-export')")
@Operation(description = "导出社保公积金查询表 hasPermission('tsocialfundinfo-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tsocialfundinfo-export')")
@PreAuthorize("@pms.hasPermission('tsocialfundinfo-export')")
public void export(HttpServletResponse response, @RequestBody TSocialFundInfoSearchVo searchVo) {
tSocialFundInfoService.listExport(response,searchVo);
}
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfoImportLog;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author huyc
* @date 2022-07-25 14:08:58
*/
@Mapper
public interface TPaymentInfoImportLogMapper extends BaseMapper<TPaymentInfoImportLog> {
}
......@@ -21,9 +21,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 缴费库
*
......@@ -38,4 +42,56 @@ public interface TPaymentInfoMapper extends BaseMapper<TPaymentInfo> {
* @return
*/
IPage<TPaymentInfo> getTPaymentInfoPage(Page<TPaymentInfo> page, @Param("tPaymentInfo") TPaymentInfo tPaymentInfo);
/**
* 缴费库简单分页查询
* @param searchVo 缴费库
* @return
*/
Integer selectCountTPaymentInfo(@Param("tPaymentInfo") TPaymentInfoSearchVo searchVo);
/**
* 缴费库简单分页查询
* @param searchVo 缴费库
* @return
*/
List<TPaymentInfo> getTPaymentInfoNoPage(@Param("tPaymentInfo") TPaymentInfoSearchVo searchVo);
/**
* 更新社保或者公积金
* @param tPaymentInfo 缴费库
* @return
*/
int updateDeleteInfo(@Param("tPaymentInfo")TPaymentInfo tPaymentInfo);
/**
* 通过ID获取缴费库 及社保、公积金明细
* @param id
* @return
**/
TPaymentInfoVo getAllInfoById(String id);
/**
* 查询要删除的数据
* @param queryEntity
* @return
**/
List<TPaymentInfo> selectListForDelete(@Param("queryEntity")TPaymentInfo queryEntity);
/*
* 已存在社保缴费库数据 非删除状态
* @param months
* @param idcards
* @return
* */
List<TPaymentInfo> selectListForPaymentImport(@Param("months")List<String> months, @Param("idcards")List<String> idcards);
/*
* 已存在社保缴费库数据 非删除状态
* @param months
* @param idcards
* @return
* */
List<TPaymentInfoVo> selectPaymentAllInfoByMonthAndIdCard(@Param("months")List<String> months, @Param("idcards")List<String> idcards);
}
......@@ -38,17 +38,50 @@ public interface TPreDispatchInfoMapper extends BaseMapper<TPreDispatchInfo> {
/**
* 预派单记录简单分页查询
* @param tPreDispatchInfo 预派单记录
* @author huyc
* @date 2022-07-14
* @return
*/
IPage<TPreDispatchInfo> getTPreDispatchInfoPage(Page<TPreDispatchInfo> page, @Param("tPreDispatchInfo") TPreDispatchInfo tPreDispatchInfo);
/*
* 清空预派单默认的派单合同信息
* @param preInfo
* @author huyc
* @date 2022-07-14
* */
void clearContractInfo(List<String> idList);
/*
* 修改资料是否提交状态
* @param tPreDispatchInfo
* @author huyc
* @date 2022-07-14
* */
void modifyDataSubmitStatus(@Param("idList")List<String> idList, @Param("status")String status);
/*
* 更新派单信息
* @param tPreDispatchInfo
* @author huyc
* @date 2022-07-14
* */
int updatePreDispatchInfoById(TPreDispatchInfo tPreDispatchInfo);
/*
* 处理派单结果
* @param preInfo
* @author huyc
* @date 2022-07-14
* */
void updatePreStatusById(TPreDispatchInfo preInfo);
/**
* 获取导出的数据
* @param tPreDispatchInfo 预派单记录
* @author huyc
* @date 2022-07-14
* @return
*/
List<TPreDispatchExportVo> getListForExport(@Param("tPreDispatchInfo")TPreDispatchInfo tPreDispatchInfo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfoImportLog;
import javax.servlet.http.HttpServletResponse;
/**
*
*
* @author huyc
* @date 2022-07-25 14:08:58
*/
public interface TPaymentInfoImportLogService extends IService<TPaymentInfoImportLog> {
/**
* @description: 导出社保导入日志
* @param response
* @param random
* @return: void
* @author: huyc
* @date: 2022/7/25
*/
String exportPaymentInfoLog(HttpServletResponse response, String random);
}
/*
package com.yifu.cloud.plus.v1.yifu.social.service;/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......@@ -15,24 +15,92 @@
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.social.vo.TPaymentInfoSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 缴费库
*
* @author huyc
* @date 2022-07-14 18:53:42
* @date 2022-07-22 17:01:22
*/
public interface TPaymentInfoService extends IService<TPaymentInfo> {
/**
* 缴费库简单分页查询
* @param tPaymentInfo 缴费库
* @return
*/
IPage<TPaymentInfo> getTPaymentInfoPage(Page<TPaymentInfo> page, TPaymentInfo tPaymentInfo);
/**
* 缴费库简单分页查询
* @param tPaymentInfo 缴费库
* @return
*/
IPage<TPaymentInfo> getTPaymentInfoPage(Page<TPaymentInfo> page, TPaymentInfo tPaymentInfo);
/**
* 缴费库批量导入社保
* @param inputStream
* @return
*/
R<List<ErrorMessage>> importSocialDiy(InputStream inputStream, String random);
/**
* 批量新增缴费库-合肥三险
* @param inputStream
* @param random
* @param type
* @return
*/
R<List<ErrorMessage>> importSocialHeFeiDiy(InputStream inputStream, String random, String type);
/**
* 批量导入公积金
* @param inputStream
* @return
*/
R<List<ErrorMessage>> batchImportPaymentFundInfo(InputStream inputStream);
/**
* 导出缴费库
* @param response
* @param searchVo
* @return
*/
void listExport(HttpServletResponse response, TPaymentInfoSearchVo searchVo);
/**
* 按类型删除
* @Author huyc
* @Date 2022-07-24
* @param id
* @param type
* @return
**/
R<Boolean> removeByIdAndType(String id, String type);
/**
* 通过ID获取缴费库 及社保、公积金明细
* @Author huyc
* @Date 2022-07-24
* @param id
* @return
**/
R getAllInfoById(String id);
/**
* 删除当月 当前登录人的 指定类型的缴费库数据
* @Author huyc
* @Date 2022-07-27
* @param type
* @param settleDepartId
* @param unitId
* @param empIdCard
* @param socialHouseId
* @param fundHouseId
* @return
**/
R removeBatchByIdsAndType(String type, String settleDepartId, String unitId, String empIdCard, String socialHouseId, String fundHouseId);
}
......@@ -544,7 +544,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
// 初始化大病:
this.initLibraryBigMoneyBySocial(library, socialInfo, sysBaseSetInfo);
initUnitAndPersonalLibrary(library, socialInfo, sysBaseSetInfo);
initUnitAndPersonalLibrary(library, socialInfo, sysBaseSetInfo, historyLibrary);
if (null != configAll || null != configUnit || null != configPersonal) {
if (null != configPersonal) {
initPersonalLibByConfig(library, configPersonal);
......@@ -773,13 +773,13 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
* @Date 2020-08-03
**/
private void initUnitAndPersonalLibrary(TForecastLibrary library, TSocialFundInfo socialInfo
, SysBaseSetInfo sysBaseSetInfo) {
initLibrayOfPersonal(library, socialInfo, sysBaseSetInfo);
initLibraryOfUnit(library, socialInfo, sysBaseSetInfo);
, SysBaseSetInfo sysBaseSetInfo, TForecastLibrary historyLibrary) {
initLibrayOfPersonal(library, socialInfo, sysBaseSetInfo, historyLibrary);
initLibraryOfUnit(library, socialInfo, sysBaseSetInfo, historyLibrary);
}
private void initLibrayOfPersonal(TForecastLibrary library, TSocialFundInfo socialInfo
, SysBaseSetInfo sysBaseSetInfo) {
, SysBaseSetInfo sysBaseSetInfo, TForecastLibrary historyLibrary) {
// 个人养老基数
BigDecimal personalPersionBase = BigDecimal.ZERO;
// 个人医疗基数
......@@ -810,14 +810,18 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
personalPersionBase = baseLimit;
personalMedicalBase = baseLimit;
personalUnemploymentBase = baseLimit;
personalPersionPro = sysBaseSetInfo.getPersonalPersionPro();
personalMedicalPro = sysBaseSetInfo.getPersonalMedicalPro();
personalUnemploymentPro = sysBaseSetInfo.getPersonalUnemploymentPro();
} else {
personalPersionBase = socialInfo.getPersonalPensionCardinal();
personalMedicalBase = socialInfo.getPersonalMedicalCardinal();
personalUnemploymentBase = socialInfo.getPersonalUnemploymentCardinal();
}
if (historyLibrary != null) {
if (historyLibrary.getUnitPersionPro() != null) {
personalPersionPro = historyLibrary.getPersonalPersionPro();
personalMedicalPro = historyLibrary.getPersonalMedicalPro();
personalUnemploymentPro = historyLibrary.getPersonalUnemploymentPro();
}
} else {
personalPersionPro = socialInfo.getPersonalPensionPer();
personalMedicalPro = socialInfo.getPersonalMedicalPer();
personalUnemploymentPro = socialInfo.getPersonalUnemploymentPer();
......@@ -845,7 +849,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
private void initLibraryOfUnit(TForecastLibrary library, TSocialFundInfo socialInfo
, SysBaseSetInfo sysBaseSetInfo) {
, SysBaseSetInfo sysBaseSetInfo, TForecastLibrary historyLibrary) {
// 单位养老基数
BigDecimal unitPersionBase = BigDecimal.ZERO;
// 单位医疗基数
......@@ -894,18 +898,24 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
unitUnemploymentBase = baseLimit;
unitInjuryBase = baseLimit;
unitBirthBase = baseLimit;
unitPersionPro = sysBaseSetInfo.getUnitPersionPro();
unitMedicalPro = sysBaseSetInfo.getUnitMedicalPro();
unitUnemploymentPro = sysBaseSetInfo.getUnitUnemploymentPro();
unitInjuryPro = sysBaseSetInfo.getUnitInjuryPro();
unitBirthPro = sysBaseSetInfo.getUnitBirthPro();
} else {
unitPersionBase = socialInfo.getUnitPensionCardinal();
unitMedicalBase = socialInfo.getUnitMedicalCardinal();
unitUnemploymentBase = socialInfo.getUnitUnemploymentCardinal();
unitInjuryBase = socialInfo.getUnitWorkInjuryCardinal();
unitBirthBase = socialInfo.getUnitBirthCardinal();
}
if (historyLibrary != null) {
if (historyLibrary.getUnitPersionPro() != null) {
unitPersionPro = historyLibrary.getUnitPersionPro();
unitMedicalPro = historyLibrary.getUnitMedicalPro();
unitUnemploymentPro = historyLibrary.getUnitUnemploymentPro();
unitInjuryPro = historyLibrary.getUnitInjuryPro();
unitBirthPro = historyLibrary.getUnitBirthPro();
} else if (historyLibrary.getUnitInjuryPro() != null) {
unitInjuryPro = historyLibrary.getUnitInjuryPro();
}
} else {
unitPersionPro = socialInfo.getUnitPensionPer();
unitMedicalPro = socialInfo.getUnitMedicalPer();
unitUnemploymentPro = socialInfo.getUnitUnemploymentPer();
......@@ -1521,7 +1531,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
if (Common.isNotNull(libraryFundList)) {
baseMapper.deleteBatchIds(libraryFundList);
}
// 未推送的预估明细Map
// 新基数,老比例,存放Map
HashMap<String, TForecastLibrary> socialHistoryMap = new HashMap<>();
HashMap<String, TForecastLibrary> fundHistoryMap = new HashMap<>();
// 已推送的预估明细Map
......@@ -1646,15 +1656,115 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
return null;
}
/**
* @Description: 每月1号定时生成下月预估库数据
* @Author: hgw
* @Date: 2022/7/27 19:30
* @return: void
**/
@Override
public void everyMonthCreateForecastLibary() {
List<TSocialFundInfo> socialFundInfoList = socialFundInfoMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda());
if (socialFundInfoList != null && !socialFundInfoList.isEmpty()) {
String payMonth = DateUtil.addMonth(1);
for (TSocialFundInfo socialFundInfo : socialFundInfoList) {
// TODO-生成新的社保公积金数据
everyMonthCreateForecastLibaryCore(payMonth, socialFundInfo);
}
}
}
private R<String> everyMonthCreateForecastLibaryCore(String payMonth, TSocialFundInfo socialFundInfo) {
String empIdCard = socialFundInfo.getEmpIdcard();
//定义未推送的按条件查询得到的预估数据
List<TForecastLibrary> librarySocialList = null;
//定义已推送的按条件查询得到的预估数据
List<TForecastLibrary> librarySocialListTemp = null;
//定义未推送的按条件查询得到的预估数据
List<TForecastLibrary> libraryFundList = null;
//定义已推送的按条件查询得到的预估数据
List<TForecastLibrary> libraryFundListTemp = null;
List<String> payMonthList = new ArrayList<>();
payMonthList.add(payMonth);
//查询出所有符合条件的社保数据
List<TSocialFundInfo> socialInfoList = null;
List<TSocialFundInfo> fundList = null;
// 查询当年所有的社保临时政策用于生成预估数据
List<TAgentConfig> configList = agentConfigMapper.selectList(Wrappers.<TAgentConfig>query().lambda()
.eq(TAgentConfig::getOpenFlag, CommonConstants.ZERO_INT));
HashMap<String, TAgentConfig> agentConfigHashMap = new HashMap<>();
if (Common.isNotNull(configList) && Common.isNotNull(payMonthList)) {
initConfigByPayMonths(configList, payMonthList, agentConfigHashMap);
}
//查询出所有对应条件的预估数、社保数据、公积金数据据用于重新生成
if (Common.isNotNull(empIdCard)) {
librarySocialList = baseMapper.selectList(Wrappers.<TForecastLibrary>query().lambda()
.eq(TForecastLibrary::getEmpIdcard, empIdCard)
.eq(TForecastLibrary::getDataType, CommonConstants.ZERO_INT)
.eq(TForecastLibrary::getSocialPayMonth, payMonth)
.eq(TForecastLibrary::getDataPush, CommonConstants.ZERO_INT));
librarySocialListTemp = baseMapper.selectList(Wrappers.<TForecastLibrary>query().lambda()
.eq(TForecastLibrary::getEmpIdcard, empIdCard)
.eq(TForecastLibrary::getDataType, CommonConstants.ZERO_INT)
.eq(TForecastLibrary::getSocialPayMonth, payMonth)
.eq(TForecastLibrary::getDataPush, CommonConstants.ONE_INT));
libraryFundList = baseMapper.selectList(Wrappers.<TForecastLibrary>query().lambda()
.eq(TForecastLibrary::getEmpIdcard, empIdCard)
.eq(TForecastLibrary::getDataType, CommonConstants.ONE_INT)
.eq(TForecastLibrary::getProvidentPayMonth, payMonth)
.eq(TForecastLibrary::getDataPush, CommonConstants.ZERO_INT));
libraryFundListTemp = baseMapper.selectList(Wrappers.<TForecastLibrary>query().lambda()
.eq(TForecastLibrary::getEmpIdcard, empIdCard)
.eq(TForecastLibrary::getDataType, CommonConstants.ONE_INT)
.eq(TForecastLibrary::getProvidentPayMonth, payMonth)
.eq(TForecastLibrary::getDataPush, CommonConstants.ONE_INT));
socialInfoList = socialFundInfoMapper.getSocialList(empIdCard, null);
fundList = socialFundInfoMapper.getFundList(empIdCard, null);
}
if (Common.isEmpty(socialInfoList)
&& Common.isEmpty(fundList)) {
return R.failed("无需要重新生成的数据(无数据或数据已结算不可重新生成!)");
}
//先删除然后重新生成
if (Common.isNotNull(librarySocialList)) {
baseMapper.deleteBatchIds(librarySocialList);
}
if (Common.isNotNull(libraryFundList)) {
baseMapper.deleteBatchIds(libraryFundList);
}
// 已存在的预估数据,采用比例
HashMap<String, TForecastLibrary> socialHistoryMap = new HashMap<>();
HashMap<String, TForecastLibrary> fundHistoryMap = new HashMap<>();
// 已推送的预估明细Map
HashMap<String, TForecastLibrary> socialPushMap = new HashMap<>();
HashMap<String, TForecastLibrary> fundPushMap = new HashMap<>();
// 组建基础Map
this.getBaseMap(librarySocialList, librarySocialListTemp, libraryFundList, libraryFundListTemp
, socialHistoryMap, fundHistoryMap, socialPushMap, fundPushMap);
Map<String, TForecastLibrary> saveLibraryMap = new HashMap<>();
boolean isReduceSocial = false;
boolean isReduceFund = false;
// 核心刷新
R<String> coreR = this.doCore(payMonthList, socialInfoList, fundList, agentConfigHashMap, socialHistoryMap
, fundHistoryMap, socialPushMap, fundPushMap, saveLibraryMap, isReduceSocial, isReduceFund);
if (coreR != null) return coreR;
boolean isSaveAndUpdate = false;
for (TForecastLibrary library : saveLibraryMap.values()) {
if (Common.isEmpty(library.getSocialId()) && Common.isEmpty(library.getProvidentId())) {
continue;
}
if (Common.isNotNull(library.getId())) {
baseMapper.updateById(library);
} else {
library.setCreateTime(LocalDateTime.now());
baseMapper.insert(library);
}
isSaveAndUpdate = true;
}
if (isSaveAndUpdate) {
return R.ok(null, "执行成功!");
} else {
return R.failed("执行失败!无需更新的数据!");
}
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfoImportLog;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TPaymentInfoImportLogMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TPaymentInfoImportLogService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoImportLogVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @author huyc
* @date 2022-07-25 14:08:58
*/
@Log4j2
@Service
public class TPaymentInfoImportLogServiceImpl extends ServiceImpl<TPaymentInfoImportLogMapper, TPaymentInfoImportLog> implements TPaymentInfoImportLogService {
/**
* @param response
* @param random
* @description: 导出社保导入日志
* @return: void
* @author: huyc
* @date: 2022/7/25
*/
@Override
public String exportPaymentInfoLog(HttpServletResponse response, String random) {
String fileName = "社保导入日志" + DateUtil.getThisTime() + ".xlsx";
List<TPaymentInfoImportLogVo> list = new ArrayList<>();
List<TPaymentInfoImportLog> paymentInfoImportLogList = lambdaQuery()
.eq(TPaymentInfoImportLog::getRandomKey, random).orderByAsc(TPaymentInfoImportLog::getLine).list();
if (CollectionUtils.isEmpty(paymentInfoImportLogList)) {
return "导出数据为空";
}
paymentInfoImportLogList.forEach(v -> {
TPaymentInfoImportLogVo paymentInfoLogVO = new TPaymentInfoImportLogVo();
BeanUtils.copyProperties(v, paymentInfoLogVO);
list.add(paymentInfoLogVO);
});
ServletOutputStream out = null;
try {
out = response.getOutputStream();
ExcelUtil<TPaymentInfoImportLogVo> util = new ExcelUtil<>(TPaymentInfoImportLogVo.class);
for (TPaymentInfoImportLogVo vo : list) {
util.convertEntity(vo, null, null, null);
}
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
EasyExcel.write(out, EmployeeProjectExportVO.class).includeColumnFiledNames(getExportFieldNameDetailByClass(TPaymentInfoImportLogVo.class)).sheet("社保导入日志")
.doWrite(list);
out.flush();
} catch (IOException e) {
log.error("导出缴费库导入记录异常!", e);
e.printStackTrace();
return "操作失败,发生异常!";
}
return null;
}
private Set<String> getExportFieldNameDetailByClass(Class<?> clazz) {
Set<String> exportfieldsName = new HashSet<>();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
ExcelAttribute annotation = field.getAnnotation(ExcelAttribute.class);
if (annotation != null && Common.isNotNull(annotation.name()) && annotation.needExport()) {
exportfieldsName.add(annotation.name());
}
}
return exportfieldsName;
}
}
......@@ -106,7 +106,7 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out, TSocialFundInfo.class).includeColumnFiledNames(searchVo.getExportFields()).build();
ExcelWriter excelWriter = EasyExcel.write(out, TSocialFundInfoExportVo.class).includeColumnFiledNames(searchVo.getExportFields()).build();
int index = 0;
if (count > CommonConstants.ZERO_INT) {
for (int i = 0; i <= count; i += CommonConstants.EXCEL_EXPORT_LIMIT) {
......@@ -202,7 +202,7 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, TSocialFundInfoVo.class, new ReadListener<TSocialFundHistoryVo>() {
EasyExcel.read(inputStream, TSocialFundHistoryVo.class, new ReadListener<TSocialFundHistoryVo>() {
/**
* 单次缓存的数据量
*/
......@@ -418,8 +418,12 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
socialFundInfo.setPersonalMedicalCardinal(baseSetVo.getUnitMedicalCardinal());
socialFundInfo.setPersonalUnemploymentCardinal(baseSetVo.getUnitUnemploymentCardinal());
socialFundInfo.setUnitBigailmentMoney(baseSetVo.getUnitBigailmentMoney());
socialFundInfo.setPersonalBigailmentMoney(baseSetVo.getPersonalBigailmentMoney());
if (baseSetVo.getUnitBigailmentMoney() != null) {
socialFundInfo.setUnitBigailmentMoney(baseSetVo.getUnitBigailmentMoney());
}
if (baseSetVo.getPersonalBigailmentMoney() != null) {
socialFundInfo.setPersonalBigailmentMoney(baseSetVo.getPersonalBigailmentMoney());
}
} else if (CommonConstants.ZERO_INT == baseSetVo.getPaymentType()) {
BigDecimal limitBase = socialSetInfo.getLowerLimit();
this.setLimtBase(socialFundInfo, limitBase);
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.social.mapper.TPaymentInfoImportLogMapper">
<resultMap id="tPaymentInfoImportLogMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfoImportLog">
<id property="id" column="id"/>
<result property="empName" column="emp_name"/>
<result property="idCard" column="id_card"/>
<result property="errMsg" column="err_msg"/>
<result property="line" column="line"/>
<result property="randomKey" column="random_key"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.emp_name,
a.id_card,
a.err_msg,
a.line,
a.random_key
</sql>
<sql id="tPaymentInfoImportLog_where">
<if test="tPaymentInfoImportLog != null">
<if test="tPaymentInfoImportLog.id != null">
AND a.id = #{tPaymentInfoImportLog.id}
</if>
<if test="tPaymentInfoImportLog.empName != null and tPaymentInfoImportLog.empName.trim() != ''">
AND a.emp_name = #{tPaymentInfoImportLog.empName}
</if>
<if test="tPaymentInfoImportLog.idCard != null and tPaymentInfoImportLog.idCard.trim() != ''">
AND a.id_card = #{tPaymentInfoImportLog.idCard}
</if>
<if test="tPaymentInfoImportLog.errMsg != null and tPaymentInfoImportLog.errMsg.trim() != ''">
AND a.err_msg = #{tPaymentInfoImportLog.errMsg}
</if>
<if test="tPaymentInfoImportLog.line != null">
AND a.line = #{tPaymentInfoImportLog.line}
</if>
<if test="tPaymentInfoImportLog.randomKey != null and tPaymentInfoImportLog.randomKey.trim() != ''">
AND a.random_key = #{tPaymentInfoImportLog.randomKey}
</if>
</if>
</sql>
<!--tPaymentInfoImportLog简单分页查询-->
<select id="getTPaymentInfoImportLogPage" resultMap="tPaymentInfoImportLogMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info_import_log a
<where>
1=1
<include refid="tPaymentInfoImportLog_where"/>
</where>
</select>
</mapper>
......@@ -22,57 +22,92 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.social.mapper.TPaymentInfoMapper">
<resultMap id="tPaymentInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo">
<id property="id" column="ID"/>
<result property="empName" column="EMP_NAME"/>
<result property="empNo" column="EMP_NO"/>
<result property="empId" column="EMP_ID"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="unitId" column="UNIT_ID"/>
<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
<result property="lockStatus" column="LOCK_STATUS"/>
<result property="socialSettlementFlag" column="SOCIAL_SETTLEMENT_FLAG"/>
<result property="fundSettlementFlag" column="FUND_SETTLEMENT_FLAG"/>
<result property="sumAll" column="SUM_ALL"/>
<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
<result property="fundProvince" column="FUND_PROVINCE"/>
<result property="fundCity" column="FUND_CITY"/>
<result property="fundTown" column="FUND_TOWN"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
<result property="socialCity" column="SOCIAL_CITY"/>
<result property="socialTown" column="SOCIAL_TOWN"/>
<result property="socialId" column="SOCIAL_ID"/>
<result property="fundId" column="FUND_ID"/>
<result property="socialSum" column="SOCIAL_SUM"/>
<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
<result property="providentSum" column="PROVIDENT_SUM"/>
<result property="socialSettlementId" column="SOCIAL_SETTLEMENT_ID"/>
<result property="fundSettlementId" column="FUND_SETTLEMENT_ID"/>
<result property="salarySocialFlag" column="SALARY_SOCIAL_FLAG"/>
<result property="salaryFundFlag" column="SALARY_FUND_FLAG"/>
<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
<result property="telecomNumber" column="TELECOM_NUMBER"/>
<result property="sortTime" column="SORT_TIME"/>
<result property="agentId" column="AGENT_ID"/>
<result property="financeBillId" column="FINANCE_BILL_ID"/>
<result property="createBy" column="CREATE_BY"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateTime" column="UPDATE_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
<resultMap id="tPaymentInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo">
<id property="id" column="ID"/>
<result property="empName" column="EMP_NAME"/>
<result property="empNo" column="EMP_NO"/>
<result property="empId" column="EMP_ID"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="unitId" column="UNIT_ID"/>
<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
<result property="lockStatus" column="LOCK_STATUS"/>
<result property="socialSettlementFlag" column="SOCIAL_SETTLEMENT_FLAG"/>
<result property="fundSettlementFlag" column="FUND_SETTLEMENT_FLAG"/>
<result property="sumAll" column="SUM_ALL"/>
<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
<result property="fundProvince" column="FUND_PROVINCE"/>
<result property="fundCity" column="FUND_CITY"/>
<result property="fundTown" column="FUND_TOWN"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
<result property="socialCity" column="SOCIAL_CITY"/>
<result property="socialTown" column="SOCIAL_TOWN"/>
<result property="socialId" column="SOCIAL_ID"/>
<result property="fundId" column="FUND_ID"/>
<result property="socialSum" column="SOCIAL_SUM"/>
<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
<result property="providentSum" column="PROVIDENT_SUM"/>
<result property="socialSettlementId" column="SOCIAL_SETTLEMENT_ID"/>
<result property="fundSettlementId" column="FUND_SETTLEMENT_ID"/>
<result property="salarySocialFlag" column="SALARY_SOCIAL_FLAG"/>
<result property="salaryFundFlag" column="SALARY_FUND_FLAG"/>
<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
<result property="telecomNumber" column="TELECOM_NUMBER"/>
<result property="sortTime" column="SORT_TIME"/>
<result property="agentId" column="AGENT_ID"/>
<result property="financeBillId" column="FINANCE_BILL_ID"/>
<result property="companyAccrual" column="COMPANY_ACCRUAL"/>
<result property="personalAccrual" column="PERSONAL_ACCRUAL"/>
<result property="unitPensionSet" column="UNIT_PENSION_SET"/>
<result property="unitMedicalSet" column="UNIT_MEDICAL_SET"/>
<result property="unitUnemploymentSet" column="UNIT_UNEMPLOYMENT_SET"/>
<result property="unitInjurySet" column="UNIT_INJURY_SET"/>
<result property="unitBirthSet" column="UNIT_BIRTH_SET"/>
<result property="personalPensionSet" column="PERSONAL_PENSION_SET"/>
<result property="personalMedicalSet" column="PERSONAL_MEDICAL_SET"/>
<result property="personalUnemploymentSet" column="PERSONAL_UNEMPLOYMENT_SET"/>
<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
<result property="unitBigailmentPer" column="UNIT_BIGAILMENT_PER"/>
<result property="personalBigailmentPer" column="PERSONAL_BIGAILMENT_PER"/>
<result property="unitPensionMoney" column="UNIT_PENSION_MONEY"/>
<result property="unitMedicalMoney" column="UNIT_MEDICAL_MONEY"/>
<result property="unitUnemploymentMoney" column="UNIT_UNEMPLOYMENT_MONEY"/>
<result property="unitInjuryMoney" column="UNIT_INJURY_MONEY"/>
<result property="unitBirthMoney" column="UNIT_BIRTH_MONEY"/>
<result property="unitBigmailmentMoney" column="UNIT_BIGMAILMENT_MONEY"/>
<result property="personalPensionMoney" column="PERSONAL_PENSION_MONEY"/>
<result property="personalMedicalMoney" column="PERSONAL_MEDICAL_MONEY"/>
<result property="personalUnemploymentMoney" column="PERSONAL_UNEMPLOYMENT_MONEY"/>
<result property="personalBigmailmentMoney" column="PERSONAL_BIGMAILMENT_MONEY"/>
<result property="providentNo" column="PROVIDENT_NO"/>
<result property="unitProvidentSet" column="UNIT_PROVIDENT_SET"/>
<result property="providentPercent" column="PROVIDENT_PERCENT"/>
<result property="unitProvidentSum" column="UNIT_PROVIDENT_SUM"/>
<result property="personalProidentSet" column="PERSONAL_PROIDENT_SET"/>
<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
<result property="createBy" column="CREATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_NAME,
a.EMP_NO,
a.EMP_ID,
......@@ -113,162 +148,921 @@
a.SORT_TIME,
a.AGENT_ID,
a.FINANCE_BILL_ID,
a.COMPANY_ACCRUAL,
a.PERSONAL_ACCRUAL,
a.UNIT_PENSION_SET,
a.UNIT_MEDICAL_SET,
a.UNIT_UNEMPLOYMENT_SET,
a.UNIT_INJURY_SET,
a.UNIT_BIRTH_SET,
a.PERSONAL_PENSION_SET,
a.PERSONAL_MEDICAL_SET,
a.PERSONAL_UNEMPLOYMENT_SET,
a.UNIT_PENSION_PER,
a.UNIT_MEDICAL_PER,
a.UNIT_UNEMPLOYMENT_PER,
a.UNIT_INJURY_PER,
a.UNIT_BIRTH_PER,
a.PERSONAL_PENSION_PER,
a.PERSONAL_MEDICAL_PER,
a.PERSONAL_UNEMPLOYMENT_PER,
a.UNIT_BIGAILMENT_PER,
a.PERSONAL_BIGAILMENT_PER,
a.UNIT_PENSION_MONEY,
a.UNIT_MEDICAL_MONEY,
a.UNIT_UNEMPLOYMENT_MONEY,
a.UNIT_INJURY_MONEY,
a.UNIT_BIRTH_MONEY,
a.UNIT_BIGMAILMENT_MONEY,
a.PERSONAL_PENSION_MONEY,
a.PERSONAL_MEDICAL_MONEY,
a.PERSONAL_UNEMPLOYMENT_MONEY,
a.PERSONAL_BIGMAILMENT_MONEY,
a.PROVIDENT_NO,
a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT,
a.UNIT_PROVIDENT_SUM,
a.PERSONAL_PROIDENT_SET,
a.PERSONAL_PROVIDENT_SUM,
a.CREATE_BY,
a.UPDATE_TIME,
a.UPDATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_TIME
</sql>
<sql id="tPaymentInfo_where">
<if test="tPaymentInfo != null">
<if test="tPaymentInfo.id != null and tPaymentInfo.id.trim() != ''">
AND a.ID = #{tPaymentInfo.id}
</if>
<if test="tPaymentInfo.empName != null and tPaymentInfo.empName.trim() != ''">
AND a.EMP_NAME = #{tPaymentInfo.empName}
</if>
<if test="tPaymentInfo.empNo != null and tPaymentInfo.empNo.trim() != ''">
AND a.EMP_NO = #{tPaymentInfo.empNo}
</if>
<if test="tPaymentInfo.empId != null and tPaymentInfo.empId.trim() != ''">
AND a.EMP_ID = #{tPaymentInfo.empId}
</if>
<if test="tPaymentInfo.empIdcard != null and tPaymentInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD = #{tPaymentInfo.empIdcard}
</if>
<if test="tPaymentInfo.unitId != null and tPaymentInfo.unitId.trim() != ''">
AND a.UNIT_ID = #{tPaymentInfo.unitId}
</if>
<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
</if>
<if test="tPaymentInfo.socialHousehold != null and tPaymentInfo.socialHousehold.trim() != ''">
AND a.SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold}
</if>
<if test="tPaymentInfo.socialSecurityNo != null and tPaymentInfo.socialSecurityNo.trim() != ''">
AND a.SOCIAL_SECURITY_NO = #{tPaymentInfo.socialSecurityNo}
</if>
<if test="tPaymentInfo.socialPayAddr != null and tPaymentInfo.socialPayAddr.trim() != ''">
AND a.SOCIAL_PAY_ADDR = #{tPaymentInfo.socialPayAddr}
</if>
<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
AND a.SOCIAL_PAY_MONTH = #{tPaymentInfo.socialPayMonth}
</if>
<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
AND a.SOCIAL_CREATE_MONTH = #{tPaymentInfo.socialCreateMonth}
</if>
<if test="tPaymentInfo.lockStatus != null and tPaymentInfo.lockStatus.trim() != ''">
AND a.LOCK_STATUS = #{tPaymentInfo.lockStatus}
</if>
<if test="tPaymentInfo.socialSettlementFlag != null and tPaymentInfo.socialSettlementFlag.trim() != ''">
AND a.SOCIAL_SETTLEMENT_FLAG = #{tPaymentInfo.socialSettlementFlag}
</if>
<if test="tPaymentInfo.fundSettlementFlag != null and tPaymentInfo.fundSettlementFlag.trim() != ''">
AND a.FUND_SETTLEMENT_FLAG = #{tPaymentInfo.fundSettlementFlag}
</if>
<if test="tPaymentInfo.sumAll != null">
AND a.SUM_ALL = #{tPaymentInfo.sumAll}
</if>
<if test="tPaymentInfo.providentPayMonth != null and tPaymentInfo.providentPayMonth.trim() != ''">
AND a.PROVIDENT_PAY_MONTH = #{tPaymentInfo.providentPayMonth}
</if>
<if test="tPaymentInfo.providentCreateMonth != null and tPaymentInfo.providentCreateMonth.trim() != ''">
AND a.PROVIDENT_CREATE_MONTH = #{tPaymentInfo.providentCreateMonth}
</if>
<if test="tPaymentInfo.providentHousehold != null and tPaymentInfo.providentHousehold.trim() != ''">
AND a.PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold}
</if>
<if test="tPaymentInfo.providentPayAddr != null and tPaymentInfo.providentPayAddr.trim() != ''">
AND a.PROVIDENT_PAY_ADDR = #{tPaymentInfo.providentPayAddr}
</if>
<if test="tPaymentInfo.fundProvince != null and tPaymentInfo.fundProvince.trim() != ''">
AND a.FUND_PROVINCE = #{tPaymentInfo.fundProvince}
</if>
<if test="tPaymentInfo.fundCity != null and tPaymentInfo.fundCity.trim() != ''">
AND a.FUND_CITY = #{tPaymentInfo.fundCity}
</if>
<if test="tPaymentInfo.fundTown != null and tPaymentInfo.fundTown.trim() != ''">
AND a.FUND_TOWN = #{tPaymentInfo.fundTown}
</if>
<if test="tPaymentInfo.socialProvince != null and tPaymentInfo.socialProvince.trim() != ''">
AND a.SOCIAL_PROVINCE = #{tPaymentInfo.socialProvince}
</if>
<if test="tPaymentInfo.socialCity != null and tPaymentInfo.socialCity.trim() != ''">
AND a.SOCIAL_CITY = #{tPaymentInfo.socialCity}
</if>
<if test="tPaymentInfo.socialTown != null and tPaymentInfo.socialTown.trim() != ''">
AND a.SOCIAL_TOWN = #{tPaymentInfo.socialTown}
</if>
<if test="tPaymentInfo.socialId != null and tPaymentInfo.socialId.trim() != ''">
AND a.SOCIAL_ID = #{tPaymentInfo.socialId}
</if>
<if test="tPaymentInfo.fundId != null and tPaymentInfo.fundId.trim() != ''">
AND a.FUND_ID = #{tPaymentInfo.fundId}
</if>
<if test="tPaymentInfo.socialSum != null">
AND a.SOCIAL_SUM = #{tPaymentInfo.socialSum}
</if>
<if test="tPaymentInfo.unitSocialSum != null">
AND a.UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum}
</if>
<if test="tPaymentInfo.socialSecurityPersonalSum != null">
AND a.SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum}
</if>
<if test="tPaymentInfo.providentSum != null">
AND a.PROVIDENT_SUM = #{tPaymentInfo.providentSum}
</if>
<if test="tPaymentInfo.socialSettlementId != null and tPaymentInfo.socialSettlementId.trim() != ''">
AND a.SOCIAL_SETTLEMENT_ID = #{tPaymentInfo.socialSettlementId}
</if>
<if test="tPaymentInfo.fundSettlementId != null and tPaymentInfo.fundSettlementId.trim() != ''">
AND a.FUND_SETTLEMENT_ID = #{tPaymentInfo.fundSettlementId}
</if>
<if test="tPaymentInfo.salarySocialFlag != null and tPaymentInfo.salarySocialFlag.trim() != ''">
AND a.SALARY_SOCIAL_FLAG = #{tPaymentInfo.salarySocialFlag}
</if>
<if test="tPaymentInfo.salaryFundFlag != null and tPaymentInfo.salaryFundFlag.trim() != ''">
AND a.SALARY_FUND_FLAG = #{tPaymentInfo.salaryFundFlag}
</if>
<if test="tPaymentInfo.inauguralTeam != null and tPaymentInfo.inauguralTeam.trim() != ''">
AND a.INAUGURAL_TEAM = #{tPaymentInfo.inauguralTeam}
</if>
<if test="tPaymentInfo.telecomNumber != null and tPaymentInfo.telecomNumber.trim() != ''">
AND a.TELECOM_NUMBER = #{tPaymentInfo.telecomNumber}
</if>
<if test="tPaymentInfo.sortTime != null and tPaymentInfo.sortTime.trim() != ''">
AND a.SORT_TIME = #{tPaymentInfo.sortTime}
</if>
<if test="tPaymentInfo.agentId != null and tPaymentInfo.agentId.trim() != ''">
AND a.AGENT_ID = #{tPaymentInfo.agentId}
</if>
<if test="tPaymentInfo.financeBillId != null and tPaymentInfo.financeBillId.trim() != ''">
AND a.FINANCE_BILL_ID = #{tPaymentInfo.financeBillId}
</if>
<if test="tPaymentInfo.createBy != null and tPaymentInfo.createBy.trim() != ''">
AND a.CREATE_BY = #{tPaymentInfo.createBy}
</if>
<if test="tPaymentInfo.updateBy != null and tPaymentInfo.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tPaymentInfo.updateBy}
</if>
<if test="tPaymentInfo.createName != null and tPaymentInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tPaymentInfo.createName}
</if>
<if test="tPaymentInfo.createTime != null">
AND a.CREATE_TIME = #{tPaymentInfo.createTime}
</if>
<if test="tPaymentInfo.updateTime != null">
AND a.UPDATE_TIME = #{tPaymentInfo.updateTime}
</if>
</if>
</sql>
<!--tPaymentInfo简单分页查询-->
<select id="getTPaymentInfoPage" resultMap="tPaymentInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info a
<where>
1=1
<include refid="tPaymentInfo_where"/>
</where>
</select>
a.CREATE_TIME
</sql>
<sql id="base_column_list_all">
a.ID,
a.EMP_NAME,
a.EMP_NO,
a.EMP_ID,
a.EMP_IDCARD,
a.UNIT_ID,
a.SETTLE_DOMAIN_ID,
a.SOCIAL_HOUSEHOLD,
a.SOCIAL_SECURITY_NO,
a.SOCIAL_PAY_ADDR,
a.SOCIAL_PAY_MONTH,
a.SOCIAL_CREATE_MONTH,
a.CREATE_USER,
a.CREATE_TIME,
a.LAST_UPDATE_USER,
a.LAST_UPDATE_TIME,
a.LOCK_STATUS,
a.SUM_ALL,
a.PROVIDENT_PAY_MONTH,
a.PROVIDENT_CREATE_MONTH,
a.PROVIDENT_HOUSEHOLD,
a.PROVIDENT_PAY_ADDR,
a.FUND_PROVINCE,
a.FUND_CITY,
a.FUND_TOWN,
a.SOCIAL_PROVINCE,
a.SOCIAL_CITY,
a.SOCIAL_TOWN,
a.SOCIAL_ID,
a.FUND_ID,
a.SOCIAL_SUM,
a.UNIT_SOCIAL_SUM,
a.SOCIAL_SECURITY_PERSONAL_SUM,
a.PROVIDENT_SUM,
a.INAUGURAL_TEAM,
a.TELECOM_NUMBER,
a.SALARY_SOCIAL_FLAG,
a.SALARY_FUND_FLAG,
a.COMPANY_ACCRUAL,
a.PERSONAL_ACCRUAL,
a.UNIT_PENSION_SET,
a.UNIT_MEDICAL_SET,
a.UNIT_UNEMPLOYMENT_SET,
a.UNIT_INJURY_SET,
a.UNIT_BIRTH_SET,
a.PERSONAL_PENSION_SET,
a.PERSONAL_MEDICAL_SET,
a.PERSONAL_UNEMPLOYMENT_SET,
a.UNIT_PENSION_PER,
a.UNIT_MEDICAL_PER,
a.UNIT_UNEMPLOYMENT_PER,
a.UNIT_INJURY_PER,
a.UNIT_BIRTH_PER,
a.PERSONAL_PENSION_PER,
a.PERSONAL_MEDICAL_PER,
a.PERSONAL_UNEMPLOYMENT_PER,
a.UNIT_BIGAILMENT_PER,
a.PERSONAL_BIGAILMENT_PER,
a.UNIT_PENSION_MONEY,
a.UNIT_MEDICAL_MONEY,
a.UNIT_UNEMPLOYMENT_MONEY,
a.UNIT_INJURY_MONEY,
a.UNIT_BIRTH_MONEY,
a.UNIT_BIGMAILMENT_MONEY,
a.PERSONAL_PENSION_MONEY,
a.PERSONAL_MEDICAL_MONEY,
a.PERSONAL_UNEMPLOYMENT_MONEY,
a.PERSONAL_BIGMAILMENT_MONEY,
a.PROVIDENT_NO,
a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT,
a.UNIT_PROVIDENT_SUM,
a.PERSONAL_PROIDENT_SET,
a.PERSONAL_PROVIDENT_SUM
</sql>
<sql id="tPaymentInfo_where">
<if test="tPaymentInfo != null">
<if test="tPaymentInfo.id != null and tPaymentInfo.id.trim() != ''">
AND a.ID = #{tPaymentInfo.id}
</if>
<if test="tPaymentInfo.empName != null and tPaymentInfo.empName.trim() != ''">
AND a.EMP_NAME like CONCAT(#{tPaymentInfo.empName},'%')
</if>
<if test="tPaymentInfo.empNo != null and tPaymentInfo.empNo.trim() != ''">
AND a.EMP_NO like CONCAT(#{tPaymentInfo.empNo},'%')
</if>
<if test="tPaymentInfo.empId != null and tPaymentInfo.empId.trim() != ''">
AND a.EMP_ID = #{tPaymentInfo.empId}
</if>
<if test="tPaymentInfo.empIdcard != null and tPaymentInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD like CONCAT(#{tPaymentInfo.empIdcard},'%')
</if>
<if test="tPaymentInfo.unitId != null and tPaymentInfo.unitId.trim() != ''">
AND a.UNIT_ID = #{tPaymentInfo.unitId}
</if>
<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
</if>
<if test="tPaymentInfo.socialHousehold != null and tPaymentInfo.socialHousehold.trim() != ''">
AND a.SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold}
</if>
<if test="tPaymentInfo.socialSecurityNo != null and tPaymentInfo.socialSecurityNo.trim() != ''">
AND a.SOCIAL_SECURITY_NO like CONCAT(#{tPaymentInfo.socialSecurityNo},'%')
</if>
<if test="tPaymentInfo.socialPayAddr != null and tPaymentInfo.socialPayAddr.trim() != ''">
AND a.SOCIAL_PAY_ADDR = #{tPaymentInfo.socialPayAddr}
</if>
<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
AND a.SOCIAL_PAY_MONTH = #{tPaymentInfo.socialPayMonth}
</if>
<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
AND a.SOCIAL_CREATE_MONTH = #{tPaymentInfo.socialCreateMonth}
</if>
<if test="tPaymentInfo.lockStatus != null and tPaymentInfo.lockStatus.trim() != ''">
AND a.LOCK_STATUS = #{tPaymentInfo.lockStatus}
</if>
<if test="tPaymentInfo.socialSettlementFlag != null and tPaymentInfo.socialSettlementFlag.trim() != ''">
AND a.SOCIAL_SETTLEMENT_FLAG = #{tPaymentInfo.socialSettlementFlag}
</if>
<if test="tPaymentInfo.fundSettlementFlag != null and tPaymentInfo.fundSettlementFlag.trim() != ''">
AND a.FUND_SETTLEMENT_FLAG = #{tPaymentInfo.fundSettlementFlag}
</if>
<if test="tPaymentInfo.sumAll != null">
AND a.SUM_ALL = #{tPaymentInfo.sumAll}
</if>
<if test="tPaymentInfo.providentPayMonth != null and tPaymentInfo.providentPayMonth.trim() != ''">
AND a.PROVIDENT_PAY_MONTH = #{tPaymentInfo.providentPayMonth}
</if>
<if test="tPaymentInfo.providentCreateMonth != null and tPaymentInfo.providentCreateMonth.trim() != ''">
AND a.PROVIDENT_CREATE_MONTH = #{tPaymentInfo.providentCreateMonth}
</if>
<if test="tPaymentInfo.providentHousehold != null and tPaymentInfo.providentHousehold.trim() != ''">
AND a.PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold}
</if>
<if test="tPaymentInfo.providentPayAddr != null and tPaymentInfo.providentPayAddr.trim() != ''">
AND a.PROVIDENT_PAY_ADDR = #{tPaymentInfo.providentPayAddr}
</if>
<if test="tPaymentInfo.fundProvince != null and tPaymentInfo.fundProvince.trim() != ''">
AND a.FUND_PROVINCE = #{tPaymentInfo.fundProvince}
</if>
<if test="tPaymentInfo.fundCity != null and tPaymentInfo.fundCity.trim() != ''">
AND a.FUND_CITY = #{tPaymentInfo.fundCity}
</if>
<if test="tPaymentInfo.fundTown != null and tPaymentInfo.fundTown.trim() != ''">
AND a.FUND_TOWN = #{tPaymentInfo.fundTown}
</if>
<if test="tPaymentInfo.socialProvince != null and tPaymentInfo.socialProvince.trim() != ''">
AND a.SOCIAL_PROVINCE = #{tPaymentInfo.socialProvince}
</if>
<if test="tPaymentInfo.socialCity != null and tPaymentInfo.socialCity.trim() != ''">
AND a.SOCIAL_CITY = #{tPaymentInfo.socialCity}
</if>
<if test="tPaymentInfo.socialTown == null">
<if test="tPaymentInfo.socialCity != null">
AND (a.SOCIAL_CITY = '${tPaymentInfo.socialCity}' or a.FUND_CITY = '${tPaymentInfo.socialCity}')
</if>
<if test="tPaymentInfo.socialCity == null">
<if test="tPaymentInfo.socialProvince != null">
AND (a.SOCIAL_PROVINCE = '${tPaymentInfo.socialProvince}' or a.FUND_PROVINCE = '${tPaymentInfo.socialProvince}')
</if>
</if>
</if>
<if test="tPaymentInfo.socialTown != null and tPaymentInfo.socialTown.trim() != ''">
AND (a.SOCIAL_TOWN = '${tPaymentInfo.socialTown}' or a.FUND_TOWN = '${tPaymentInfo.socialTown}')
</if>
<if test="tPaymentInfo.socialId != null and tPaymentInfo.socialId.trim() != ''">
AND a.SOCIAL_ID = #{tPaymentInfo.socialId}
</if>
<if test="tPaymentInfo.fundId != null and tPaymentInfo.fundId.trim() != ''">
AND a.FUND_ID = #{tPaymentInfo.fundId}
</if>
<if test="tPaymentInfo.socialSum != null">
AND a.SOCIAL_SUM = #{tPaymentInfo.socialSum}
</if>
<if test="tPaymentInfo.unitSocialSum != null">
AND a.UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum}
</if>
<if test="tPaymentInfo.socialSecurityPersonalSum != null">
AND a.SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum}
</if>
<if test="tPaymentInfo.providentSum != null">
AND a.PROVIDENT_SUM = #{tPaymentInfo.providentSum}
</if>
<if test="tPaymentInfo.socialSettlementId != null and tPaymentInfo.socialSettlementId.trim() != ''">
AND a.SOCIAL_SETTLEMENT_ID = #{tPaymentInfo.socialSettlementId}
</if>
<if test="tPaymentInfo.fundSettlementId != null and tPaymentInfo.fundSettlementId.trim() != ''">
AND a.FUND_SETTLEMENT_ID = #{tPaymentInfo.fundSettlementId}
</if>
<if test="tPaymentInfo.salarySocialFlag != null and tPaymentInfo.salarySocialFlag.trim() != ''">
AND a.SALARY_SOCIAL_FLAG = #{tPaymentInfo.salarySocialFlag}
</if>
<if test="tPaymentInfo.salaryFundFlag != null and tPaymentInfo.salaryFundFlag.trim() != ''">
AND a.SALARY_FUND_FLAG = #{tPaymentInfo.salaryFundFlag}
</if>
<if test="tPaymentInfo.inauguralTeam != null and tPaymentInfo.inauguralTeam.trim() != ''">
AND a.INAUGURAL_TEAM = #{tPaymentInfo.inauguralTeam}
</if>
<if test="tPaymentInfo.telecomNumber != null and tPaymentInfo.telecomNumber.trim() != ''">
AND a.TELECOM_NUMBER = #{tPaymentInfo.telecomNumber}
</if>
<if test="tPaymentInfo.sortTime != null and tPaymentInfo.sortTime.trim() != ''">
AND a.SORT_TIME = #{tPaymentInfo.sortTime}
</if>
<if test="tPaymentInfo.agentId != null and tPaymentInfo.agentId.trim() != ''">
AND a.AGENT_ID = #{tPaymentInfo.agentId}
</if>
<if test="tPaymentInfo.financeBillId != null and tPaymentInfo.financeBillId.trim() != ''">
AND a.FINANCE_BILL_ID = #{tPaymentInfo.financeBillId}
</if>
<if test="tPaymentInfo.companyAccrual != null">
AND a.COMPANY_ACCRUAL = #{tPaymentInfo.companyAccrual}
</if>
<if test="tPaymentInfo.personalAccrual != null">
AND a.PERSONAL_ACCRUAL = #{tPaymentInfo.personalAccrual}
</if>
<if test="tPaymentInfo.unitPensionSet != null">
AND a.UNIT_PENSION_SET = #{tPaymentInfo.unitPensionSet}
</if>
<if test="tPaymentInfo.unitMedicalSet != null">
AND a.UNIT_MEDICAL_SET = #{tPaymentInfo.unitMedicalSet}
</if>
<if test="tPaymentInfo.unitUnemploymentSet != null">
AND a.UNIT_UNEMPLOYMENT_SET = #{tPaymentInfo.unitUnemploymentSet}
</if>
<if test="tPaymentInfo.unitInjurySet != null">
AND a.UNIT_INJURY_SET = #{tPaymentInfo.unitInjurySet}
</if>
<if test="tPaymentInfo.unitBirthSet != null">
AND a.UNIT_BIRTH_SET = #{tPaymentInfo.unitBirthSet}
</if>
<if test="tPaymentInfo.personalPensionSet != null">
AND a.PERSONAL_PENSION_SET = #{tPaymentInfo.personalPensionSet}
</if>
<if test="tPaymentInfo.personalMedicalSet != null">
AND a.PERSONAL_MEDICAL_SET = #{tPaymentInfo.personalMedicalSet}
</if>
<if test="tPaymentInfo.personalUnemploymentSet != null">
AND a.PERSONAL_UNEMPLOYMENT_SET = #{tPaymentInfo.personalUnemploymentSet}
</if>
<if test="tPaymentInfo.unitPensionPer != null">
AND a.UNIT_PENSION_PER = #{tPaymentInfo.unitPensionPer}
</if>
<if test="tPaymentInfo.unitMedicalPer != null">
AND a.UNIT_MEDICAL_PER = #{tPaymentInfo.unitMedicalPer}
</if>
<if test="tPaymentInfo.unitUnemploymentPer != null">
AND a.UNIT_UNEMPLOYMENT_PER = #{tPaymentInfo.unitUnemploymentPer}
</if>
<if test="tPaymentInfo.unitInjuryPer != null">
AND a.UNIT_INJURY_PER = #{tPaymentInfo.unitInjuryPer}
</if>
<if test="tPaymentInfo.unitBirthPer != null">
AND a.UNIT_BIRTH_PER = #{tPaymentInfo.unitBirthPer}
</if>
<if test="tPaymentInfo.personalPensionPer != null">
AND a.PERSONAL_PENSION_PER = #{tPaymentInfo.personalPensionPer}
</if>
<if test="tPaymentInfo.personalMedicalPer != null">
AND a.PERSONAL_MEDICAL_PER = #{tPaymentInfo.personalMedicalPer}
</if>
<if test="tPaymentInfo.personalUnemploymentPer != null">
AND a.PERSONAL_UNEMPLOYMENT_PER = #{tPaymentInfo.personalUnemploymentPer}
</if>
<if test="tPaymentInfo.unitBigailmentPer != null">
AND a.UNIT_BIGAILMENT_PER = #{tPaymentInfo.unitBigailmentPer}
</if>
<if test="tPaymentInfo.personalBigailmentPer != null">
AND a.PERSONAL_BIGAILMENT_PER = #{tPaymentInfo.personalBigailmentPer}
</if>
<if test="tPaymentInfo.unitPensionMoney != null">
AND a.UNIT_PENSION_MONEY = #{tPaymentInfo.unitPensionMoney}
</if>
<if test="tPaymentInfo.unitMedicalMoney != null">
AND a.UNIT_MEDICAL_MONEY = #{tPaymentInfo.unitMedicalMoney}
</if>
<if test="tPaymentInfo.unitUnemploymentMoney != null">
AND a.UNIT_UNEMPLOYMENT_MONEY = #{tPaymentInfo.unitUnemploymentMoney}
</if>
<if test="tPaymentInfo.unitInjuryMoney != null">
AND a.UNIT_INJURY_MONEY = #{tPaymentInfo.unitInjuryMoney}
</if>
<if test="tPaymentInfo.unitBirthMoney != null">
AND a.UNIT_BIRTH_MONEY = #{tPaymentInfo.unitBirthMoney}
</if>
<if test="tPaymentInfo.unitBigmailmentMoney != null">
AND a.UNIT_BIGMAILMENT_MONEY = #{tPaymentInfo.unitBigmailmentMoney}
</if>
<if test="tPaymentInfo.personalPensionMoney != null">
AND a.PERSONAL_PENSION_MONEY = #{tPaymentInfo.personalPensionMoney}
</if>
<if test="tPaymentInfo.personalMedicalMoney != null">
AND a.PERSONAL_MEDICAL_MONEY = #{tPaymentInfo.personalMedicalMoney}
</if>
<if test="tPaymentInfo.personalUnemploymentMoney != null">
AND a.PERSONAL_UNEMPLOYMENT_MONEY = #{tPaymentInfo.personalUnemploymentMoney}
</if>
<if test="tPaymentInfo.personalBigmailmentMoney != null">
AND a.PERSONAL_BIGMAILMENT_MONEY = #{tPaymentInfo.personalBigmailmentMoney}
</if>
<if test="tPaymentInfo.providentNo != null and tPaymentInfo.providentNo.trim() != ''">
AND a.PROVIDENT_NO = #{tPaymentInfo.providentNo}
</if>
<if test="tPaymentInfo.unitProvidentSet != null">
AND a.UNIT_PROVIDENT_SET = #{tPaymentInfo.unitProvidentSet}
</if>
<if test="tPaymentInfo.providentPercent != null">
AND a.PROVIDENT_PERCENT = #{tPaymentInfo.providentPercent}
</if>
<if test="tPaymentInfo.unitProvidentSum != null">
AND a.UNIT_PROVIDENT_SUM = #{tPaymentInfo.unitProvidentSum}
</if>
<if test="tPaymentInfo.personalProidentSet != null">
AND a.PERSONAL_PROIDENT_SET = #{tPaymentInfo.personalProidentSet}
</if>
<if test="tPaymentInfo.personalProvidentSum != null">
AND a.PERSONAL_PROVIDENT_SUM = #{tPaymentInfo.personalProvidentSum}
</if>
<if test="tPaymentInfo.createBy != null and tPaymentInfo.createBy.trim() != ''">
AND a.CREATE_BY = #{tPaymentInfo.createBy}
</if>
<if test="tPaymentInfo.updateTime != null">
AND a.UPDATE_TIME = #{tPaymentInfo.updateTime}
</if>
<if test="tPaymentInfo.updateBy != null and tPaymentInfo.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tPaymentInfo.updateBy}
</if>
<if test="tPaymentInfo.createName != null and tPaymentInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tPaymentInfo.createName}
</if>
<if test="tPaymentInfo.createTime != null">
AND a.CREATE_TIME = #{tPaymentInfo.createTime}
</if>
</if>
</sql>
<sql id="tPaymentInfo_export_where">
<if test="tPaymentInfo != null">
<if test="tPaymentInfo.idList != null">
AND a.id in
<foreach item="idStr" index="index" collection="tPaymentInfo.idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tPaymentInfo.idList == null">
<if test="tPaymentInfo.id != null and tPaymentInfo.id.trim() != ''">
AND a.ID = #{tPaymentInfo.id}
</if>
<if test="tPaymentInfo.empName != null and tPaymentInfo.empName.trim() != ''">
AND a.EMP_NAME like CONCAT(#{tPaymentInfo.empName},'%')
</if>
<if test="tPaymentInfo.empNo != null and tPaymentInfo.empNo.trim() != ''">
AND a.EMP_NO like CONCAT(#{tPaymentInfo.empNo},'%')
</if>
<if test="tPaymentInfo.empId != null and tPaymentInfo.empId.trim() != ''">
AND a.EMP_ID = #{tPaymentInfo.empId}
</if>
<if test="tPaymentInfo.empIdcard != null and tPaymentInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD like CONCAT(#{tPaymentInfo.empIdcard},'%')
</if>
<if test="tPaymentInfo.unitId != null and tPaymentInfo.unitId.trim() != ''">
AND a.UNIT_ID = #{tPaymentInfo.unitId}
</if>
<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
</if>
<if test="tPaymentInfo.socialHousehold != null and tPaymentInfo.socialHousehold.trim() != ''">
AND a.SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold}
</if>
<if test="tPaymentInfo.socialSecurityNo != null and tPaymentInfo.socialSecurityNo.trim() != ''">
AND a.SOCIAL_SECURITY_NO like CONCAT(#{tPaymentInfo.socialSecurityNo},'%')
</if>
<if test="tPaymentInfo.socialPayAddr != null and tPaymentInfo.socialPayAddr.trim() != ''">
AND a.SOCIAL_PAY_ADDR = #{tPaymentInfo.socialPayAddr}
</if>
<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
AND a.SOCIAL_PAY_MONTH = #{tPaymentInfo.socialPayMonth}
</if>
<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
AND a.SOCIAL_CREATE_MONTH = #{tPaymentInfo.socialCreateMonth}
</if>
<if test="tPaymentInfo.lockStatus != null and tPaymentInfo.lockStatus.trim() != ''">
AND a.LOCK_STATUS = #{tPaymentInfo.lockStatus}
</if>
<if test="tPaymentInfo.socialSettlementFlag != null and tPaymentInfo.socialSettlementFlag.trim() != ''">
AND a.SOCIAL_SETTLEMENT_FLAG = #{tPaymentInfo.socialSettlementFlag}
</if>
<if test="tPaymentInfo.fundSettlementFlag != null and tPaymentInfo.fundSettlementFlag.trim() != ''">
AND a.FUND_SETTLEMENT_FLAG = #{tPaymentInfo.fundSettlementFlag}
</if>
<if test="tPaymentInfo.sumAll != null">
AND a.SUM_ALL = #{tPaymentInfo.sumAll}
</if>
<if test="tPaymentInfo.providentPayMonth != null and tPaymentInfo.providentPayMonth.trim() != ''">
AND a.PROVIDENT_PAY_MONTH = #{tPaymentInfo.providentPayMonth}
</if>
<if test="tPaymentInfo.providentCreateMonth != null and tPaymentInfo.providentCreateMonth.trim() != ''">
AND a.PROVIDENT_CREATE_MONTH = #{tPaymentInfo.providentCreateMonth}
</if>
<if test="tPaymentInfo.providentHousehold != null and tPaymentInfo.providentHousehold.trim() != ''">
AND a.PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold}
</if>
<if test="tPaymentInfo.providentPayAddr != null and tPaymentInfo.providentPayAddr.trim() != ''">
AND a.PROVIDENT_PAY_ADDR = #{tPaymentInfo.providentPayAddr}
</if>
<if test="tPaymentInfo.fundProvince != null and tPaymentInfo.fundProvince.trim() != ''">
AND a.FUND_PROVINCE = #{tPaymentInfo.fundProvince}
</if>
<if test="tPaymentInfo.fundCity != null and tPaymentInfo.fundCity.trim() != ''">
AND a.FUND_CITY = #{tPaymentInfo.fundCity}
</if>
<if test="tPaymentInfo.fundTown != null and tPaymentInfo.fundTown.trim() != ''">
AND a.FUND_TOWN = #{tPaymentInfo.fundTown}
</if>
<if test="tPaymentInfo.socialProvince != null and tPaymentInfo.socialProvince.trim() != ''">
AND a.SOCIAL_PROVINCE = #{tPaymentInfo.socialProvince}
</if>
<if test="tPaymentInfo.socialCity != null and tPaymentInfo.socialCity.trim() != ''">
AND a.SOCIAL_CITY = #{tPaymentInfo.socialCity}
</if>
<if test="tPaymentInfo.socialTown == null">
<if test="tPaymentInfo.socialCity != null">
AND (a.SOCIAL_CITY = '${tPaymentInfo.socialCity}' or a.FUND_CITY = '${tPaymentInfo.socialCity}')
</if>
<if test="tPaymentInfo.socialCity == null">
<if test="tPaymentInfo.socialProvince != null">
AND (a.SOCIAL_PROVINCE = '${tPaymentInfo.socialProvince}' or a.FUND_PROVINCE = '${tPaymentInfo.socialProvince}')
</if>
</if>
</if>
<if test="tPaymentInfo.socialTown != null and tPaymentInfo.socialTown.trim() != ''">
AND (a.SOCIAL_TOWN = '${tPaymentInfo.socialTown}' or a.FUND_TOWN = '${tPaymentInfo.socialTown}')
</if>
<if test="tPaymentInfo.socialId != null and tPaymentInfo.socialId.trim() != ''">
AND a.SOCIAL_ID = #{tPaymentInfo.socialId}
</if>
<if test="tPaymentInfo.fundId != null and tPaymentInfo.fundId.trim() != ''">
AND a.FUND_ID = #{tPaymentInfo.fundId}
</if>
<if test="tPaymentInfo.socialSum != null">
AND a.SOCIAL_SUM = #{tPaymentInfo.socialSum}
</if>
<if test="tPaymentInfo.unitSocialSum != null">
AND a.UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum}
</if>
<if test="tPaymentInfo.socialSecurityPersonalSum != null">
AND a.SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum}
</if>
<if test="tPaymentInfo.providentSum != null">
AND a.PROVIDENT_SUM = #{tPaymentInfo.providentSum}
</if>
<if test="tPaymentInfo.socialSettlementId != null and tPaymentInfo.socialSettlementId.trim() != ''">
AND a.SOCIAL_SETTLEMENT_ID = #{tPaymentInfo.socialSettlementId}
</if>
<if test="tPaymentInfo.fundSettlementId != null and tPaymentInfo.fundSettlementId.trim() != ''">
AND a.FUND_SETTLEMENT_ID = #{tPaymentInfo.fundSettlementId}
</if>
<if test="tPaymentInfo.salarySocialFlag != null and tPaymentInfo.salarySocialFlag.trim() != ''">
AND a.SALARY_SOCIAL_FLAG = #{tPaymentInfo.salarySocialFlag}
</if>
<if test="tPaymentInfo.salaryFundFlag != null and tPaymentInfo.salaryFundFlag.trim() != ''">
AND a.SALARY_FUND_FLAG = #{tPaymentInfo.salaryFundFlag}
</if>
<if test="tPaymentInfo.inauguralTeam != null and tPaymentInfo.inauguralTeam.trim() != ''">
AND a.INAUGURAL_TEAM = #{tPaymentInfo.inauguralTeam}
</if>
<if test="tPaymentInfo.telecomNumber != null and tPaymentInfo.telecomNumber.trim() != ''">
AND a.TELECOM_NUMBER = #{tPaymentInfo.telecomNumber}
</if>
<if test="tPaymentInfo.sortTime != null and tPaymentInfo.sortTime.trim() != ''">
AND a.SORT_TIME = #{tPaymentInfo.sortTime}
</if>
<if test="tPaymentInfo.agentId != null and tPaymentInfo.agentId.trim() != ''">
AND a.AGENT_ID = #{tPaymentInfo.agentId}
</if>
<if test="tPaymentInfo.financeBillId != null and tPaymentInfo.financeBillId.trim() != ''">
AND a.FINANCE_BILL_ID = #{tPaymentInfo.financeBillId}
</if>
<if test="tPaymentInfo.companyAccrual != null">
AND a.COMPANY_ACCRUAL = #{tPaymentInfo.companyAccrual}
</if>
<if test="tPaymentInfo.personalAccrual != null">
AND a.PERSONAL_ACCRUAL = #{tPaymentInfo.personalAccrual}
</if>
<if test="tPaymentInfo.unitPensionSet != null">
AND a.UNIT_PENSION_SET = #{tPaymentInfo.unitPensionSet}
</if>
<if test="tPaymentInfo.unitMedicalSet != null">
AND a.UNIT_MEDICAL_SET = #{tPaymentInfo.unitMedicalSet}
</if>
<if test="tPaymentInfo.unitUnemploymentSet != null">
AND a.UNIT_UNEMPLOYMENT_SET = #{tPaymentInfo.unitUnemploymentSet}
</if>
<if test="tPaymentInfo.unitInjurySet != null">
AND a.UNIT_INJURY_SET = #{tPaymentInfo.unitInjurySet}
</if>
<if test="tPaymentInfo.unitBirthSet != null">
AND a.UNIT_BIRTH_SET = #{tPaymentInfo.unitBirthSet}
</if>
<if test="tPaymentInfo.personalPensionSet != null">
AND a.PERSONAL_PENSION_SET = #{tPaymentInfo.personalPensionSet}
</if>
<if test="tPaymentInfo.personalMedicalSet != null">
AND a.PERSONAL_MEDICAL_SET = #{tPaymentInfo.personalMedicalSet}
</if>
<if test="tPaymentInfo.personalUnemploymentSet != null">
AND a.PERSONAL_UNEMPLOYMENT_SET = #{tPaymentInfo.personalUnemploymentSet}
</if>
<if test="tPaymentInfo.unitPensionPer != null">
AND a.UNIT_PENSION_PER = #{tPaymentInfo.unitPensionPer}
</if>
<if test="tPaymentInfo.unitMedicalPer != null">
AND a.UNIT_MEDICAL_PER = #{tPaymentInfo.unitMedicalPer}
</if>
<if test="tPaymentInfo.unitUnemploymentPer != null">
AND a.UNIT_UNEMPLOYMENT_PER = #{tPaymentInfo.unitUnemploymentPer}
</if>
<if test="tPaymentInfo.unitInjuryPer != null">
AND a.UNIT_INJURY_PER = #{tPaymentInfo.unitInjuryPer}
</if>
<if test="tPaymentInfo.unitBirthPer != null">
AND a.UNIT_BIRTH_PER = #{tPaymentInfo.unitBirthPer}
</if>
<if test="tPaymentInfo.personalPensionPer != null">
AND a.PERSONAL_PENSION_PER = #{tPaymentInfo.personalPensionPer}
</if>
<if test="tPaymentInfo.personalMedicalPer != null">
AND a.PERSONAL_MEDICAL_PER = #{tPaymentInfo.personalMedicalPer}
</if>
<if test="tPaymentInfo.personalUnemploymentPer != null">
AND a.PERSONAL_UNEMPLOYMENT_PER = #{tPaymentInfo.personalUnemploymentPer}
</if>
<if test="tPaymentInfo.unitBigailmentPer != null">
AND a.UNIT_BIGAILMENT_PER = #{tPaymentInfo.unitBigailmentPer}
</if>
<if test="tPaymentInfo.personalBigailmentPer != null">
AND a.PERSONAL_BIGAILMENT_PER = #{tPaymentInfo.personalBigailmentPer}
</if>
<if test="tPaymentInfo.unitPensionMoney != null">
AND a.UNIT_PENSION_MONEY = #{tPaymentInfo.unitPensionMoney}
</if>
<if test="tPaymentInfo.unitMedicalMoney != null">
AND a.UNIT_MEDICAL_MONEY = #{tPaymentInfo.unitMedicalMoney}
</if>
<if test="tPaymentInfo.unitUnemploymentMoney != null">
AND a.UNIT_UNEMPLOYMENT_MONEY = #{tPaymentInfo.unitUnemploymentMoney}
</if>
<if test="tPaymentInfo.unitInjuryMoney != null">
AND a.UNIT_INJURY_MONEY = #{tPaymentInfo.unitInjuryMoney}
</if>
<if test="tPaymentInfo.unitBirthMoney != null">
AND a.UNIT_BIRTH_MONEY = #{tPaymentInfo.unitBirthMoney}
</if>
<if test="tPaymentInfo.unitBigmailmentMoney != null">
AND a.UNIT_BIGMAILMENT_MONEY = #{tPaymentInfo.unitBigmailmentMoney}
</if>
<if test="tPaymentInfo.personalPensionMoney != null">
AND a.PERSONAL_PENSION_MONEY = #{tPaymentInfo.personalPensionMoney}
</if>
<if test="tPaymentInfo.personalMedicalMoney != null">
AND a.PERSONAL_MEDICAL_MONEY = #{tPaymentInfo.personalMedicalMoney}
</if>
<if test="tPaymentInfo.personalUnemploymentMoney != null">
AND a.PERSONAL_UNEMPLOYMENT_MONEY = #{tPaymentInfo.personalUnemploymentMoney}
</if>
<if test="tPaymentInfo.personalBigmailmentMoney != null">
AND a.PERSONAL_BIGMAILMENT_MONEY = #{tPaymentInfo.personalBigmailmentMoney}
</if>
<if test="tPaymentInfo.providentNo != null and tPaymentInfo.providentNo.trim() != ''">
AND a.PROVIDENT_NO = #{tPaymentInfo.providentNo}
</if>
<if test="tPaymentInfo.unitProvidentSet != null">
AND a.UNIT_PROVIDENT_SET = #{tPaymentInfo.unitProvidentSet}
</if>
<if test="tPaymentInfo.providentPercent != null">
AND a.PROVIDENT_PERCENT = #{tPaymentInfo.providentPercent}
</if>
<if test="tPaymentInfo.unitProvidentSum != null">
AND a.UNIT_PROVIDENT_SUM = #{tPaymentInfo.unitProvidentSum}
</if>
<if test="tPaymentInfo.personalProidentSet != null">
AND a.PERSONAL_PROIDENT_SET = #{tPaymentInfo.personalProidentSet}
</if>
<if test="tPaymentInfo.personalProvidentSum != null">
AND a.PERSONAL_PROVIDENT_SUM = #{tPaymentInfo.personalProvidentSum}
</if>
<if test="tPaymentInfo.createBy != null and tPaymentInfo.createBy.trim() != ''">
AND a.CREATE_BY = #{tPaymentInfo.createBy}
</if>
<if test="tPaymentInfo.updateTime != null">
AND a.UPDATE_TIME = #{tPaymentInfo.updateTime}
</if>
<if test="tPaymentInfo.updateBy != null and tPaymentInfo.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tPaymentInfo.updateBy}
</if>
<if test="tPaymentInfo.createName != null and tPaymentInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tPaymentInfo.createName}
</if>
<if test="tPaymentInfo.createTime != null">
AND a.CREATE_TIME = #{tPaymentInfo.createTime}
</if>
</if>
</if>
</sql>
<resultMap id="tPaymentAllInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoVo">
<id property="id" column="ID"/>
<result property="empName" column="EMP_NAME"/>
<result property="empNo" column="EMP_NO"/>
<result property="empId" column="EMP_ID"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="unitId" column="UNIT_ID"/>
<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
<result property="lockStatus" column="LOCK_STATUS"/>
<result property="socialSettlementFlag" column="SOCIAL_SETTLEMENT_FLAG"/>
<result property="fundSettlementFlag" column="FUND_SETTLEMENT_FLAG"/>
<result property="sumAll" column="SUM_ALL"/>
<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
<result property="socialId" column="SOCIAL_ID"/>
<result property="fundId" column="FUND_ID"/>
<result property="socialSum" column="SOCIAL_SUM"/>
<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
<result property="providentSum" column="PROVIDENT_SUM"/>
<result property="socialSettlementId" column="SOCIAL_SETTLEMENT_ID"/>
<result property="fundSettlementId" column="FUND_SETTLEMENT_ID"/>
<result property="companyAccrual" column="COMPANY_ACCRUAL"/>
<result property="personalAccrual" column="PERSONAL_ACCRUAL"/>
<result property="unitPensionSet" column="UNIT_PENSION_SET"/>
<result property="unitMedicalSet" column="UNIT_MEDICAL_SET"/>
<result property="unitUnemploymentSet" column="UNIT_UNEMPLOYMENT_SET"/>
<result property="unitInjurySet" column="UNIT_INJURY_SET"/>
<result property="unitBirthSet" column="UNIT_BIRTH_SET"/>
<result property="personalPensionSet" column="PERSONAL_PENSION_SET"/>
<result property="personalMedicalSet" column="PERSONAL_MEDICAL_SET"/>
<result property="personalUnemploymentSet" column="PERSONAL_UNEMPLOYMENT_SET"/>
<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
<result property="unitBigailmentPer" column="UNIT_BIGAILMENT_PER"/>
<result property="personalBigailmentPer" column="PERSONAL_BIGAILMENT_PER"/>
<result property="unitPensionMoney" column="UNIT_PENSION_MONEY"/>
<result property="unitMedicalMoney" column="UNIT_MEDICAL_MONEY"/>
<result property="unitUnemploymentMoney" column="UNIT_UNEMPLOYMENT_MONEY"/>
<result property="unitInjuryMoney" column="UNIT_INJURY_MONEY"/>
<result property="unitBirthMoney" column="UNIT_BIRTH_MONEY"/>
<result property="unitBigmailmentMoney" column="UNIT_BIGMAILMENT_MONEY"/>
<result property="personalPensionMoney" column="PERSONAL_PENSION_MONEY"/>
<result property="personalMedicalMoney" column="PERSONAL_MEDICAL_MONEY"/>
<result property="personalUnemploymentMoney" column="PERSONAL_UNEMPLOYMENT_MONEY"/>
<result property="personalBigmailmentMoney" column="PERSONAL_BIGMAILMENT_MONEY"/>
<result property="socialSum" column="SOCIAL_SUM"/>
<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
<result property="socialCity" column="SOCIAL_CITY"/>
<result property="socialTown" column="SOCIAL_TOWN"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="providentNo" column="PROVIDENT_NO"/>
<result property="unitProvidentSet" column="UNIT_PROVIDENT_SET"/>
<result property="providentPercent" column="PROVIDENT_PERCENT"/>
<result property="unitProvidentSum" column="UNIT_PROVIDENT_SUM"/>
<result property="personalProidentSet" column="PERSONAL_PROIDENT_SET"/>
<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
<result property="providentSum" column="PROVIDENT_SUM"/>
<result property="fundProvince" column="FUND_PROVINCE"/>
<result property="fundCity" column="FUND_CITY"/>
<result property="fundTown" column="FUND_TOWN"/>
<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
<result property="telecomNumber" column="TELECOM_NUMBER"/>
<result property="salarySocialFlag" column="SALARY_SOCIAL_FLAG"/>
<result property="salaryFundFlag" column="SALARY_FUND_FLAG"/>
</resultMap>
<!--tPaymentInfo简单分页查询-->
<select id="getTPaymentInfoPage" resultMap="tPaymentInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info a
<where>
1=1
<include refid="tPaymentInfo_where"/>
</where>
ORDER BY a.CREATE_TIME desc
</select>
<!--tPaymentInfo不分页查询-->
<select id="getTPaymentInfoNoPage" resultMap="tPaymentInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info a
<where>
1=1
<include refid="tPaymentInfo_export_where"/>
</where>
ORDER BY a.CREATE_TIME desc
limit #{tPaymentInfo.limitStart},#{tPaymentInfo.limitEnd}
</select>
<!--tPaymentInfo数量查询-->
<select id="selectCountTPaymentInfo" resultType="java.lang.Integer">
SELECT
count(1)
FROM t_payment_info a
<where>
1=1
<include refid="tPaymentInfo_export_where"/>
</where>
</select>
<update id="updateDeleteInfo">
update t_payment_info
<trim prefix="SET" suffixOverrides=",">
<if test="tPaymentInfo != null">
<if test="tPaymentInfo.sumAll != null">
SUM_ALL = #{tPaymentInfo.sumAll},
</if>
<if test="tPaymentInfo.socialSum != null">
SOCIAL_SUM = #{tPaymentInfo.socialSum},
</if>
<if test="tPaymentInfo.unitSocialSum != null">
UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum},
</if>
<if test="tPaymentInfo.socialSecurityPersonalSum != null">
SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum},
</if>
<if test="tPaymentInfo.socialHousehold != null">
SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold},
</if>
<if test="tPaymentInfo.socialHousehold == null">
SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold},
</if>
<if test="tPaymentInfo.providentSum != null ">
PROVIDENT_SUM = #{tPaymentInfo.providentSum},
</if>
<if test="tPaymentInfo.providentHousehold != null">
PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold},
</if>
<if test="tPaymentInfo.providentHousehold == null">
PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold},
</if>
<if test="tPaymentInfo.socialId != ''">
SOCIAL_ID = #{tPaymentInfo.socialId},
</if>
<if test="tPaymentInfo.fundId != ''">
FUND_ID = #{tPaymentInfo.fundId},
</if>
<if test="tPaymentInfo.unitId != null">
UNIT_ID = #{tPaymentInfo.unitId},
</if>
<if test="tPaymentInfo.settleDomainId != null">
SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId},
</if>
</if>
</trim>
where ID = #{tPaymentInfo.id}
</update>
<!--tPaymentInfo 按ID查收缴费库包含社保和公积金明细的数据查询-->
<select id="getAllInfoById" resultMap="tPaymentAllInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info a
where a.ID = #{id}
</select>
<select id="selectListForPaymentImport" resultMap="tPaymentInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_payment_info a
where 1=1
<if test="months != null and months.size > 0">
AND (a.SOCIAL_PAY_MONTH in
<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
#{item}
</foreach>
or a.PROVIDENT_PAY_MONTH in
<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
#{item}
</foreach>
)
</if>
<if test="idcards != null and idcards.size > 0">
AND a.EMP_IDCARD IN
<foreach item="item" index="index" collection="idcards" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
<!--tPaymentInfo 按ID查收缴费库包含社保和公积金明细的数据查询-->
<select id="selectPaymentAllInfoByMonthAndIdCard" resultMap="tPaymentAllInfoMap">
SELECT
<include refid="base_column_list_all"/>,
FROM t_payment_info a
where 1=1
<if test="months != null and months.size > 0">
AND (a.SOCIAL_PAY_MONTH in
<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
#{item}
</foreach>
or a.PROVIDENT_PAY_MONTH in
<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
#{item}
</foreach>
)
</if>
<if test="idcards != null and idcards.size > 0">
AND A.EMP_IDCARD IN
<foreach item="item" index="index" collection="idcards" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
<!--tPaymentInfo 查询缴费库要删除的数据-->
<select id="selectListForDelete" resultType="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo">
select
<include refid="Base_Column_List"/>
from t_payment_info
<where>
1=1
<if test="queryEntity != null">
<if test="queryEntity.createUser != null and queryEntity.createUser.trim() != ''">
AND CREATE_BY = #{queryEntity.createBy}
</if>
<if test="queryEntity.socialCreateMonth != null and queryEntity.socialCreateMonth.trim() != ''">
AND SOCIAL_CREATE_MONTH = #{queryEntity.socialCreateMonth}
</if>
<if test="queryEntity.providentCreateMonth != null and queryEntity.providentCreateMonth.trim() != ''">
AND PROVIDENT_CREATE_MONTH = #{queryEntity.providentCreateMonth}
</if>
<if test="queryEntity.settleDomainId != null and queryEntity.settleDomainId.trim() != ''">
AND SETTLE_DOMAIN_ID = #{queryEntity.settleDomainId}
</if>
<if test="queryEntity.unitId != null and queryEntity.unitId.trim() != ''">
AND UNIT_ID = #{queryEntity.unitId}
</if>
<if test="queryEntity.empIdcard != null and queryEntity.empIdcard.trim() != ''">
AND EMP_IDCARD = #{queryEntity.empIdcard}
</if>
<if test="queryEntity.socialHousehold != null and queryEntity.socialHousehold.trim() != ''">
AND SOCIAL_HOUSEHOLD = #{queryEntity.socialHousehold}
</if>
<if test="queryEntity.providentHousehold != null and queryEntity.providentHousehold.trim() != ''">
AND PROVIDENT_HOUSEHOLD = #{queryEntity.providentHousehold}
</if>
AND CREATE_TIME > DATE_ADD(curdate(),interval -day(curdate())+1 day)
</if>
</where>
</select>
</mapper>
......@@ -561,6 +561,7 @@
1=1
<include refid="tPreDispatchInfo_where"/>
</where>
ORDER BY a.CREATE_TIME desc
</select>
<!--tPreDispatchInfo无分页查询-->
<select id="getListForExport" resultMap="tPreDispatchExportMap">
......
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