Commit 798adb29 authored by 李灿灿's avatar 李灿灿

Merge branch 'develop' into feature-licancan

parents 6ad058e5 460b6c68
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -116,6 +117,7 @@ public class TSettleDomain extends BaseEntity {
* 最后审核时间
*/
@Schema(description = "最后审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastAuditDate;
/**
......@@ -182,6 +184,7 @@ public class TSettleDomain extends BaseEntity {
* 首次审核通过时间
*/
@Schema(description = "首次审核通过时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime firstPassTime;
/**
......@@ -218,6 +221,7 @@ public class TSettleDomain extends BaseEntity {
* 停止时间
*/
@Schema(description = "停止时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime stopDate;
/**
......@@ -284,12 +288,14 @@ public class TSettleDomain extends BaseEntity {
* 审核人审核的时间
*/
@Schema(description = "审核人审核的时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime auditTime;
/**
* 经理审核时间
*/
@Schema(description = "经理审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime managerAuditTime;
/**
......
......@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class TSettleDomainListVo {
......@@ -12,4 +13,6 @@ public class TSettleDomainListVo {
*/
private List<TSettleDomainSelectVo> listSelectVO;
private Map<String,TSettleDomainSelectVo> mapSlectVo;
}
......@@ -35,7 +35,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
......@@ -149,8 +148,8 @@ public class TSettleDomainController {
**/
@Inner
@PostMapping("/getSettleDomainSelectVoById")
public TSettleDomainSelectVo getInnerSettleDomainSelectVoByUserId(@RequestParam String id) {
return tSettleDomainService.selectSettleDomainSelectVosById(id);
public TSettleDomainSelectVo getInnerSettleDomainSelectVoByUserId(@RequestBody TSettleDomainSelectVo settleDomainSelectVo) {
return tSettleDomainService.selectSettleDomainSelectVosById(settleDomainSelectVo);
}
/**
......
......@@ -55,7 +55,7 @@ public interface TSettleDomainService extends IService<TSettleDomain> {
* @Author fxj
* @Date 2019-12-24
**/
TSettleDomainSelectVo selectSettleDomainSelectVosById(String id);
TSettleDomainSelectVo selectSettleDomainSelectVosById(TSettleDomainSelectVo settleDomainSelectVo);
/**
* 获取所有客户单位的结算主体信息
......
......@@ -1196,7 +1196,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
list = gettEmpProInfoExportVos(idstr, projectDTO);
ServletOutputStream out = null;
if (list != null && !list.isEmpty()) {
if (list == null || list.isEmpty()) {
list = new ArrayList<>();
}
try {
......
......@@ -87,15 +87,15 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
}
/**
* @param id
* @param settleDomainSelectVo
* @Author: wangan
* @Date: 2019/10/18
* @Description: dataCheckDepart
* @return: com.yifu.cloud.v1.hrms.api.vo.TSettleDomainSelectVo
**/
@Override
public TSettleDomainSelectVo selectSettleDomainSelectVosById(String id) {
return baseMapper.selectSettleDomainSelectVosById(id);
public TSettleDomainSelectVo selectSettleDomainSelectVosById(TSettleDomainSelectVo settleDomainSelectVo) {
return baseMapper.selectSettleDomainSelectVosById(settleDomainSelectVo.getId());
}
@Override
......
......@@ -422,5 +422,8 @@ public interface CommonConstants {
public static final String SUCCESS_MSG_PREFIX = "success=";
// 社保细分类型 hgw 2021-6-9 17:54:08
public static final String[] SOCIAL_HANDLE_TYPE = {"0","养老", "医疗", "失业", "工伤", "生育", "大病"};
public static final int SIXTY_INT = 60;
}
......@@ -1247,6 +1247,15 @@ public class DateUtil {
return sdf.format(cal.getTime());
}
public static Date addMonthByDate(Date date, int mnt) {
Calendar cal = Calendar.getInstance();
if (date != null) {
cal.setTime(date);
}
cal.add(Calendar.MONTH, mnt);
return cal.getTime();
}
/**
* @param mnt 增减日的 值
* @Description: 增减日
......
......@@ -11,7 +11,6 @@ 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.dapr.config.DaprArchivesProperties;
import lombok.extern.log4j.Log4j2;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
......@@ -82,7 +81,9 @@ public class ArchivesDaprUtil {
* @return
**/
public R<TSettleDomainSelectVo> getSettleDomainSelectVoById(String departId){
R<TSettleDomainSelectVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/getSettleDomainSelectVoById",departId, Map.class, SecurityConstants.FROM_IN);
TSettleDomainSelectVo settleDomainSelectVo = new TSettleDomainSelectVo();
settleDomainSelectVo.setId(departId);
R<TSettleDomainSelectVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/getSettleDomainSelectVoById",settleDomainSelectVo, TSettleDomainSelectVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取派单校验需要的档案信息失败!");
}
......@@ -97,7 +98,7 @@ public class ArchivesDaprUtil {
* @return
**/
public R<TSettleDomainListVo> selectAllSettleDomainSelectVos(){
R<TSettleDomainListVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/selectAllSettleDomainSelectVos","", Map.class, SecurityConstants.FROM_IN);
R<TSettleDomainListVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/selectAllSettleDomainSelectVos","", TSettleDomainListVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取所有客户单位的结算主体信息失败!");
}
......
......@@ -23,6 +23,13 @@ public class DispatchConstants {
public static final String EMP_PHONE_INVALID = "档案手机号无效,请更新档案或模板的手机号码!";
public static final String DISPATCH_PHONE_NOT_EMPTY = "派单手机号不可为空,请更新档案或模板的手机号码!";
public static final String DISPATCH_ADD = "派增";
public static final String DISPATCH_REDUCE = "派减";
public static final String DISPATCH_SOCIAL_ADD = "社保派增";
public static final String DISPATCH_SOCIAL_HANDLE_SUCCESS = "办理成功:";
public static final String DISPATCH_SOCIAL_HANDLE_FAIL = "办理失败:";
public static final String DISPATCH_FUND_ADD_SUCCESS = "公积金派增办理成功:";
public static final String DISPATCH_FUND_ADD_FAIL = "公积金派增办理失败:";
/**
......@@ -56,7 +63,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String SOCIAL_INFO= "tSocialInfo";
/**
......@@ -65,7 +71,6 @@ public class DispatchConstants {
* @Date 2020-10-13
* @param null
* @return
* @see com.yifu.cloud.v1.common.core.constant
**/
public static final String PROVIDENT_INFO= "tProvidentFund";
......
......@@ -457,6 +457,11 @@ public class SysBaseSetInfo extends BaseEntity {
@ExcelProperty("执行月份")
private String doMonth;
@ExcelAttribute(name = "是否新数据:0否1是。为1,将同步社保公积金查询、预估库。其余值,不同步")
@Schema(description = "是否新数据:0否1是。为1,将同步社保公积金查询、预估库。其余值,不同步")
@ExcelProperty("是否新数据:0否1是。为1,将同步社保公积金查询、预估库。其余值,不同步")
private String isNew;
@Schema(description = "适用月")
@TableField(exist = false)
private String applyDate;
......
......@@ -357,19 +357,19 @@ public class TDispatchInfo extends BaseEntity {
/**
* 社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3已派减(已废弃)
* 社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 4 办理中
*/
@Length(max = 1, message = "社保办理状态 不能超过1个字符" )
@ExcelAttribute(name = "社保办理状态", maxLength = 1)
@Schema(description = "社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 " )
@Schema(description = "社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 4 办理中" )
@ExcelProperty("社保办理状态" )
private String socialHandleStatus;
/**
* 公积金办理状态:0 未办理 1办理成功 2 办理失败
* 公积金办理状态:0 未办理 1办理成功 2 办理失败 3 已派减
*/
@Length(max = 1, message = "公积金办理状态 不能超过1个字符" )
@ExcelAttribute(name = "公积金办理状态", maxLength = 1)
@Schema(description = "公积金办理状态:0 未办理 1办理成功 2 办理失败" )
@Schema(description = "公积金办理状态:0 未办理 1办理成功 2 办理失败 3 已派减" )
@ExcelProperty("公积金办理状态" )
private String fundHandleStatus;
/**
......
......@@ -493,6 +493,12 @@ public class TForecastLibrary extends BaseEntity {
@ExcelAttribute(name = "类型:0社保;1公积金")
@ExcelProperty("类型:0社保;1公积金")
private Integer dataType;
/**
* 数据类型:预估/差额(汉字)
*/
@ExcelAttribute(name = "数据类型:预估/差额")
@ExcelProperty("数据类型:预估/差额")
private String diffType;
@TableField(exist = false)
private List<String> idList;
......
......@@ -130,10 +130,10 @@ public class TProvidentFund extends BaseEntity {
* 办理状态(0待办理/1已办理2办理失败3已派减)
*/
@NotBlank(message = "办理状态(0待办理/1已办理)不能为空" )
@Length(max = 32, message = "办理状态(0待办理/1已办理) 不能超过32个字符" )
@ExcelAttribute(name = "办理状态(0待办理/1已办理)", isNotEmpty = true, errorInfo = "办理状态(0待办理/1已办理)不能为空", maxLength = 32)
@Length(max = 32, message = "办理状态不能超过32个字符" )
@ExcelAttribute(name = "办理状态", isNotEmpty = true, errorInfo = "办理状态不能为空", maxLength = 32)
@Schema(description = "办理状态(0待办理/1已办理2办理失败3已派减)" )
@ExcelProperty("办理状态(0待办理/1已办理)" )
@ExcelProperty("办理状态" )
private String handleStatus;
/**
* 废弃状态(0正常/1已废弃)
......
......@@ -17,9 +17,7 @@
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.baomidou.mybatisplus.annotation.*;
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.mybatis.base.BaseEntity;
......@@ -249,11 +247,11 @@ public class TSocialFundInfo extends BaseEntity {
@ExcelProperty("公积金缴纳地-县" )
private String fundTown;
/**
* 社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败 5 审核不通过
* 社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败 5 审核不通过 6 办理中
*/
@Length(max = 1, message = "社保派增状态 不能超过1个字符" )
@ExcelAttribute(name = "社保派增状态", maxLength = 1)
@Schema(description = "社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败 、5审核不通过" )
@Schema(description = "社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败 、5审核不通过6 办理中" )
@ExcelProperty("社保派增状态" )
private String socialAddStatus;
/**
......@@ -465,6 +463,7 @@ public class TSocialFundInfo extends BaseEntity {
@ExcelAttribute(name = "社保停缴日期", isDate = true)
@Schema(description = "社保停缴日期" )
@ExcelProperty("社保停缴日期" )
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date socialReduceDate;
/**
* 是否可补缴 0:是,1:否
......
......@@ -234,12 +234,12 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("审核状态" )
private String auditStatus;
/**
* 办理状态
* 办理状态:0待办理/1已办理2办理失败3已派减 4 办理中 5 部分办理失败
*/
@NotBlank(message = "办理状态不能为空" )
@Length(max = 32, message = "办理状态 不能超过32个字符" )
@ExcelAttribute(name = "办理状态", isNotEmpty = true, errorInfo = "办理状态不能为空", maxLength = 32)
@Schema(description = "办理状态:0待办理/1已办理2办理失败3已派减" )
@Schema(description = "办理状态:0待办理/1已办理2办理失败3已派减4 办理中 5 部分办理失败" )
@ExcelProperty("办理状态" )
private String handleStatus;
/**
......
......@@ -17,6 +17,9 @@ import java.time.LocalDateTime;
@Data
public class TPreDispatchExportVo implements Serializable {
@ExcelAttribute(name = "主键", needExport = true)
private String id;
/**
* 0 派增 1 派减
*/
......
......@@ -9,4 +9,6 @@ public class SocialConstants {
// 社保补缴配置有误!
public static final String SOCIAL_SET_ERROR = "社保补缴配置有误!";
public static final String EMP_NAME_ERROR = "员工姓名错误!";
public static final String DIFF_TYPE_ONE = "预估";
public static final String DIFF_TYPE_TWO = "差额";
}
......@@ -244,29 +244,29 @@ public class TDispatchInfoController {
public R<List<ErrorMessage>> addApplyAudit(@RequestParam(name = "ids", required = true) String ids,
@RequestParam(name = "auditStatus", required = true) String auditStatus,
@RequestParam(name = "auditRemark", required = false) String auditRemark) {
YifuUser user = SecurityUtils.getUser();
if (null == user) {
return R.failed(CommonConstants.USER_FAIL);
}
try {
if (!Common.isNotNull(ids)) {
return R.failed(DispatchConstants.DISPATCH_ID_NOT_EMPTY);
}
Integer flag = 1;
if (CommonConstants.ONE_STRING.equals(auditStatus)) {
//审核通过
flag = CommonConstants.ZERO_INT;
} else if (CommonConstants.TWO_STRING.equals(auditStatus)) {
//审核不通过
flag = CommonConstants.ONE_INT;
} else {
return R.failed("派单审核状态参数异常:0待审核 1审核通过 2审核不通过");
}
List<ErrorMessage> errorInfo = tDispatchInfoService.addBatchApplyAudit(Common.initStrToList(ids, CommonConstants.COMMA_STRING), user, flag, auditStatus, null==auditRemark?"":auditRemark);
return R.ok(errorInfo,"派单审核结果:");
} catch (Exception e) {
log.error("派单审核异常:" + e.getMessage());
return R.failed("数据异常,派单审核失败!");
return tDispatchInfoService.addApplyAudit(ids,auditStatus,auditRemark);
}
/**
* 派单申请办理
* hgw社保办理
* @param ids
* @param handleStatus 1 办理成功 2 办理失败
* @param handleRemark
* @param typeSub 0 社保 1 公积金
* @param socialType (1养老 2医疗 3失业 4工伤 5生育 6大病)
* @return
* @Author fxj
* @Date 2019-09-27
**/
@Operation(description = "派单批量办理,传参派单ID hasPermission('wxhr:tdispatchinfo_addApplyHandle')")
@PostMapping("/addApplyHandle")
@PreAuthorize("@pms.hasPermission('wxhr:tdispatchinfo_addApplyHandle')")
public R<List<ErrorMessage>> addApplyHandle(@RequestParam(name = "ids", required = true) String ids,
@RequestParam(name = "typeSub", required = true) String typeSub,
@RequestParam(name = "auditStatus", required = true) String handleStatus,
@RequestParam(name = "auditRemark", required = false) String handleRemark,
@RequestParam(name = "socialType", required = false) String socialType) {
return tDispatchInfoService.addApplyHandle(ids,typeSub,handleStatus,handleRemark,socialType);
}
}
......@@ -56,4 +56,8 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> {
DispatchDetailVo getSocialAndFundInfoById(String id);
List<ErrorMessage> addBatchApplyAudit(List<String> initStrToList, YifuUser user, Integer flag, String auditStatus, String auditRemark);
R<List<ErrorMessage>> addApplyAudit(String ids,String auditStatus,String auditRemark);
R<List<ErrorMessage>> addApplyHandle(String ids,String typeSub,String handleStatus,String handleRemark,String socialType);
}
......@@ -68,4 +68,29 @@ public interface TForecastLibraryService extends IService<TForecastLibrary> {
**/
R<String> updateToneForecastLibary(TSocialFundInfo socialFundInfo);
/**
* @param socialFundInfo
* @Description: 派单变更预估库
* @Author: hgw
* @Date: 2022/7/26 19:02
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> updateForecastLibaryByDispatch(TSocialFundInfo socialFundInfo);
/**
* @Description: 基数变更,同步社保公积金查询、预估库 TODO-加定时器
* @Author: hgw
* @Date: 2022/7/26 19:09
* @return: void
**/
void updateForecastLibaryBySysBase();
/**
* @Description: 每月定时预估库 TODO-加定时器
* @Author: hgw
* @Date: 2022/7/26 19:09
* @return: void
**/
void everyMonthCreateForecastLibary();
}
......@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.DateUtil;
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.common.security.util.SecurityUtils;
......@@ -150,9 +151,9 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
return R.failed("对应户、地市、有效期的基数配置已存在!");
}
// 将上一个无截止月的增加截止月
// 将上一个无截止月的增加截止月(本次起始月的上一个月)
if (lastBase != null) {
lastBase.setApplyEndDate(sysBaseSetInfo.getApplyStartDate());
lastBase.setApplyEndDate(DateUtil.addMonthByDate(sysBaseSetInfo.getApplyStartDate(), -1));
this.updateById(lastBase);
}
this.saveOrUpdateBaseAndFundPro(sysBaseSetInfo);
......
......@@ -37,6 +37,7 @@ import com.yifu.cloud.plus.v1.yifu.social.mapper.TAgentConfigMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TForecastLibraryMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialFundInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TForecastLibraryService;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialFundInfoService;
import com.yifu.cloud.plus.v1.yifu.social.util.ServiceUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
......@@ -466,12 +467,13 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
}
private void initSocialLibary(String payMonth, Map<String, TForecastLibrary> saveLibraryMap
private void initSocialLibary(String diffType,String payMonth, Map<String, TForecastLibrary> saveLibraryMap
, TSocialFundInfo tSocialInfo, boolean isReduceFund, HashMap<String, TAgentConfig> agentConfigMap
, TForecastLibrary lib, String sfMapKey, TForecastLibrary historyLibrary) {
if (null == lib) {
lib = new TForecastLibrary();
}
lib.setDiffType(diffType);
lib.setDataType(CommonConstants.ZERO_INT);
lib.setEmpId(tSocialInfo.getEmpId());
lib.setEmpIdcard(tSocialInfo.getEmpIdcard());
......@@ -1125,12 +1127,13 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
* @Author fxj
* @Date 2020-07-21
**/
private void initFundLibary(String payMonth, Map<String, TForecastLibrary> saveLibraryMap
private void initFundLibary(String diffType, String payMonth, Map<String, TForecastLibrary> saveLibraryMap
, TSocialFundInfo providentFund, boolean isReduceSocial, TForecastLibrary lib, String mapKeyStr
, TForecastLibrary historyLibrary) {
if (lib == null) {
lib = new TForecastLibrary();
}
lib.setDiffType(diffType);
lib.setDataType(CommonConstants.ONE_INT);
lib.setEmpId(providentFund.getEmpId());
lib.setEmpIdcard(providentFund.getEmpIdcard());
......@@ -1170,6 +1173,44 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
saveLibraryMap.put(mapKeyStr, lib);
}
/**
* @Description: 基数新增,同步社保公积金查询表,同步预估库
* @Author: hgw
* @Date: 2022/7/25 17:37
* @return: void
**/
@Override
public void updateForecastLibaryBySysBase() {
List<SysBaseSetInfo> sysBaseSetInfoList = sysBaseSetInfoMapper.selectList(
Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getIsNew, CommonConstants.ONE_INT));
if (sysBaseSetInfoList != null && !sysBaseSetInfoList.isEmpty()) {
Map<String, TSocialFundInfo> socialFundInfoMap = new HashMap<>();
List<TSocialFundInfo> socialFundInfoList;
for (SysBaseSetInfo sysBaseSetInfo : sysBaseSetInfoList) {
// 社保
if (CommonConstants.ZERO_STRING.equals(sysBaseSetInfo.getBaseType())) {
socialFundInfoList = socialFundInfoMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda()
.eq(TSocialFundInfo::getSocialHousehold, sysBaseSetInfo.getDepartId()));
for (TSocialFundInfo socialFundInfo : socialFundInfoList) {
socialFundInfoMap.put(socialFundInfo.getId(), socialFundInfo);
}
}
// 公积金
if (CommonConstants.ONE_STRING.equals(sysBaseSetInfo.getBaseType())) {
socialFundInfoList = socialFundInfoMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda()
.eq(TSocialFundInfo::getProvidentHousehold, sysBaseSetInfo.getDepartId()));
for (TSocialFundInfo socialFundInfo : socialFundInfoList) {
socialFundInfoMap.put(socialFundInfo.getId(), socialFundInfo);
}
}
}
for (TSocialFundInfo socialFundInfo : socialFundInfoMap.values()) {
this.updateForecastLibaryCore(socialFundInfo);
}
}
}
/**
* @param socialFundInfo
* @Description: 批量调基,同步预估库
......@@ -1179,6 +1220,29 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
**/
@Override
public R<String> updateToneForecastLibary(TSocialFundInfo socialFundInfo) {
return this.updateForecastLibaryCore(socialFundInfo);
}
/**
* @param socialFundInfo
* @Description: 派单,同步预估库
* @Author: hgw
* @Date: 2022/7/25 17:37
* @return: void
**/
@Override
public R<String> updateForecastLibaryByDispatch(TSocialFundInfo socialFundInfo) {
return this.updateForecastLibaryCore(socialFundInfo);
}
/**
* @param socialFundInfo
* @Description: 根据社保公积金信息表更新预估库
* @Author: hgw
* @Date: 2022/7/26 19:01
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
private R<String> updateForecastLibaryCore(TSocialFundInfo socialFundInfo) {
String empIdCard = socialFundInfo.getEmpIdcard();
//定义未推送的按条件查询得到的预估数据
List<TForecastLibrary> librarySocialList = null;
......@@ -1295,6 +1359,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
String createMonth;
String sfMapKey;
TForecastLibrary tForecastLibrary;
String diffType;
for (String payMonth : payMonthList) {
//封装社保预估数据
if (Common.isNotNull(socialInfoList)) {
......@@ -1304,12 +1369,19 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
// 变更:已推送的,计算变更值
tForecastLibrary = socialPushMap.get(sfMapKey);
diffType = SocialConstants.DIFF_TYPE_ONE;
if (null != tForecastLibrary) {
diffType = SocialConstants.DIFF_TYPE_TWO;
this.getChangeReduceData(tSocialInfo, tForecastLibrary);
} else if (CommonConstants.dingleDigitStrArray[5].equals(tSocialInfo.getSocialStatus())
|| CommonConstants.dingleDigitStrArray[10].equals(tSocialInfo.getSocialStatus())) {
// 5 办理失败 10 审核不通过,且无推送数据,不新增
continue;
}
//起缴月份在要生成的月份前不处理 || 截止月份在要生成的月份后不处理
if (Integer.parseInt(payMonth) < DateUtil.formatDateInt(tSocialInfo.getSocialStartDate())
|| Integer.parseInt(payMonth) > DateUtil.formatDateInt(tSocialInfo.getSocialReduceDate())) {
|| (Common.isNotNull(tSocialInfo.getSocialReduceDate())
&& Integer.parseInt(payMonth) > DateUtil.formatDateInt(tSocialInfo.getSocialReduceDate()))) {
continue;
}
flag = CommonConstants.ZERO_STRING.equals(tSocialInfo.getCanOverpay()) && (null == tSocialInfo.getOverpayNumber() || null == tSocialInfo.getHaveThisMonth() || null == tSocialInfo.getSocialStartDate());
......@@ -1318,7 +1390,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
} else {
historyLibrary = socialHistoryMap.get(sfMapKey);
// 初始化社保
initSocialLibary(payMonth, saveLibraryMap, tSocialInfo, isReduceFund, agentConfigHashMap, tForecastLibrary, sfMapKey, historyLibrary);
initSocialLibary(diffType, payMonth, saveLibraryMap, tSocialInfo, isReduceFund, agentConfigHashMap, tForecastLibrary, sfMapKey, historyLibrary);
}
}
}
......@@ -1329,12 +1401,19 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
sfMapKey = this.getMapKey(providentFund.getEmpIdcard(), providentFund.getSettleDomainFund(), payMonth, createMonth);
// 变更:已推送的,计算变更值
tForecastLibrary = fundPushMap.get(sfMapKey);
diffType = SocialConstants.DIFF_TYPE_ONE;
if (null != tForecastLibrary) {
diffType = SocialConstants.DIFF_TYPE_TWO;
this.getChangeReduceData(providentFund, tForecastLibrary);
} else if (CommonConstants.dingleDigitStrArray[4].equals(providentFund.getFundStatus())
|| CommonConstants.dingleDigitStrArray[9].equals(providentFund.getFundStatus())) {
// 4办理失败9 审核不通过,且无推送数据,不新增
continue;
}
//起缴月份在要生成的月份后不处理 || 截止月份在要生成的月份后不处理
if (Integer.parseInt(payMonth) < DateUtil.formatDateInt(providentFund.getProvidentStart())
|| Integer.parseInt(payMonth) > DateUtil.formatDateInt(providentFund.getFundReduceDate())) {
|| (Common.isNotNull(providentFund.getFundReduceDate())
&& Integer.parseInt(payMonth) > DateUtil.formatDateInt(providentFund.getFundReduceDate()))) {
continue;
}
flag = CommonConstants.ZERO_STRING.equals(providentFund.getCanOverpay()) && (null == providentFund.getOverpayNumber() || null == providentFund.getHaveThisMonth() || null == providentFund.getProvidentStart());
......@@ -1343,7 +1422,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
} else {
historyLibrary = fundHistoryMap.get(sfMapKey);
// 初始化公积金
initFundLibary(payMonth, saveLibraryMap, providentFund, isReduceSocial, tForecastLibrary, sfMapKey, historyLibrary);
initFundLibary(diffType, payMonth, saveLibraryMap, providentFund, isReduceSocial, tForecastLibrary, sfMapKey, historyLibrary);
}
}
......@@ -1352,4 +1431,15 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
return null;
}
@Override
public void everyMonthCreateForecastLibary() {
List<TSocialFundInfo> socialFundInfoList = socialFundInfoMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda());
if (socialFundInfoList != null && !socialFundInfoList.isEmpty()) {
for (TSocialFundInfo socialFundInfo : socialFundInfoList) {
// TODO-生成新的社保公积金数据
}
}
}
}
......@@ -772,7 +772,7 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
list = baseMapper.getListForExport(tPreDispatchInfo);
ServletOutputStream out = null;
if (list != null && !list.isEmpty()) {
if (list == null || list.isEmpty()) {
list = new ArrayList<>();
}
try {
......
package com.yifu.cloud.plus.v1.yifu.social.util;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
......@@ -94,4 +96,23 @@ public class ServiceUtil {
}
return false;
}
public static BigDecimal ifNull(BigDecimal old, BigDecimal last){
if (Common.isEmpty(old)){
return last;
}
return old;
}
public static Date ifNull(Date old,Date last){
if (Common.isEmpty(old)){
return last;
}
return old;
}
public static String ifNullToEmpty(String str){
if (Common.isEmpty(str)){
return CommonConstants.EMPTY_STRING;
}
return str;
}
}
......@@ -94,6 +94,7 @@
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
<result property="dataPush" column="DATA_PUSH"/>
<result property="dataType" column="DATA_TYPE"/>
<result property="diffType" column="DIFF_TYPE"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
......@@ -171,6 +172,7 @@
a.PROVIDENT_HOUSEHOLD_NAME,
a.DATA_PUSH,
a.DATA_TYPE,
a.DIFF_TYPE,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
......@@ -395,6 +397,9 @@
<if test="tForecastLibrary.dataType != null">
AND a.DATA_TYPE = #{tForecastLibrary.dataType}
</if>
<if test="tForecastLibrary.diffType != null and tForecastLibrary.diffType.trim() != ''">
AND a.DIFF_TYPE = #{tForecastLibrary.diffType}
</if>
<if test="tForecastLibrary.createBy != null and tForecastLibrary.createBy.trim() != ''">
AND a.CREATE_BY = #{tForecastLibrary.createBy}
</if>
......
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