Commit 1657500c authored by 李灿灿's avatar 李灿灿

Merge branch 'develop' into feature-licancan

parents 9df9367c 29a27c01
......@@ -28,7 +28,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import com.yifu.cloud.plus.v1.check.entity.TCheckMobile;
import com.yifu.cloud.plus.v1.yifu.archives.constants.EmployeeConstants;
......@@ -49,7 +48,6 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
......@@ -64,7 +62,6 @@ import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* 人员档案表
......@@ -2079,17 +2076,21 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
// 新增项目档案不需要返回ID
saveProject(empAddsMap, projectsMap);
// 新增合同
saveContract(projectsMap, contractsMap);
saveContract(projectsMap, contractsMap,empAddsMap);
addVo.setProjectsMap(projectsMap);
addVo.setEmpAddsMap(empAddsMap);
addVo.setContractsMap(contractsMap);
return addVo;
}
private void saveContract(Map<String, EmpProjectDispatchVo> projectsMap, Map<String, EmpContractDispatchVo> contractsMap) {
private void saveContract(Map<String, EmpProjectDispatchVo> projectsMap,
Map<String, EmpContractDispatchVo> contractsMap,
Map<String, EmpAddDispatchVo> empAddsMap) {
if (Common.isNotNull(contractsMap)) {
EmpContractDispatchVo contractAdd;
TEmployeeContractInfo contract;
EmpAddDispatchVo emp;
EmpProjectDispatchVo project;
for (Map.Entry<String, EmpContractDispatchVo> entry : contractsMap.entrySet()) {
contractAdd = entry.getValue();
try {
......@@ -2097,11 +2098,15 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
contract = new TEmployeeContractInfo();
BeanUtil.copyProperties(contractAdd, contract);
if (Common.isEmpty(contract.getEmpId()) && Common.isNotNull(projectsMap)) {
EmpProjectDispatchVo project = projectsMap.get(contract.getEmpIdcard());
project = projectsMap.get(contract.getEmpIdcard());
if (Common.isNotNull(project)) {
contract.setEmpId(project.getId());
contract.setEmpNo(project.getEmpNo());
}
emp = empAddsMap.get(contract.getEmpIdcard());
if (Common.isNotNull(emp)){
contract.setEmpId(emp.getId());
}
}
contractMapper.insert(contract);
contractAdd.setId(contract.getId());
......
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;
}
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("------------每月定时生成下月预估库数据-定时任务结束------------");
}
}
......@@ -32,6 +32,8 @@ public class DispatchConstants {
public static final String DISPATCH_FUND_ADD_FAIL = "公积金派增办理失败:";
public static final String DISPATCH_FUND_REDUCE = "公积金派减";
public static final String DISPATCH_SOCIAL_REDUCE = "社保派减";
public static final String SOCIAL_RECORD_ROSTER_EXPORT = "社保花名册导出";
public static final String SOCIAL_RECORD_EXPORT = "公积金变更清册导出";
/**
......@@ -82,7 +84,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String PARAM_EMPLOYEE_ID_EMPTY = "传参有误:员工ID不可为空";
......@@ -92,7 +93,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String NO_EMPLOYEE_OF_ID = "无对应员工ID的员工信息";
......@@ -102,7 +102,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String EMPLOYEE_SOCIAL_FUND_INFO ="员工、社保、公积金信息";
......@@ -112,7 +111,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String DISPATCH_ID_NOT_EMPTY ="派单ID不可为空,多个ID请用逗号分割!";
......@@ -122,7 +120,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String OFFICE = "offical";
......@@ -132,7 +129,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String ADD = "add";
......@@ -142,7 +138,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String MINUS = "minus";
......@@ -152,7 +147,6 @@ public class DispatchConstants {
* @Date 2022-01-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String UPDATE_RELATION_FROM_SALARY_FAILED = "更新缴费库薪资结算状态失败,请重新尝试或联系管理人员!";
......
......@@ -58,6 +58,14 @@ public class TProvidentFund extends BaseEntity {
@Schema(description = "公积金户" )
@ExcelProperty("公积金户" )
private String providentHousehold;
/**
* 公积金户名称
*/
@ExcelAttribute(name = "公积金户名称", maxLength = 32)
@Schema(description = "公积金户名称" )
@ExcelProperty("公积金户名称" )
private String providentHouseholdName;
/**
* 公积金起缴日期
*/
......
......@@ -58,6 +58,13 @@ public class TSocialInfo extends BaseEntity {
@Schema(description = "社保户" )
@ExcelProperty("社保户" )
private String socialHousehold;
/**
* 社保户名称
*/
@ExcelAttribute(name = "社保户名称", maxLength = 32)
@Schema(description = "社保户名称" )
@ExcelProperty("社保户名称" )
private String socialHouseholdName;
/**
* 社保起缴日期
*/
......
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Description 社保办理导出花名册
* @Date 19:25 2022/7/27
* @Param
* @return
**/
@Data
public class FundHandleExportVo implements Serializable {
/**
* 派单类型:0派增1派减
*/
@ExcelAttribute(name = "派单类型", errorInfo = "派单类型不能为空", maxLength = 1,isDataId = true,readConverterExp = "0=派增,1=派减",needExport = true)
@ExcelProperty("派单类型" )
private String type;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", errorInfo = "员工姓名不能为空", maxLength = 50,needExport = true)
@ExcelProperty("员工姓名" )
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", errorInfo = "员工身份证不能为空", maxLength = 20,needExport = true)
@ExcelProperty("员工身份证" )
private String empIdcard;
/**
* 所属单位
*/
@ExcelAttribute(name = "客户名称", isNotEmpty = true,needExport = true)
@Schema(description = "客户名称(所属单位)")
@ExcelProperty("客户名称" )
private String belongUnit;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", isNotEmpty = true,needExport = true)
@Schema(description = "项目名称(结算主体)")
@ExcelProperty("项目名称" )
private String settleDomain;
/**
* 手机号码
*/
@ExcelAttribute(name = "手机号码", maxLength = 20,needExport = true)
@ExcelProperty("手机号码" )
private String empMobile;
/**
* 创建人姓名
*/
@ExcelAttribute(name = "申请人",needExport = true)
@Schema(description = "申请人")
@ExcelProperty("申请人" )
private String creasteUserName;
/**
* 公积金缴纳地-省
*/
@ExcelAttribute(name = "公积金缴纳地-省", maxLength = 32, isDataId = true, isArea = true, parentField = "",needExport = true)
@ExcelProperty("公积金缴纳地-省" )
private String fundProvince;
/**
* 公积金缴纳地-市
*/
@ExcelAttribute(name = "公积金缴纳地-市", maxLength = 32, isDataId = true, isArea = true, parentField = "fundProvince",needExport = true)
@ExcelProperty("公积金缴纳地-市" )
private String fundCity;
/**
* 公积金缴纳地-县
*/
@ExcelAttribute(name = "公积金缴纳地-县", maxLength = 32, isDataId = true, isArea = true, parentField = "fundCity",needExport = true)
@ExcelProperty("公积金缴纳地-县" )
private String fundTown;
/**
* 公积金起缴日期
*/
@ExcelAttribute(name = "公积金起缴日期", errorInfo = "公积金起缴日期不能为空",needExport = true)
@ExcelProperty("公积金起缴日期" )
private LocalDateTime providentStart;
/**
* 单位公积金缴纳基数
*/
@ExcelAttribute(name = "单位公积金缴纳基数", errorInfo = "单位公积金缴纳基数不能为空",needExport = true)
@ExcelProperty("单位公积金缴纳基数" )
private BigDecimal unitProvidengCardinal;
/**
* 单位公积金缴纳比例
*/
@ExcelAttribute(name = "单位公积金缴纳比例", errorInfo = "单位公积金缴纳比例不能为空",needExport = true)
@ExcelProperty("单位公积金缴纳比例" )
private BigDecimal unitProvidentPer;
/**
* 单位公积金缴纳费用
*/
@ExcelAttribute(name = "单位公积金缴纳费用", isNotEmpty = true, errorInfo = "单位公积金缴纳费用不能为空",needExport = true)
@ExcelProperty("单位公积金缴纳费用" )
private BigDecimal unitProvidentFee;
/**
* 个人公积金缴纳基数
*/
@ExcelAttribute(name = "个人公积金缴纳基数", errorInfo = "个人公积金缴纳基数不能为空",needExport = true)
@ExcelProperty("个人公积金缴纳基数" )
private BigDecimal personalProvidentCardinal;
/**
* 个人公积金缴纳比例
*/
@ExcelAttribute(name = "个人公积金缴纳比例", errorInfo = "个人公积金缴纳比例不能为空",needExport = true)
@ExcelProperty("个人公积金缴纳比例" )
private BigDecimal personalProvidentPer;
/**
* 个人公积金缴纳费用
*/
@ExcelAttribute(name = "个人公积金缴纳费用", isNotEmpty = true, errorInfo = "个人公积金缴纳费用不能为空",needExport = true)
@ExcelProperty("个人公积金缴纳费用" )
private BigDecimal personalProvidentFee;
/**
* 公积金户
*/
@ExcelAttribute(name = "公积金户", errorInfo = "公积金户不能为空", maxLength = 32,needExport = true)
@ExcelProperty("公积金户" )
private String providentHouseholdName;
/**
*
*委托备注
**/
@ExcelAttribute(name = "委托备注",needExport = true)
@ExcelProperty("委托备注" )
private String fundTrustRemark;
/*******************************导出字段结束*************************************************/
}
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Description 公积金补缴清册
* @Date 19:04 2022/7/27
* @Param
* @return
**/
@Data
public class FundSupplementaryExportVo implements Serializable {
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", errorInfo = "员工姓名不能为空", maxLength = 50,needExport = true)
private String empName;
/**
* 公积金起缴日期
*/
@NotBlank(message = "公积金起缴日期不能为空")
@ExcelAttribute(name = "公积金起缴日期", errorInfo = "公积金起缴日期不能为空",needExport = true)
@Schema(description = "公积金起缴日期")
private LocalDateTime providentStart;
/**
* 单位公积金缴纳基数
*/
@NotBlank(message = "单位公积金缴纳基数不能为空")
@ExcelAttribute(name = "单位公积金缴纳基数", errorInfo = "单位公积金缴纳基数不能为空",needExport = true)
@Schema(description = "单位公积金缴纳基数")
private BigDecimal unitProvidengCardinal;
/**
* 单位公积金缴纳比例
*/
@NotBlank(message = "单位公积金缴纳比例不能为空")
@ExcelAttribute(name = "单位公积金缴纳比例", errorInfo = "单位公积金缴纳比例不能为空",needExport = true)
@Schema(description = "单位公积金缴纳比例")
private BigDecimal unitProvidentPer;
/**
* 单位公积金缴纳费用
*/
@NotBlank(message = "单位公积金缴纳费用不能为空")
@ExcelAttribute(name = "单位公积金缴纳费用", isNotEmpty = true, errorInfo = "单位公积金缴纳费用不能为空",needExport = true)
@Schema(description = "单位公积金缴纳费用")
private BigDecimal unitProvidentFee;
/**
* 个人公积金缴纳基数
*/
@NotBlank(message = "个人公积金缴纳基数不能为空")
@ExcelAttribute(name = "个人公积金缴纳基数", errorInfo = "个人公积金缴纳基数不能为空",needExport = true)
@Schema(description = "个人公积金缴纳基数")
private BigDecimal personalProvidentCardinal;
/**
* 个人公积金缴纳比例
*/
@NotBlank(message = "个人公积金缴纳比例不能为空")
@ExcelAttribute(name = "个人公积金缴纳比例", errorInfo = "个人公积金缴纳比例不能为空",needExport = true)
@Schema(description = "个人公积金缴纳比例")
private BigDecimal personalProvidentPer;
/**
* 个人公积金缴纳费用
*/
@NotBlank(message = "个人公积金缴纳费用不能为空")
@ExcelAttribute(name = "个人公积金缴纳费用", isNotEmpty = true, errorInfo = "个人公积金缴纳费用不能为空",needExport = true)
@Schema(description = "个人公积金缴纳费用")
private BigDecimal personalProvidentFee;
/*******************************导出字段结束*************************************************/
}
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.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Description 社保办理导出花名册
* @Date 15:21 2022/7/27
* @Param
* @return
**/
@Data
public class SocialHandleExportVo implements Serializable {
/**
* 派单类型:0派增1派减
*/
@ExcelAttribute(name = "派单类型", errorInfo = "派单类型不能为空", maxLength = 1,isDataId = true, readConverterExp = "0=派增,1=派减",needExport = true)
@ExcelProperty("派单类型" )
private String type;
/**
* 社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3已派减 4办理中 (20210609派单拆分新增fxj) 5部分办理失败
*/
@Schema(description = "社保办理状态")
@ExcelAttribute(name = "社保办理状态", readConverterExp = "0=未办理,1=全部办理成功,2=全部办理失败,3=已派减,4=办理中,5=部分办理失败", needExport = true)
@ExcelProperty("社保办理状态" )
private String socialHandleStatus;
/**
* 养老办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "养老状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="养老办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("养老状态" )
private String pensionHandle;
/**
* 医疗办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "医疗状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="医疗办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("医疗状态" )
private String medicalHandle;
/**
* 失业办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "失业状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="失业办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("失业状态" )
private String unemployHandle;
/**
* 工伤办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "工伤状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="工伤办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("工伤状态" )
private String workInjuryHandle;
/**
* 生育办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "生育状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="生育办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("生育状态" )
private String birthHandle;
/**
* 大病办理状态:0待办理1办理成功2办理失败3已派减
*/
@ExcelAttribute(name = "大病状态" , maxLength = 1 , readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减,null=——", needExport = true)
@Schema(description="大病办理状态:0待办理1办理成功2办理失败3已派减")
@ExcelProperty("大病状态" )
private String bigailmentHandle;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", errorInfo = "员工姓名不能为空", maxLength = 50,needExport = true)
@ExcelProperty("员工姓名" )
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", errorInfo = "员工身份证不能为空", maxLength = 20,needExport = true)
@ExcelProperty("员工身份证" )
private String empIdcard;
/**
* 学历
*/
@ExcelAttribute(name = "学历", maxLength = 32,needExport = true)
@Schema(description = "学历")
@ExcelProperty("学历" )
private String educationName;
/**
* 所属单位
*/
@ExcelAttribute(name = "客户名称", isNotEmpty = true,needExport = true)
@Schema(description = "客户名称(所属单位)")
@ExcelProperty("客户名称" )
private String belongUnit;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", isNotEmpty = true,needExport = true)
@Schema(description = "项目名称(结算主体)")
@ExcelProperty("项目名称" )
private String settleDomain;
/**
* 员工类型
*/
@ExcelAttribute(name = "员工类型", errorInfo = "员工类型不能为空", maxLength = 1, isDataId = true,dataType = ExcelAttributeConstants.PERSONNEL_TYPE,needExport = true)
@ExcelProperty("员工类型" )
private String empType;
/**
* 就职岗位
*/
@ExcelAttribute(name = "岗位", maxLength = 50,needExport = true)
@Schema(description = "岗位")
@ExcelProperty("岗位" )
private String post;
/**
* 员工电话
*/
@ExcelAttribute(name = "手机号码", maxLength = 20,needExport = true)
@ExcelProperty("手机号码" )
private String empMobile;
/**
* 户口性质
*/
@ExcelAttribute(name = "户口性质", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.HOUSEHOLD_NATURE,needExport = true)
@Schema(description = "户口性质")
@ExcelProperty("户口性质" )
private String empRegisType;
/**
* 民族
*/
@ExcelAttribute(name = "民族", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.NATION,needExport = true)
@Schema(description = "民族")
@ExcelProperty("民族" )
private String empNational;
/**
* 工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制
*/
@ExcelAttribute(name = "工时制", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.WORKING_HOURS,needExport = true)
@Schema(description = "工时制")
@ExcelProperty("工时制" )
private String workingHours;
/**
* 合同年限
*/
@ExcelAttribute(name = "合同年限", errorInfo = "合同年限不能为空",needExport = true)
@Schema(description = "合同年限")
@ExcelProperty("合同年限" )
private Double contractTerm;
/**
* 合同起始时间
*/
@ExcelAttribute(name = "合同起始时间", errorInfo = "合同起始时间不能为空",dateFormat = DateUtil.ISO_DATE_FORMAT,needExport = true)
@Schema(description = "合同起始时间")
@ExcelProperty("合同起始时间" )
private LocalDate contractStart;
/**
* 合同到期时间
*/
@ExcelAttribute(name = "合同到期时间",needExport = true,dateFormat = DateUtil.ISO_DATE_FORMAT)
@Schema(description = "合同到期时间")
@ExcelProperty("合同到期时间" )
private LocalDate contractEnd;
/**
* 创建人姓名
*/
@ExcelAttribute(name = "申请人",needExport = true)
@Schema(description = "申请人")
@ExcelProperty("申请人" )
private String creasteUserName;
/**
* 备案基数
*/
@ExcelAttribute(name = "备案基数",needExport = true)
@Schema(description = "备案基数")
@ExcelProperty("备案基数" )
private String recordBase;
/**
* 缴纳类型(0最低缴纳、1自定义缴纳、2最高缴纳)
*/
@ExcelAttribute(name = "缴纳类型",isDataId = true,readConverterExp = "0=最低缴纳,1=自定义缴纳,2=最高缴纳",needExport = true)
@Schema(description = "缴纳类型(0最低缴纳、1自定义缴纳、2最高缴纳)")
@ExcelProperty("缴纳类型" )
private Integer paymentType;
/**
* 社保户
*/
@ExcelAttribute(name = "社保户", needExport = true)
@Schema(description = "社保户")
@ExcelProperty("社保户" )
private String socialHouseholdName;
/**
* 缴纳地-省
*/
@ExcelAttribute(name = "社保缴纳地-省", maxLength = 32, isDataId = true, isArea = true, parentField = "",needExport = true)
@Schema(description = "社保缴纳地-省")
@ExcelProperty("社保缴纳地-省" )
private Integer socialProvince;
/**
* 缴纳地-市
*/
@ExcelAttribute(name = "社保缴纳地-市", maxLength = 32, isDataId = true, isArea = true, parentField = "socialProvince",needExport = true)
@Schema(description = "社保缴纳地-市")
@ExcelProperty("社保缴纳地-市" )
private Integer socialCity;
/**
* 缴纳地-县
*/
@ExcelAttribute(name = "社保缴纳地-县", maxLength = 32, isDataId = true, isArea = true, parentField = "socialCity",needExport = true)
@Schema(description = "社保缴纳地-县")
@ExcelProperty("社保缴纳地-县" )
private Integer socialTown;
/**
* 养老起缴日期
*/
@ExcelAttribute(name = "养老起缴日期", needExport = true)
@Schema(description="养老起缴日期")
@ExcelProperty("养老起缴日期" )
private LocalDateTime pensionStart;;
/**
* 养老基数
*/
@ExcelAttribute(name = "养老基数", isFloat = true,needExport = true)
@Schema(description = "养老基数")
@ExcelProperty("养老基数" )
private BigDecimal unitPensionCardinal;
/**
* 医疗起缴日期
*/
@ExcelAttribute(name = "医疗起缴日期", needExport = true)
@Schema(description="医疗起缴日期")
@ExcelProperty("医疗起缴日期" )
private LocalDateTime medicalStart;
/**
* 医疗基数
*/
@ExcelAttribute(name = "医疗基数",isFloat = true,needExport = true)
@Schema(description = "医疗基数")
@ExcelProperty("医疗基数" )
private BigDecimal unitMedicalCardinal;
/**
* 失业起缴日期
*/
@ExcelAttribute(name = "失业起缴日期", needExport = true)
@Schema(description="失业起缴日期")
@ExcelProperty("失业起缴日期" )
private LocalDateTime unemployStart;
/**
* 失业基数
*/
@ExcelAttribute(name = "失业基数", isFloat = true,needExport = true)
@Schema(description = "失业基数")
@ExcelProperty("失业基数" )
private BigDecimal unitUnemploymentCardinal;
/**
* 工伤起缴日期
*/
@ExcelAttribute(name = "工伤起缴日期", needExport = true)
@Schema(description="工伤起缴日期")
@ExcelProperty("工伤起缴日期" )
private LocalDateTime workInjuryStart;
/**
* 工伤基数
*/
@ExcelAttribute(name = "工伤基数", isFloat = true,needExport = true)
@Schema(description = "工伤基数")
@ExcelProperty("工伤基数" )
private BigDecimal unitWorkInjuryCardinal;
/**
* 生育起缴日期
*/
@ExcelAttribute(name = "生育起缴日期", needExport = true)
@Schema(description="生育起缴日期")
@ExcelProperty("生育起缴日期" )
private LocalDateTime birthStart;
/**
* 生育基数
*/
@ExcelAttribute(name = "生育基数", isFloat = true,needExport = true)
@Schema(description = "生育基数")
@ExcelProperty("生育基数" )
private BigDecimal unitBirthCardinal;
/**
* 大病起缴日期
*/
@ExcelAttribute(name = "大病起缴日期", needExport = true)
@Schema(description="大病起缴日期")
@ExcelProperty("大病起缴日期" )
private LocalDateTime bigailmentStart;
/**
* 大病缴纳基数
*/
@ExcelAttribute(name = "大病缴纳基数" )
@Schema(description="大病缴纳基数")
@ExcelProperty("大病缴纳基数" )
private BigDecimal unitBigailmentCardinal;
/**
* 单位大病缴纳金额
*/
@ExcelAttribute(name = "单位大病金额",needExport = true)
@Schema(description = "单位大病金额")
@ExcelProperty("单位大病金额" )
private BigDecimal unitBigailmentMoney;
/**
* 个人大病金额
*/
@ExcelAttribute(name = "个人大病金额",needExport = true)
@Schema(description = "个人大病金额")
@ExcelProperty("个人大病金额" )
private BigDecimal personalBigailmentMoney;
/**
*
*委托备注
**/
@ExcelAttribute(name = "委托备注",needExport = true)
@Schema(description = "委托备注")
@ExcelProperty("委托备注" )
private String socailTrustRemark;
/**
* 减少原因
*/
@ExcelAttribute(name = "减少原因" ,needExport = true)
@Schema(description="减少原因")
@ExcelProperty("减少原因" )
private String reduceReason;
}
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Date 2022/7/27
* @Description
* @Version 1.0
*/
@Data
public class SocialHandleSearchVo extends TDispatchInfo {
//派单开始时间(查询专用)
@ExcelAttribute(name = "创建开始时间")
@TableField(exist = false)
private LocalDateTime createTimeStart;
//派单截止时间(查询专用)
@ExcelAttribute(name = "创建截止时间")
@TableField(exist = false)
private LocalDateTime createTimeEnd;
/**
* 社保户
*/
@Schema(description = "社保户" )
@TableField(exist = false)
private String socialHouseholdName;
/**
* 公积金户
*/
@Schema(description = "公积金户" )
@TableField(exist = false)
private String providentHouseholdName;
/**
* @Author fxj
* 查询数据起
**/
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
private int limitEnd;
}
......@@ -37,6 +37,7 @@ import java.util.Date;
* @author fxj
* @date 2022-07-15 11:38:05
*/
@Schema(description = "社保公积金查询-导出使用" )
@Data
public class TSocialFundInfoExportVo extends RowIndex implements Serializable {
......
......@@ -28,18 +28,24 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.DispatchDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
/**
......@@ -112,20 +118,39 @@ public class TDispatchInfoController {
}
/**
* 简单分页查询--审核
* 简单分页查询--社保办理列表
* @param page 分页对象
* @param tDispatchInfo 派单信息记录表--审核
* @param tDispatchInfo 派单信息记录表--社保办理列表
* @return
*/
@Operation(description = "简单分页查询--审核")
@GetMapping("/pageHandle")
public R<IPage<TDispatchInfo>> getTDispatchHandlePage(Page<TDispatchInfo> page, TDispatchInfoSearchVo tDispatchInfo) {
tDispatchInfo.setStatus(CommonConstants.ONE_STRING);
return new R<>(tDispatchInfoService.getTDispatchInfoPage(page,tDispatchInfo));
@Operation(description = "简单分页查询--社保办理列表")
@GetMapping("/pageSocialHandle")
public R<IPage<TDispatchInfo>> getTDispatchSocialHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo) {
// 获取结算主体权限 TODO
List<String> settleDomains = null;
// 获取自定义sql TODO
String sql = CommonConstants.EMPTY_STRING;
return new R<>(tDispatchInfoService.getTDispatchSocialHandlePage(page,tDispatchInfo,settleDomains,sql));
}
/**
* 简单分页查询--公积金办理列表
* @param page 分页对象
* @param tDispatchInfo 派单信息记录表--公积金办理列表
* @return
*/
@Operation(description = "简单分页查询--公积金办理列表")
@GetMapping("/pageFundHandle")
public R<IPage<TDispatchInfo>> getTDispatchFundHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo) {
// 获取结算主体权限 TODO
List<String> settleDomains = null;
// 获取自定义sql TODO
String sql = CommonConstants.EMPTY_STRING;
return new R<>(tDispatchInfoService.getTDispatchFundHandlePage(page,tDispatchInfo,settleDomains,sql));
}
/**
* 通过id查询派单信息记录表
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tdispatchinfo_get')")
......@@ -268,4 +293,62 @@ public class TDispatchInfoController {
@RequestParam(name = "socialType", required = false) String socialType) {
return tDispatchInfoService.addApplyHandle(ids,typeSub,handleStatus,handleRemark,socialType);
}
/**
* @Author fxj
* @Description 导出 社保花名册
* @Date 17:40 2022/7/27
* @Param
* @return
**/
@PostMapping("/doexportSocialRecordRoster")
@Operation(description = "导出社保花名册 hasPermission('wxhr:tdispatchinfo_doexportSocialRecordRoster')")
@SysLog("导出社保花名册信息")
@PreAuthorize("@pms.hasPermission('wxhr:tdispatchinfo_doexportSocialRecordRoster')")
public void doexportSocialRecordRoster(HttpServletResponse response, HttpServletRequest request,
@RequestParam(name = "idStr", required = false) String idStr,
@RequestBody String[] exportFields, SocialHandleSearchVo searchVo) {
tDispatchInfoService.doexportSocialRecordRoster(response,searchVo,idStr,exportFields);
}
/**
* @Author fxj
* @Description 导出 公积金变更清册
* @Date 20:05 2022/7/27
* @Param
* @return
**/
@PostMapping("/doexportFundRecordChange")
@Operation(description = "导出公积金变更清册 hasPermission('wxhr:tdispatchinfo_doexportFundRecordChange')")
@SysLog("导出公积金变更清册")
@PreAuthorize("@pms.hasPermission('wxhr:tdispatchinfo_doexportFundRecordChange')")
public void doexportFundRecordChange(HttpServletResponse response, HttpServletRequest request,
@RequestParam(name = "idStr", required = false) String idStr,
@RequestBody String[] exportFields, SocialHandleSearchVo searchVo) {
// 获取结算主体权限 TODO
List<String> settleDomains = null;
// 获取自定义sql TODO
String sql = CommonConstants.EMPTY_STRING;
tDispatchInfoService.doexportFundRecordChange(response, idStr,searchVo,settleDomains,sql);
}
/**
* @Author fxj
* @Description 导出公积金补缴清册
* @Date 20:05 2022/7/27
* @Param
* @return
**/
@GetMapping("/doExportFundSupplementaryRecord")
@Operation(description = "导出公积金补缴清册 hasPermission('wxhr:tdispatchinfo_doExportFundSupplementaryRecord')")
@SysLog("导出公积金补缴清册")
@PreAuthorize("@pms.hasPermission('wxhr:tdispatchinfo_doExportFundSupplementaryRecord')")
public R<List<FundSupplementaryExportVo>> doExportFundSupplementaryRecord(HttpServletResponse response, HttpServletRequest request,
@RequestParam(name = "idStr", required = false) String idStr,
@RequestBody SocialHandleSearchVo searchVo) {
// 获取结算主体权限 TODO
List<String> settleDomains = null;
// 获取自定义sql TODO
String sql = CommonConstants.EMPTY_STRING;
return tDispatchInfoService.getFundSupplementaryRecords(idStr,searchVo,settleDomains,sql);
}
}
......@@ -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();
}
}
......@@ -20,10 +20,17 @@ package com.yifu.cloud.plus.v1.yifu.social.mapper;
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.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.FundHandleExportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.FundSupplementaryExportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.SocialHandleExportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.SocialHandleSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 派单信息记录表
*
......@@ -38,4 +45,85 @@ public interface TDispatchInfoMapper extends BaseMapper<TDispatchInfo> {
* @return
*/
IPage<TDispatchInfo> getTDispatchInfoPage(Page<TDispatchInfo> page, @Param("tDispatchInfo") TDispatchInfo tDispatchInfo);
/**
* 导出社保花名册数据查询
* @Author fxj
* @Date 2019-10-12
* @param dispatchInfo
* @param settleDomainIds
* @param idsStr
* @return
**/
List<SocialHandleExportVo> getSocialRecordRosterList(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("settleDomainIds")List<String> settleDomainIds,
@Param("idsStr") List<String> idsStr,
@Param("sql") String sql);
/**
* 导出社保花名册数据查询count
* @Author fxj
* @Date 2019-10-12
* @param dispatchInfo
* @param settleDomainIds
* @param idsStr
* @return
**/
int getSocialRecordRosterListCount(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("settleDomainIds")List<String> settleDomainIds,
@Param("idsStr") List<String> idsStr,
@Param("sql") String sql);
/**
* 社保页面查询
* @Author fxj
* @Date 2019-10-12
* @param tDispatchInfo
* @param settleDomains
* @param sql
* @return
**/
IPage<TDispatchInfo> getTDispatchSocialHandlePage(Page<TDispatchInfo> page,
@Param("tDispatchInfo") SocialHandleSearchVo tDispatchInfo,
@Param("settleDomainIds")List<String> settleDomains,
@Param("sql")String sql);
/**
* 公积金办理页面查询
* @Author fxj
* @Date 2019-10-12
* @param tDispatchInfo
* @param settleDomains
* @param sql
* @return
**/
IPage<TDispatchInfo> getTDispatchFundHandlePage(Page<TDispatchInfo> page,
@Param("tDispatchInfo")SocialHandleSearchVo tDispatchInfo,
@Param("settleDomainIds")List<String> settleDomains,
@Param("sql")String sql);
/**
* @Author fxj
* @Description 公积金补交清册
* @Date 19:47 2022/7/27
* @Param
* @return
**/
List<FundSupplementaryExportVo> getFundSupplementaryRecords(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("settleDomainIds")List<String> settleDomainIds,
@Param("idsStr") List<String> idsStr,
@Param("sql") String sql);
/**
* @Author fxj
* @Description 公积金变更清册cout
* @Date 19:47 2022/7/27
* @Param
* @return
**/
int getFundRecordCount(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("settleDomainIds")List<String> settleDomainIds,
@Param("idsStr") List<String> idsStr,
@Param("sql") String sql);
List<FundHandleExportVo> getFundRecordList(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("settleDomainIds")List<String> settleDomainIds,
@Param("idsStr") List<String> idsStr,
@Param("sql") String sql);
}
......@@ -23,9 +23,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.DispatchDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
......@@ -49,7 +51,12 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> {
List<TDispatchInfo> noPageDiy(TDispatchInfoSearchVo searchVo);
R<List<ErrorMessage>> importReduceDiy(InputStream inputStream);
@GlobalTransactional
void importTDispatchInfo(List<TDispatchImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
YifuUser user);
R<List<ErrorMessage>> importReduceDiy(InputStream inputStream);
R<Boolean> removeByIdDiy(String id);
......@@ -60,4 +67,14 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> {
R<List<ErrorMessage>> addApplyAudit(String ids,String auditStatus,String auditRemark);
R<List<ErrorMessage>> addApplyHandle(String ids,String typeSub,String handleStatus,String handleRemark,String socialType);
void doexportSocialRecordRoster(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields);
IPage<TDispatchInfo> getTDispatchSocialHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo, List<String> settleDomains, String sql);
IPage<TDispatchInfo> getTDispatchFundHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo, List<String> settleDomains, String sql);
R<List<FundSupplementaryExportVo>> getFundSupplementaryRecords(String idStr,SocialHandleSearchVo dispatchInfo, List<String> settleDomains, String sql);
void doexportFundRecordChange(HttpServletResponse response,String idStr, SocialHandleSearchVo searchVo, List<String> settleDomains, String sql);
}
......@@ -30,6 +30,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
......@@ -46,10 +48,7 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.*;
import com.yifu.cloud.plus.v1.yifu.social.mapper.*;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.util.ServiceUtil;
import com.yifu.cloud.plus.v1.yifu.social.vo.DispatchDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchImportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchReduceVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.*;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
......@@ -61,6 +60,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -103,7 +103,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
*/
@Override
public void listExport(HttpServletResponse response, TDispatchInfoSearchVo searchVo) {
String fileName = "不良记录批量导出" + DateUtil.getThisTime() + ".xlsx";
String fileName = "派单信息导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TDispatchInfo> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
......@@ -255,9 +255,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
return R.ok(errorMessageList);
}
@Override
@GlobalTransactional
private void importTDispatchInfo(List<TDispatchImportVo> excelVOList,
public void importTDispatchInfo(List<TDispatchImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
YifuUser user) {
if (!Common.isNotNull(excelVOList)){
......@@ -969,6 +969,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
social.setCanOverpay(socialSet.getCanOverpay());
social.setCardinalId(socialSet.getId());
social.setSocialHousehold(socialSet.getId());
social.setSocialHouseholdName(socialSet.getDepartName());
social.setCollectMoth(socialSet.getCollectMoth());
social.setCollectType(socialSet.getCollectType());
social.setHaveThisMonth(socialSet.getHaveThisMonth());
......@@ -1140,7 +1141,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
TDispatchImportVo excel,
DispatchEmpVo empVo) {
// 合同开始时间和截止时间一致直接跳过
if (excel.getContractStart().equals(empVo.getContractStart())
if (Common.isNotNull(excel.getContractStart())
&& Common.isNotNull(empVo)
&& Common.isNotNull(excel.getContractEnd())
&& excel.getContractStart().equals(empVo.getContractStart())
&& excel.getContractEnd().equals(empVo.getContractEnd())){
return;
}
......@@ -1493,6 +1497,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 初始化派单 和 社保公积金查询信息
dispatch = gettDispatchInfo(empVo, excel, socialFund);
try {
dispatch.setStatus(CommonConstants.ONE_STRING);
baseMapper.insert(dispatch);
socialFundMapper.updateById(socialFund);
}catch (Exception e){
......@@ -2089,14 +2094,14 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
sf.setSocialStatus(CommonConstants.EIGHT_STRING);
// 同步预估库数据 TODO
}
socialInfo.setHandleTime(now);
socialInfo.setHandleUser(user.getId());
if (CommonConstants.ONE_INT == flag) {
//派减办理不通过
socialInfo.setReduceCan(CommonConstants.dingleDigitStrArray[0]);//改成可派减状态
sf.setSocialReduceStatus(CommonConstants.THREE_STRING);
sf.setSocialStatus(CommonConstants.NINE_STRING);
}
socialInfo.setHandleTime(now);
socialInfo.setHandleUser(user.getId());
socialMapper.updateById(socialInfo);
dis.setSocialHandleRemark(ServiceUtil.ifNullToEmpty(handleRemark));
auditInfo = new TAuditInfo();
......@@ -2138,15 +2143,14 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
sf.setFundStatus(CommonConstants.SEVEN_STRING);
// 派减办理成功后,同步预估库数据清理 TODO
}
providentFund.setHandleTime(now);
providentFund.setHandleUser(user.getId().toString());
if (CommonConstants.ONE_INT == flag) {
//派减办理不通过
providentFund.setReduceCan(CommonConstants.dingleDigitStrArray[0]);//改成可派减状态
sf.setSocialReduceStatus(CommonConstants.THREE_STRING);
sf.setSocialStatus(CommonConstants.NINE_STRING);
// 同步预估库数据
sf.setFundReduceStatus(CommonConstants.THREE_STRING);
sf.setFundStatus(CommonConstants.EIGHT_STRING);
}
providentFund.setHandleTime(now);
providentFund.setHandleUser(user.getId());
fundMapper.updateById(providentFund);
dis.setFundHandleRemark(ServiceUtil.ifNullToEmpty(handleRemark));
if (CommonConstants.ZERO_INT == flag) {
......@@ -2163,21 +2167,21 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
}
//更新派单状态
if (null != auditInfo) {
if (Common.isNotNull(auditInfo)) {
//派增判断
if (CommonConstants.ZERO_STRING.equals(dis.getType())) {
if (null != socialInfo && null != providentFund
&& (
CommonConstants.ZERO_STRING.equals(socialInfo.getHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getHandleStatus())
|| CommonConstants.ZERO_STRING.equals(providentFund.getHandleStatus())
if (Common.isNotNull(socialInfo) && Common.isNotNull(providentFund)
&& (CommonConstants.ZERO_STRING.equals(socialInfo.getHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getHandleStatus())
|| CommonConstants.ZERO_STRING.equals(providentFund.getHandleStatus())
)) {
//同时有社保和公积金的只要有一条没办理就不改派单状态
} else {
if ((CommonConstants.ZERO_INT == flag || CommonConstants.ONE_INT == flag)
&& (socialInfo == null
|| (!CommonConstants.ZERO_STRING.equals(socialInfo.getHandleStatus())
&& !CommonConstants.FOUR_STRING.equals(socialInfo.getHandleStatus())))) {
if ((Common.isEmpty(dis.getSocialHandleStatus())
&& (CommonConstants.ONE_STRING.equals(dis.getSocialHandleStatus())
|| CommonConstants.TWO_STRING.equals(dis.getSocialHandleStatus())))
&& (Common.isEmpty(dis.getSocialHandleStatus())
&& (CommonConstants.ONE_STRING.equals(dis.getSocialHandleStatus()) || CommonConstants.TWO_STRING.equals(dis.getSocialHandleStatus())))) {
//办理成功 更新为办理完结 2020-05-26 办理失败 更新为办理完结 2020-05-26
dis.setStatus(CommonConstants.FOUR_STRING);
}
......@@ -2450,4 +2454,194 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialInfo.setBigailmentHandle(handleStatus);
}
}
/**
* @Author fxj
* @Description 导出 社保花名册
* @Date 17:40 2022/7/27
* @Param
* @return
**/
@Override
public void doexportSocialRecordRoster(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields) {
String fileName = DispatchConstants.SOCIAL_RECORD_ROSTER_EXPORT + LocalDateTime.now() + ".xlsx";
//获取要导出的列表
List<SocialHandleExportVo> list = new ArrayList<>();
// 结算主体权限 TODO
List<String> settleDomains = null;
// 自定义sql TODO
String sql = CommonConstants.EMPTY_STRING;
long count = getRecordRosterCount(searchVo,idStr,settleDomains,sql);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out, TEmpBadRecord.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = getRecordRosterList(searchVo,idStr,settleDomains,sql);
if (Common.isNotNull(list)){
ExcelUtil<SocialHandleExportVo> util = new ExcelUtil<>(SocialHandleExportVo.class);
for (SocialHandleExportVo vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet(ArchivesConstants.EMP_BAD_RECORD+index).build();
excelWriter.write(list,writeSheet);
index++;
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
}
if (Common.isNotNull(list)){
list.clear();
}
}
excelWriter.finish();
}else {
WriteSheet writeSheet = EasyExcel.writerSheet(ArchivesConstants.EMP_BAD_RECORD+index).build();
excelWriter.write(list,writeSheet);
excelWriter.finish();
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
/**
* @Author fxj
* @Description 社保花名册 count
* @Date 17:59 2022/7/27
* @Param
* @return
**/
private int getRecordRosterCount(SocialHandleSearchVo searchVo, String idStr, List<String> settleDomains, String sql) {
List<String> ids = new ArrayList<>();
if (Common.isNotNull(idStr)){
ids = Common.initStrToList(idStr,CommonConstants.COMMA_STRING);
}
return baseMapper.getSocialRecordRosterListCount(searchVo,ids,settleDomains,sql);
}
/**
* @Author fxj
* @Description 社保花名册 list
* @Date 17:59 2022/7/27
* @Param
* @return
**/
private List<SocialHandleExportVo> getRecordRosterList(SocialHandleSearchVo searchVo, String idStr, List<String> settleDomains, String sql) {
return baseMapper.getSocialRecordRosterList(searchVo,Common.getList(idStr),settleDomains,sql);
}
@Override
public IPage<TDispatchInfo> getTDispatchSocialHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo, List<String> settleDomains, String sql) {
return baseMapper.getTDispatchSocialHandlePage(page,tDispatchInfo,settleDomains,sql);
}
@Override
public IPage<TDispatchInfo> getTDispatchFundHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo,List<String> settleDomains, String sql) {
return baseMapper.getTDispatchFundHandlePage(page,tDispatchInfo,settleDomains,sql);
}
/**
* 导出公积金补缴清册
* @Author fxj
* @Date 2020-06-08
* @param idStr
* @param searchVo
* @return
**/
@Override
public R<List<FundSupplementaryExportVo>> getFundSupplementaryRecords(String idStr, SocialHandleSearchVo searchVo, List<String> settleDomains, String sql) {
return R.ok(baseMapper.getFundSupplementaryRecords(searchVo,Common.getList(idStr),settleDomains,sql));
}
/**
* @Author fxj
* @Description 导出公积金补缴清册
* @Date 20:05 2022/7/27
* @Param
* @return
**/
@Override
public void doexportFundRecordChange(HttpServletResponse response,String idStr, SocialHandleSearchVo searchVo, List<String> settleDomains, String sql) {
String fileName = DispatchConstants.SOCIAL_RECORD_EXPORT + LocalDateTime.now() + ".xlsx";
//获取要导出的列表
List<FundHandleExportVo> list = new ArrayList<>();
long count = getFundRecordCount(searchVo,idStr,settleDomains,sql);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out, TEmpBadRecord.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = getFundRecordList(searchVo,idStr,settleDomains,sql);
if (Common.isNotNull(list)){
ExcelUtil<FundHandleExportVo> util = new ExcelUtil<>(FundHandleExportVo.class);
for (FundHandleExportVo vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet(ArchivesConstants.EMP_BAD_RECORD+index).build();
excelWriter.write(list,writeSheet);
index++;
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
}
if (Common.isNotNull(list)){
list.clear();
}
}
excelWriter.finish();
}else {
WriteSheet writeSheet = EasyExcel.writerSheet(ArchivesConstants.EMP_BAD_RECORD+index).build();
excelWriter.write(list,writeSheet);
excelWriter.finish();
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
private List<FundHandleExportVo> getFundRecordList(SocialHandleSearchVo searchVo, String idStr, List<String> settleDomains, String sql) {
return baseMapper.getFundRecordList(searchVo,Common.getList(idStr),settleDomains,sql);
}
private long getFundRecordCount(SocialHandleSearchVo searchVo, String idStr, List<String> settleDomains, String sql) {
return baseMapper.getFundRecordCount(searchVo,Common.getList(idStr),settleDomains,sql);
}
}
......@@ -1656,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("执行失败!无需更新的数据!");
}
}
}
......@@ -93,10 +93,19 @@
<result property="idCardCity" column="ID_CARD_CITY"/>
<result property="idCardTown" column="ID_CARD_TOWN"/>
<result property="idCardAddress" column="ID_CARD_ADDRESS"/>
</resultMap>
<resultMap id="fundSupplementaryMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundSupplementaryExportVo">
<result property="providentStart" column="PROVIDENT_START"/>
<result property="unitProvidengCardinal" column="UNIT_PROVIDENG_CARDINAL"/>
<result property="personalProvidentCardinal" column="PERSONAL_PROVIDENT_CARDINAL"/>
<result property="unitProvidentPer" column="UNIT_PROVIDENT_PER"/>
<result property="personalProvidentPer" column="PERSONAL_PROVIDENT_PER"/>
<result property="unitProvidentFee" column="UNIT_PROVIDENT_FEE"/>
<result property="personalProvidentFee" column="PERSONAL_PROVIDENT_FEE"/>
<result property="empName" column="EMP_NAME"/>
</resultMap>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_ID,
......@@ -356,4 +365,382 @@
<include refid="tDispatchInfo_where"/>
</where>
</select>
<resultMap id="socialHandleExportMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.SocialHandleExportVo">
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="empType" column="EMP_TYPE"/>
<result property="empMobile" column="EMP_MOBILE"/>
<result property="empNational" column="EMP_NATIONAL"/>
<result property="type" column="TYPE"/>
<result property="settleDomain" column="SETTLE_DOMAIN_NAME"/>
<result property="reduceReason" column="REDUCE_REASON"/>
<result property="belongUnit" column="BELONG_UNIT_NAME"/>
<result property="contractStart" column="CONTRACT_START"/>
<result property="contractEnd" column="CONTRACT_END"/>
<result property="contractTerm" column="CONTRACT_TERM"/>
<result property="empRegisType" column="EMP_REGIS_TYPE"/>
<result property="post" column="POST"/>
<result property="socialHandleStatus" column="SOCIAL_HANDLE_STATUS"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
<result property="socialCity" column="SOCIAL_CITY"/>
<result property="socialTown" column="SOCIAL_TOWN"/>
<result property="workingHours" column="WORKING_HOURS"/>
<result property="educationName" column="EDUCATION_NAME"/>
<result property="socialHouseholdName" column="SOCIAL_HOUSEHOLD_NAME"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
<result property="socialCity" column="SOCIAL_CITY"/>
<result property="socialTown" column="SOCIAL_TOWN"/>
<result property="unitPensionCardinal" column="UNIT_PENSION_CARDINAL"/>
<result property="unitMedicalCardinal" column="UNIT_MEDICAL_CARDINAL"/>
<result property="unitUnemploymentCardinal" column="UNIT_UNEMPLOYMENT_CARDINAL"/>
<result property="unitWorkInjuryCardinal" column="UNIT_WORK_INJURY_CARDINAL"/>
<result property="unitBirthCardinal" column="UNIT_BIRTH_CARDINAL"/>
<result property="personalBigailmentMoney" column="PERSONAL_BIGAILMENT_MONEY"/>
<result property="unitBigailmentMoney" column="UNIT_BIGAILMENT_MONEY"/>
<result property="unitBigailmentCardinal" column="UNIT_BIGAILMENT_CARDINAL"/>
<result property="socailTrustRemark" column="TRUST_REMARK"/>
<result property="pensionStart" column="PENSION_START"/>
<result property="medicalStart" column="MEDICAL_START"/>
<result property="unemployStart" column="UNEMPLOY_START"/>
<result property="workInjuryStart" column="WORK_INJURY_START"/>
<result property="birthStart" column="BIRTH_START"/>
<result property="bigailmentStart" column="BIGAILMENT_START"/>
</resultMap>
<resultMap id="fundHandleMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundHandleExportVo">
<result property="type" column="TYPE"/>
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="belongUnit" column="BELONG_UNIT_NAME"/>
<result property="settleDomain" column="SETTLE_DOMAIN_NAME"/>
<result property="empMobile" column="EMP_MOBILE"/>
<result property="creasteUserName" column="CREATE_NAME"/>
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
<result property="providentStart" column="PROVIDENT_START"/>
<result property="unitProvidengCardinal" column="UNIT_PROVIDENG_CARDINAL"/>
<result property="personalProvidentCardinal" column="PERSONAL_PROVIDENT_CARDINAL"/>
<result property="unitProvidentPer" column="UNIT_PROVIDENT_PER"/>
<result property="personalProvidentPer" column="PERSONAL_PROVIDENT_PER"/>
<result property="unitProvidentFee" column="UNIT_PROVIDENT_FEE"/>
<result property="personalProvidentFee" column="PERSONAL_PROVIDENT_FEE"/>
<result property="fundProvince" column="FUND_PROVINCE"/>
<result property="fundCity" column="FUND_CITY"/>
<result property="fundTown" column="FUND_TOWN"/>
<result property="belongUnit" column="BELONG_UNIT_NAME"/>
</resultMap>
<!--tDispatchInfo 社保花名册数据查询-->
<select id="getSocialRecordRosterList" resultMap="socialHandleExportMap">
SELECT
a.TYPE,
a.SOCIAL_HANDLE_STATUS,
IF(a.TYPE='0',b.PENSION_HANDLE,IF(b.PENSION_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "PENSION_HANDLE",
IF(a.TYPE='0',b.MEDICAL_HANDLE,IF(b.MEDICAL_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "MEDICAL_HANDLE",
IF(a.TYPE='0',b.UNEMPLOY_HANDLE,IF(b.UNEMPLOY_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "UNEMPLOY_HANDLE",
IF(a.TYPE='0',b.WORK_INJURY_HANDLE,IF(b.WORK_INJURY_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "WORK_INJURY_HANDLE",
IF(a.TYPE='0',b.BIRTH_HANDLE,IF(b.BIRTH_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "BIRTH_HANDLE",
IF(a.TYPE='0',b.BIGAILMENT_HANDLE,IF(b.BIGAILMENT_HANDLE='2',"--",a.SOCIAL_HANDLE_STATUS)) as "BIGAILMENT_HANDLE",
a.EMP_NAME,
a.EMP_IDCARD,
a.EDUCATION_NAME,
a.BELONG_UNIT_NAME,
a.SETTLE_DOMAIN_NAME,
a.EMP_TYPE,
a.POST,
a.EMP_MOBILE,
a.EMP_REGIS_TYPE,
a.EMP_NATIONAL,
a.WORKING_HOURS,
a.CONTRACT_TERM,
a.CONTRACT_START,
a.CONTRACT_END,
a.CREASTE_USER_NAME,
b.RECORD_BASE,
b.PAYMENT_TYPE,
b.SOCIAL_HOUSEHOLD_NAME,
b.SOCIAL_PROVINCE,
b.SOCIAL_CITY,
b.SOCIAL_TOWN,
b.PENSION_START,
b.UNIT_PENSION_CARDINAL,
b.MEDICAL_START,
b.UNIT_MEDICAL_CARDINAL,
b.UNEMPLOY_START,
b.UNIT_UNEMPLOYMENT_CARDINAL,
b.WORK_INJURY_START,
b.UNIT_WORK_INJURY_CARDINAL,
b.BIRTH_START,
b.UNIT_BIRTH_CARDINAL,
b.BIGAILMENT_START,
b.UNIT_BIGAILMENT_CARDINAL,
b.UNIT_BIGAILMENT_MONEY,
b.PERSONAL_BIGAILMENT_MONEY,
b.TRUST_REMARK socailTrustRemark,
a.REDUCE_REASON
<include refid="where_getSocialRecordRoster"/>
</select>
<!--tDispatchInfo 社保花名册数据查询count-->
<select id="getSocialRecordRosterListCount" resultType="java.lang.Integer">
SELECT
count(1)
<include refid="where_getSocialRecordRoster"/>
</select>
<!--tDispatchInfo 社保办理数据查询-->
<select id="getTDispatchSocialHandlePage" resultMap="tDispatchInfoMap">
SELECT
<include refid="Base_Column_List"/>
<include refid="where_getSocialRecordRoster"/>
</select>
<!--tDispatchInfo 公积金办理数据查询-->
<select id="getTDispatchFundHandlePage" resultMap="tDispatchInfoMap">
SELECT
<include refid="Base_Column_List"/>
<include refid="where_getFundRecord"/>
</select>
<!--tDispatchInfo 公积金变更清册cout-->
<select id="getFundRecordCount" resultType="java.lang.Integer">
SELECT
count(1)
<include refid="where_getFundRecord"/>
</select>
<!--tDispatchInfo 公积金变更清册查询-->
<select id="getFundRecordList" resultMap="fundHandleMap">
SELECT
a.TYPE,
a.EMP_NAME,
a.EMP_IDCARD,
a.BELONG_UNIT_NAME,
a.SETTLE_DOMAIN_NAME,
a.EMP_MOBILE,
a.CREATE_NAME,
c.PROVIDENT_HOUSEHOLD_NAME,
c.PROVIDENT_START,
c.UNIT_PROVIDENG_CARDINAL,
c.PERSONAL_PROVIDENT_CARDINAL,
c.UNIT_PROVIDENT_PER,
c.PERSONAL_PROVIDENT_PER,
c.UNIT_PROVIDENT_FEE,
c.PERSONAL_PROVIDENT_FEE,
c.FUND_PROVINCE,
c.FUND_CITY,
c.FUND_TOWN
<include refid="where_getFundRecord"/>
</select>
<!--tDispatchInfo 公积金补交清册-->
<select id="getFundSupplementaryRecords" resultMap="fundSupplementaryMap">
SELECT
c.PROVIDENT_START,
c.UNIT_PROVIDENG_CARDINAL,
c.PERSONAL_PROVIDENT_CARDINAL,
c.UNIT_PROVIDENT_PER,
c.PERSONAL_PROVIDENT_PER,
c.UNIT_PROVIDENT_FEE,
c.PERSONAL_PROVIDENT_FEE,
c.EMP_NAME
<include refid="where_getFundRecord"/>
</select>
<sql id="where_getSocialRecordRoster">
FROM t_dispatch_info a
left join t_social_info b on a.SOCIAL_ID = b.id
<where>
1=1 and b.DELETE_FLAG = 0
<if test="idsStr != null">
AND a.ID in
<foreach item="items" index="index" collection="idsStr" open="(" separator="," close=")">
#{items}
</foreach>
</if>
/** 社保办理状态:0待办理/1已办理2办理失败3已派减4 办理中 5 部分办理失败 派单社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 4 办理中 **/
/*社保代办理 1.派单审核通过 2.派增(type=0):待办理(social_handle_status='0') or 派减(type=1):已办理完成或部分办理失败 且已派减*/
AND a.social_id is not null
AND a.STATUS = "2"
and (( a.type = '0' AND (b.HANDLE_STATUS = "0" or b.HANDLE_STATUS = "4") ) or ( a.type ='1' AND b.HANDLE_STATUS in ('1','5') and b.REDUCE_CAN = '1'))
and a.SOCIAL_HANDLE_STATUS in ('0','4')
<!--<if test="tDispatchInfo.status != null and tDispatchInfo.status.trim() != ''">
/*待办理组合判断*/
<if test="'2'.toString() == tDispatchInfo.status.trim() and tDispatchInfo.typeSub != null ">
/*社保代办理*/
<if test=" '0'.toString()==tDispatchInfo.typeSub.trim() ">
<if test="tDispatchInfo.socialHandleStatus != null and tDispatchInfo.socialHandleStatus != ''">
</if>
<if test="tDispatchInfo.socialHandleStatus == null or tDispatchInfo.socialHandleStatus == ''">
and (( a.type = '0' AND b.HANDLE_STATUS in ('0','4')) or ( a.type ='1' AND b.HANDLE_STATUS in ('1','5') and b.REDUCE_CAN = '1'))
and a.SOCIAL_HANDLE_STATUS in ('0','4')
</if>
</if>
/* 公积金办理*/
<if test=" '1'.toString()==tDispatchInfo.typeSub.trim() ">
and (( a.type = '0' AND c.HANDLE_STATUS = '0') or ( a.type ='1' AND c.HANDLE_STATUS = '1' and c.REDUCE_CAN = '1'))
and a.FUND_HANDLE_STATUS='0'
</if>
</if>
</if>-->
<if test="tDispatchInfo != null">
<if test="tDispatchInfo.socialProvince != null and tDispatchInfo.socialProvince!= null">
AND b.social_province = #{tDispatchInfo.socialProvince}
<if test="tDispatchInfo.socialCity != null and tDispatchInfo.socialCity!= null">
AND b.social_city = #{tDispatchInfo.socialCity}
</if>
<if test="tDispatchInfo.socialTown != null and tDispatchInfo.socialTown!= null">
AND b.social_town = #{tDispatchInfo.socialTown}
</if>
</if>
<if test="tDispatchInfo.empName != null and tDispatchInfo.empName.trim() != ''">
AND a.EMP_NAME = #{tDispatchInfo.empName}
</if>
<if test="tDispatchInfo.empIdcard != null and tDispatchInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD = #{tDispatchInfo.empIdcard}
</if>
<if test="tDispatchInfo.status != null and tDispatchInfo.status.trim() != ''">
AND a.STATUS = #{tDispatchInfo.status}
</if>
<if test="tDispatchInfo.settleDomain != null and tDispatchInfo.settleDomain.trim() != ''">
AND a.SETTLE_DOMAIN = #{tDispatchInfo.settleDomain}
</if>
<if test="tDispatchInfo.settleDomainCode != null and tDispatchInfo.settleDomainCode.trim() != ''">
AND a.SETTLE_DOMAIN_CODE = #{tDispatchInfo.settleDomainCode}
</if>
<if test="tDispatchInfo.socialHandleStatus != null and tDispatchInfo.socialHandleStatus.trim() != ''">
AND a.SOCIAL_HANDLE_STATUS = #{tDispatchInfo.socialHandleStatus}
</if>
<if test="tDispatchInfo.createName != null and tDispatchInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tDispatchInfo.createName}
</if>
<if test="tDispatchInfo.settleDomainName != null and tDispatchInfo.settleDomainName.trim() != ''">
AND a.SETTLE_DOMAIN_NAME = #{tDispatchInfo.settleDomainName}
</if>
<if test="tDispatchInfo.belongUnitName != null and tDispatchInfo.belongUnitName.trim() != ''">
AND a.BELONG_UNIT_NAME = #{tDispatchInfo.belongUnitName}
</if>
<if test="tDispatchInfo.createTimeEnd != null">
AND a.CREATE_TIME <![CDATA[<=]]> #{tDispatchInfo.createTimeEnd}
</if>
<if test="tDispatchInfo.createTimeStart != null">
AND a.CREATE_TIME <![CDATA[>=]]> #{tDispatchInfo.createTimeStart}
</if>
<if test="tDispatchInfo.socialHouseholdName != null and tDispatchInfo.socialHouseholdName.trim() != ''">
AND b.SOCIAL_HOUSEHOLD_NAME = #{tDispatchInfo.socialHouseholdName}
</if>
</if>
<if test='sql != null and sql != ""'>
and <![CDATA[sql]]>
</if>
order by a.CREATE_TIME desc
</where>
</sql>
<sql id="where_getFundRecord">
FROM t_dispatch_info a
left join t_provident_fund c on a.FUND_ID = c.id
<where>
1=1 and b.DELETE_FLAG = 0
<if test="idsStr != null">
AND a.ID in
<foreach item="items" index="index" collection="idsStr" open="(" separator="," close=")">
#{items}
</foreach>
</if>
/** 社保办理状态:0待办理/1已办理2办理失败3已派减4 办理中 5 部分办理失败 派单社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 4 办理中 **/
/*社保代办理 1.派单审核通过 2.派增(type=0):待办理(social_handle_status='0') or 派减(type=1):已办理完成或部分办理失败 且已派减*/
AND a.fund_id is not null
AND a.STATUS = "2"
and (( a.type = '0' AND c.HANDLE_STATUS = '0') or ( a.type ='1' AND c.HANDLE_STATUS = '1' and c.REDUCE_CAN = '1'))
and a.FUND_HANDLE_STATUS='0'
<!--<if test="tDispatchInfo.status != null and tDispatchInfo.status.trim() != ''">
/*待办理组合判断*/
<if test="'2'.toString() == tDispatchInfo.status.trim() and tDispatchInfo.typeSub != null ">
/*社保代办理*/
<if test=" '0'.toString()==tDispatchInfo.typeSub.trim() ">
<if test="tDispatchInfo.socialHandleStatus != null and tDispatchInfo.socialHandleStatus != ''">
</if>
<if test="tDispatchInfo.socialHandleStatus == null or tDispatchInfo.socialHandleStatus == ''">
and (( a.type = '0' AND b.HANDLE_STATUS in ('0','4')) or ( a.type ='1' AND b.HANDLE_STATUS in ('1','5') and b.REDUCE_CAN = '1'))
and a.SOCIAL_HANDLE_STATUS in ('0','4')
</if>
</if>
/* 公积金办理*/
<if test=" '1'.toString()==tDispatchInfo.typeSub.trim() ">
and (( a.type = '0' AND c.HANDLE_STATUS = '0') or ( a.type ='1' AND c.HANDLE_STATUS = '1' and c.REDUCE_CAN = '1'))
and a.FUND_HANDLE_STATUS='0'
</if>
</if>
</if>-->
<if test="tDispatchInfo != null">
<if test="tDispatchInfo.fundProvince != null and tDispatchInfo.fundProvince.trim() != ''">
AND a.FUND_PROVINCE = #{tDispatchInfo.fundProvince}
</if>
<if test="tDispatchInfo.fundCity != null and tDispatchInfo.fundCity.trim() != ''">
AND a.FUND_CITY = #{tDispatchInfo.fundCity}
</if>
<if test="tDispatchInfo.fundTown != null and tDispatchInfo.fundTown.trim() != ''">
AND a.FUND_TOWN = #{tDispatchInfo.fundTown}
</if>
<if test="tDispatchInfo.empName != null and tDispatchInfo.empName.trim() != ''">
AND a.EMP_NAME = #{tDispatchInfo.empName}
</if>
<if test="tDispatchInfo.empIdcard != null and tDispatchInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD = #{tDispatchInfo.empIdcard}
</if>
<if test="tDispatchInfo.status != null and tDispatchInfo.status.trim() != ''">
AND a.STATUS = #{tDispatchInfo.status}
</if>
<if test="tDispatchInfo.settleDomain != null and tDispatchInfo.settleDomain.trim() != ''">
AND a.SETTLE_DOMAIN = #{tDispatchInfo.settleDomain}
</if>
<if test="tDispatchInfo.settleDomainCode != null and tDispatchInfo.settleDomainCode.trim() != ''">
AND a.SETTLE_DOMAIN_CODE = #{tDispatchInfo.settleDomainCode}
</if>
<if test="tDispatchInfo.socialHandleStatus != null and tDispatchInfo.socialHandleStatus.trim() != ''">
AND a.SOCIAL_HANDLE_STATUS = #{tDispatchInfo.socialHandleStatus}
</if>
<if test="tDispatchInfo.createName != null and tDispatchInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tDispatchInfo.createName}
</if>
<if test="tDispatchInfo.settleDomainName != null and tDispatchInfo.settleDomainName.trim() != ''">
AND a.SETTLE_DOMAIN_NAME = #{tDispatchInfo.settleDomainName}
</if>
<if test="tDispatchInfo.belongUnitName != null and tDispatchInfo.belongUnitName.trim() != ''">
AND a.BELONG_UNIT_NAME = #{tDispatchInfo.belongUnitName}
</if>
<if test="tDispatchInfo.createTimeEnd != null">
AND a.CREATE_TIME <![CDATA[<=]]> #{tDispatchInfo.createTimeEnd}
</if>
<if test="tDispatchInfo.createTimeStart != null">
AND a.CREATE_TIME <![CDATA[>=]]> #{tDispatchInfo.createTimeStart}
</if>
<if test="tDispatchInfo.providentHouseholdName != null and tDispatchInfo.providentHouseholdName.trim() != ''">
AND b.PROVIDENT_HOUSEHOLD_NAME = #{tDispatchInfo.providentHouseholdName}
</if>
</if>
<if test='sql != null and sql != ""'>
and <![CDATA[sql]]>
</if>
order by a.CREATE_TIME desc
</where>
</sql>
</mapper>
......@@ -26,6 +26,7 @@
<resultMap id="tProvidentFundMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TProvidentFund">
<id property="id" column="ID"/>
<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
<result property="providentStart" column="PROVIDENT_START"/>
<result property="unitProvidengCardinal" column="UNIT_PROVIDENG_CARDINAL"/>
<result property="personalProvidentCardinal" column="PERSONAL_PROVIDENT_CARDINAL"/>
......@@ -76,6 +77,7 @@
<sql id="Base_Column_List">
a.ID,
a.PROVIDENT_HOUSEHOLD,
a.PROVIDENT_HOUSEHOLD_NAME,
a.PROVIDENT_START,
a.UNIT_PROVIDENG_CARDINAL,
a.PERSONAL_PROVIDENT_CARDINAL,
......
......@@ -26,6 +26,7 @@
<resultMap id="tSocialInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo">
<id property="id" column="ID"/>
<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
<result property="socialHouseholdName" column="SOCIAL_HOUSEHOLD_NAME"/>
<result property="socialStartDate" column="SOCIAL_START_DATE"/>
<result property="unitPensionCardinal" column="UNIT_PENSION_CARDINAL"/>
<result property="unitMedicalCardinal" column="UNIT_MEDICAL_CARDINAL"/>
......@@ -37,7 +38,6 @@
<result property="personalMedicalCardinal" column="PERSONAL_MEDICAL_CARDINAL"/>
<result property="personalBigailmentCardinal" column="PERSONAL_BIGAILMENT_CARDINAL"/>
<result property="personalUnemploymentCardinal" column="PERSONAL_UNEMPLOYMENT_CARDINAL"/>
<result property="personalWorkInjuryCardinal" column="PERSONAL_WORK_INJURY_CARDINAL"/>
<result property="empId" column="EMP_ID"/>
<result property="empNo" column="EMP_NO"/>
<result property="empName" column="EMP_NAME"/>
......@@ -124,6 +124,7 @@
<sql id="Base_Column_List">
a.ID,
a.SOCIAL_HOUSEHOLD,
a.SOCIAL_HOUSEHOLD_NAME,
a.SOCIAL_START_DATE,
a.UNIT_PENSION_CARDINAL,
a.UNIT_MEDICAL_CARDINAL,
......
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