Commit af3dbdeb authored by huyuchen's avatar huyuchen

Merge remote-tracking branch 'origin/MVP1.7.17' into MVP1.7.17

parents 23ca7aa0 f721dda7
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TDispatchInfoPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TFundPreDetailVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSocialPreDetailVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
......@@ -169,4 +171,10 @@ public class EmployeeRegistrationPre extends BaseEntity {
@TableField(exist = false)
private List<String> attaIdList;
/**
* 公积金是否可修改 可修改 true 不可修改 false
*/
@Schema(description = "公积金是否可修改")
@TableField(exist = false)
private Boolean fundUpdateFlag;
}
......@@ -551,6 +551,13 @@ public class TEmployeeContractInfo extends BaseEntity {
@TableField(exist = false)
private String preName;
/**
* 离职待办的用户名称
*/
@Schema(description = "离职待办的用户名称")
@TableField(exist = false)
private String leaveName;
/**
* 试用期(单位月)
*/
......
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.TableField;
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.vo.RowIndex;
......@@ -252,4 +253,12 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelAttribute(name = "preName")
@ExcelProperty(value ="preName")
private String preName;
/**
* 离职待办的用户名称
*/
@Schema(description = "离职待办的用户名称")
@TableField(exist = false)
private String leaveName;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -157,4 +159,13 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "修改类型:1新增;2修改;3删除;4状态346为不可编辑")
private String modelType;
/**
* 公积金是否可修改 可修改 true 不可修改 false
*/
@ExcelAttribute(name = "公积金是否可修改", maxLength = 10)
@ExcelProperty("公积金是否可修改")
@Schema(description = "公积金是否可修改")
@TableField(exist = false)
private Boolean fundUpdateFlag;
}
......@@ -629,12 +629,4 @@ public class TDispatchInfoPreVo extends RowIndex implements Serializable {
@Schema(description = "公积金户ID")
private String configHouseId;
/**
* 公积金是否可修改 可修改 true 不可修改 false
*/
@ExcelAttribute(name = "公积金是否可修改", maxLength = 10)
@ExcelProperty("公积金是否可修改")
@Schema(description = "公积金是否可修改")
private Boolean fundUpdateFlag;
}
......@@ -9,6 +9,7 @@ import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 入职确认信息公积金已购买记录
......@@ -32,7 +33,7 @@ public class TFundPreDetailVo implements Serializable {
@Length(max = 32, message = "公积金缴纳地-省不能超过32个字符")
@ExcelProperty("公积金缴纳地-省")
@Schema(description = "公积金缴纳地-省")
private String socialProvince;
private String fundProvince;
/**
* 公积金缴纳地-市
*/
......@@ -40,7 +41,7 @@ public class TFundPreDetailVo implements Serializable {
@Length(max = 32, message = "公积金缴纳地-市不能超过32个字符")
@ExcelProperty("公积金缴纳地-市")
@Schema(description = "公积金缴纳地-市")
private String socialCity;
private String fundCity;
/**
* 公积金缴纳地-县
*/
......@@ -48,7 +49,7 @@ public class TFundPreDetailVo implements Serializable {
@Length(max = 32, message = "公积金缴纳地-县不能超过32个字符")
@ExcelProperty("公积金缴纳地-县")
@Schema(description = "公积金缴纳地-县")
private String socialTown;
private String fundTown;
/**
* 项目名称
*/
......@@ -72,7 +73,7 @@ public class TFundPreDetailVo implements Serializable {
@Length(max = 50, message = "公积金户名称不能超过50个字符")
@ExcelProperty("公积金户名称")
@Schema(description = "公积金户名称")
private String socialHouseholdName;
private String fundHouseholdName;
/**
* 入职确认信息主表id
*/
......@@ -107,4 +108,18 @@ public class TFundPreDetailVo implements Serializable {
@Schema(description = "派单时间")
private String dispatchTime;
/**
* 单位公积金缴纳比例
*/
private BigDecimal unitProvidentPer;
/**
* 个人公积金缴纳比例
*/
private BigDecimal personalProvidentPer;
/**
* 单位公积金缴纳基数
*/
private BigDecimal providentCardinal;
}
......@@ -115,6 +115,7 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac
String getContractByEmpIdCardAndDeptId(@Param("empIdCard") String empIdCard, @Param("deptId") String deptId);
String getContractByEmpIdCardAndDeptNo(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
String getContractByEmpIdCardAndDeptNoByEnd(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
String getMinDateByCardAndDeptId(@Param("vo") IdNameNoVo vo);
......
......@@ -204,5 +204,7 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
// 获取合同ID,在用,已审核
String getContractByEmpIdCardAndDeptNo(String empIdCard, String deptNo);
// 查找最近的终止合同
String getContractByEmpIdCardAndDeptNoByEnd(String empIdCard, String deptNo);
}
......@@ -825,7 +825,9 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
return R.other(CommonConstants.THREE_INT, null, "该人员存在在途/有效的公积金数据,请将“是否已参保”调整为“是”");
}
//判断公积金基数 是否小于 公积金户配置的最低基数
if (Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo().getConfigHouseId())
if (Common.isNotNull(employeeRegistrationPre)
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo())
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo().getConfigHouseId())
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo().getProvidentCardinal())){
R<SysBaseSetInfoVo> resR = socialDaprUtils.getSocialHouseBaseSet(employeeRegistrationPre.getDispatchInfoFundPreVo().getConfigHouseId());
if (Common.isNotNull(resR) && resR.getData() != null) {
......@@ -842,8 +844,8 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
//查已购买公积金明细
if (null != employeeRegistrationPre.getDispatchInfoFundPreVo()
&& !Common.isEmpty(employeeRegistrationPre.getDispatchInfoFundPreVo().getId())
&& null != employeeRegistrationPre.getDispatchInfoFundPreVo().getFundUpdateFlag()
&& employeeRegistrationPre.getDispatchInfoFundPreVo().getFundUpdateFlag().booleanValue()) {
&& null != employeeRegistrationPre.getFundUpdateFlag()
&& employeeRegistrationPre.getFundUpdateFlag().booleanValue()) {
R<Boolean> fundSdr = socialDaprUtils.getFundPreStatus(employeeRegistrationPre.getDispatchInfoFundPreVo().getId());
//公积金购买状态,0待确认,1待派单,2派单失败,3待审核,4审核不通过,5待办理,7办理成功,8办理失败
if (fundSdr != null && null != fundSdr.getData()
......
......@@ -200,7 +200,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
}
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
user = this.getNewYifuUser();
user = this.getNewYifuUser(tEmployeeContractInfo.getLeaveName());
}
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
......@@ -508,6 +508,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
initType(tEmployeeContractInfo);
if (Common.isEmpty(tEmployeeContractInfo.getId())) {
if (Common.isEmpty(tEmployeeContractInfo.getApplyNo())) {
String code = this.getCode(true);
tEmployeeContractInfo.setApplyNo(code);
}
// 针对编码再做一次重复性校验
String isCur = baseMapper.getContractByApplyNo(tEmployeeContractInfo.getApplyNo());
if (Common.isNotNull(isCur)) {
......@@ -613,7 +617,11 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
tEmployeeContractInfo.setContractEnd(null);
baseMapper.updateContractEnd(tEmployeeContractInfo);
}
return R.ok(null, CommonConstants.SAVE_SUCCESS);
if (tEmployeeContractInfo.getAuditStatus() == CommonConstants.TWO_INT) {
return R.ok(null, CommonConstants.SAVE_AND_UPDATE);
} else {
return R.ok(null, CommonConstants.SAVE_SUCCESS);
}
}
/**
......@@ -701,6 +709,11 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
audit.setCreateBy("1");
audit.setCreateTime(LocalDateTime.now());
}
if (Common.isNotNull(tEmployeeContractInfo.getLeaveName())) {
audit.setCreateName(tEmployeeContractInfo.getLeaveName());
audit.setCreateBy("1");
audit.setCreateTime(LocalDateTime.now());
}
tEmployeeContractAuditMapper.updateById(audit);
}
}
......@@ -957,6 +970,11 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
//审核通过瓜子合同状态更新合同审核通过
updateGzOfferStatus(contractInfo,CommonConstants.THIRTEEN_STRING,CommonConstants.EIGHT_STRING,user.getId(),user.getNickname());
}
if (EmployeeConstants.SITUATION_SEVEN.equals(contractInfo.getSituation())) {
// 合同终止,通知离职待办变更状态
this.sendLeave(contractInfo.getId(), CommonConstants.EIGHT_STRING, CommonConstants.ONE_STRING, tEmployeeContractInfo.getAuditRemark(), user);
}
}
if (tEmployeeContractInfo.getAuditStatus() == CommonConstants.dingleDigitIntArray[3]) {
if (!fascFlag) {
......@@ -970,6 +988,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
contractPreMapper.updateById(contractPre);
}
}
if (EmployeeConstants.SITUATION_SEVEN.equals(contractInfo.getSituation())) {
// 合同终止,通知离职待办变更状态
this.sendLeave(contractInfo.getId(), CommonConstants.TEN_STRING, CommonConstants.ZERO_STRING, tEmployeeContractInfo.getAuditRemark(), user);
}
}
tEmployeeContractInfo.setAuditUserName(user.getNickname());
tEmployeeContractInfo.setContractNo(contractInfo.getContractNo());
......@@ -1309,6 +1331,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
public BaseSearchListVO leaveToReduceContract(BaseSearchListVO paramVo) {
List<String> idList = new ArrayList<>();
List<BaseSearchVO> listParam = paramVo.getListParam();
String userName = paramVo.getUserName();
Map<String, BaseSearchVO> paramMap = new HashMap<>();
for (BaseSearchVO param : listParam) {
idList.add(param.getSearchKey());
......@@ -1327,6 +1350,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
for (EmployeeContractVO vo : excelVOList) {
i++;
vo.setRowIndex(i);
vo.setLeaveName(userName);
baseSearchVO = paramMap.get(vo.getContractId());
leaveId = null;
if (baseSearchVO != null) {
......@@ -2257,6 +2281,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
public String getContractByEmpIdCardAndDeptNo(String empIdCard, String deptNo) {
return baseMapper.getContractByEmpIdCardAndDeptNo(empIdCard, deptNo);
}
@Override
public String getContractByEmpIdCardAndDeptNoByEnd(String empIdCard, String deptNo) {
return baseMapper.getContractByEmpIdCardAndDeptNoByEnd(empIdCard, deptNo);
}
@Override
public String getMinDateByCardAndDeptId(IdNameNoVo vo) {
......@@ -2505,16 +2533,20 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
}
}
private YifuUser getNewYifuUser() {
private YifuUser getNewYifuUser(String leaveName) {
if (Common.isEmpty(leaveName)) {
leaveName = "自动化派单";
}
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
return new YifuUser("6", 1L, "", "自动化派单",
"自动化派单", "0", SecurityConstants.BCRYPT + "123456",
return new YifuUser("6", 1L, "", leaveName,
leaveName, "0", SecurityConstants.BCRYPT + "123456",
"12345678911", true, true, true,
true,
"1", authorities, "1",
null, null,
null,null);
}
}
......@@ -4770,6 +4770,9 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
returnVo.setResultIdThree(contractId);
returnVo.setResultIdThreeStatus("可用");
}
// 如果没有可用的,查找终止的,放在离职待办的详情里
String contractEndId = contractServicer.getContractByEmpIdCardAndDeptNoByEnd(paramVo.getEmpIdCard(), paramVo.getDeptNo());
returnVo.setResultIdFourStatus(contractEndId);
}
return returnVo;
}
......
......@@ -573,9 +573,12 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
if (newInfo.getServerItem().contains("公积金") && dispatchInfoFundPreOldVo != null && dispatchInfoFundPreVo != null) {
Date expectedCollectionTime = dispatchInfoFundPreVo.getExpectedCollectionTime();
Date expectedConfirmTime = dispatchInfoFundPreVo.getExpectedConfirmTime();
//如果自动触发派增为是,计算派单发起时间和派单确认时间
initFundTime(dispatchInfoFundPreVo);
differenceFundKey = HrEquator.comparisonValueIgnoreField(dispatchInfoFundPreOldVo
, dispatchInfoFundPreVo, SOCIAL_IGNORE_FIELD);
//如果自动触发派增为是,计算派单发起时间和派单确认时间
if (differenceFundKey.length() > 0) {
if (Common.isNotNull(diffTitle)) {
diffTitle += "、公积金信息";
......@@ -589,6 +592,8 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
differenceFundKey, logId, detailEmpLog);
detailList.add(detailEmpLog);
}
dispatchInfoFundPreVo.setExpectedCollectionTime(expectedCollectionTime);
dispatchInfoFundPreVo.setExpectedConfirmTime(expectedConfirmTime);
}
// 有修改,则加日志
......@@ -640,9 +645,8 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
initFundPreInfo(preVo, preVo.getDispatchInfoFundPreVo(), user, empPreId);
}
//如果页面传承为不修改则不更新数据
if (null != preVo && null != preVo.getDispatchInfoFundPreVo()
&& null != preVo.getDispatchInfoFundPreVo().getFundUpdateFlag()
&& preVo.getDispatchInfoFundPreVo().getFundUpdateFlag().booleanValue()){
if (null != preVo && null != preVo.getFundUpdateFlag()
&& preVo.getFundUpdateFlag().booleanValue()){
socialDaprUtils.saveFundPreInfo(preVo);
}
}
......@@ -660,37 +664,17 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
}
private TDispatchInfoPreVo initFundTime(TDispatchInfoPreVo preVo ,Date joinLeaveDate) {
private TDispatchInfoPreVo initFundTime(TDispatchInfoPreVo preVo) {
if (null == preVo){
preVo = new TDispatchInfoPreVo();
}
if (Common.isNotNull(preVo.getIsAutoDis()) && CommonConstants.ZERO_STRING.equals(preVo.getIsAutoDis())
&& Common.isNotNull(preVo.getExpectedCollectionType())) {
TEmployeeContractDateVo vo = new TEmployeeContractDateVo();
//接收方式 0项目配置 1自定义
if (CommonConstants.ONE_STRING.equals(preVo.getReceiveType())){
vo.setMonthAfter(CommonConstants.ZERO_INT);
vo.setYearAfter(0);
vo.setRegistDate(preVo.getSocialStartDate());
}else {
//先计算起缴日期
if (CommonConstants.ZERO_STRING.equals(preVo.getFundDateType())){
//用户选择起缴日期类型为入职日期,以入职日期为基准
vo.setMonthAfter(CommonConstants.ZERO_INT);
vo.setYearAfter(0);
vo.setRegistDate(joinLeaveDate);
}else if (CommonConstants.ONE_STRING.equals(preVo.getFundDateType())){
//用户选择起缴日期类型为入职满一年次月,以入职日期为基准 加上年月调整
vo.setMonthAfter(CommonConstants.ONE_INT);
vo.setYearAfter(CommonConstants.ONE_INT);
vo.setRegistDate(joinLeaveDate);
}else if (CommonConstants.TWO_STRING.equals(preVo.getFundDateType())){
//用户自定义取值用户填写的起缴日期为基准
vo.setMonthAfter(CommonConstants.ZERO_INT);
vo.setYearAfter(0);
vo.setRegistDate(preVo.getFundStartDate());
}
}
vo.setMonthAfter(CommonConstants.ZERO_INT);
vo.setYearAfter(0);
vo.setRegistDate(preVo.getFundStartDate());
Date date = this.addYearsMonths(vo);
if (CommonConstants.ONE_STRING.equals(preVo.getFundDateType())){
date = DateUtil.getFirstDay(date);
......
......@@ -129,6 +129,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
@Autowired
@Lazy
private EmployeeRegistrationPreService registrationPreService;
private StringBuilder errorTemp;
@Override
public TSalaryStandardSelectViewVo getUnProjectEmpList(List<TSalaryStandardUnprojectVo> voList) {
......@@ -766,10 +767,11 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
errorMessage.append(";");
errorMessage.append(leaveReason);
errorMessage.append(";");
if (Common.isEmpty(excel.getLeaveRemark())) {
errorMessage.append("");
errorMessage.append(";");
}
// 倩倩说优化一下,没有这个就不显示,且这段特殊逻辑代码不删除,以作历史记录(历史代码是wzb写的,应该是特殊要求
/*if Common.isEmpty(excel.getLeaveRemark(
errorMessage.append("")
errorMessage.append(";")
*/
if (Common.isNotNull(excel.getLeaveRemark())) {
errorMessage.append(excel.getLeaveRemark());
errorMessage.append(";");
......
......@@ -878,6 +878,15 @@
and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2' AND e.IN_USE = '0'
limit 1
</select>
<!-- 查找最近一次终止的合同 -->
<select id="getContractByEmpIdCardAndDeptNoByEnd" resultType="java.lang.String">
select
e.id
from t_employee_contract_info e
where e.EMP_IDCARD = #{empIdCard} and e.DEPT_NO = #{deptNo}
and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2' AND e.IN_USE = '1' and e.SITUATION = '终止'
ORDER BY e.CREATE_TIME desc limit 1
</select>
<!-- 获取最小的审核通过的合同,税友自动生成 离职证明书使用 -->
<select id="getMinDateByCardAndDeptId" resultType="java.lang.String">
......
......@@ -329,6 +329,8 @@ public interface CommonConstants {
String RESULT_DATA_SUCESS= "操作成功";
String SAVE_SUCCESS = "保存成功!";
// 保存并审核通过-合同专用,离职待办同步使用
String SAVE_AND_UPDATE = "保存成功!!";
String UPDATE_SUCCESS = "更新成功!";
......
......@@ -148,7 +148,17 @@ public class Common {
Matcher match = pattern.matcher(str);
return match.matches() != false;
}
// 字符串为数字 可以带N位小数点
private static final Pattern NUMBER_PATTERN = compile("^-?\\d+(\\.\\d+)?$");
public static boolean isNumberStr(String str) {
// 判断字符串为数字 可以带N位小数点的正则表达式
if (str == null || str.isEmpty()) {
return false;
}
Matcher match = NUMBER_PATTERN.matcher(str);
return match.matches();
}
/**
* 允许上传的文件类型
*
......@@ -793,10 +803,8 @@ public class Common {
return false;
}
// 使用正则表达式匹配格式
// 格式要求: 数字(可带小数),数字(可带小数);数字(可带小数),数字(可带小数);...
// 其中数字为一个或多个数字字符,可能包含小数点
return str.matches("\\d+(\\.\\d+)?,\\d+(\\.\\d+)?(;\\d+(\\.\\d+)?,\\d+(\\.\\d+)?)*");
// 使用正则表达式匹配格式 10.01,10;12,13 ,数字最多两位小数
return str.matches("\\d+(\\.\\d{1,2})?,\\d+(\\.\\d{1,2})?(;\\d+(\\.\\d{1,2})?,\\d+(\\.\\d{1,2})?)*");
}
/**
* 校验字符串是否符合格式 2025-11 或 2025/11 或202511
......
package com.yifu.cloud.plus.v1.yifu.common.core.util;
import com.alibaba.excel.converters.date.DateDateConverter;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.sms.MonthObject;
import lombok.extern.slf4j.Slf4j;
......@@ -874,6 +875,24 @@ public class DateUtil {
return calendar.getTime();
}
/**
* 获得指定天数的日期
*
* @param i
* @return
* @Author fxj
* @Date 2019-09-18
**/
public static Date getDateByDayNum(int i) {
// 取时间
Date date = stringToDate(formatDate(new Date()));
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
// 把日期往后增加一个月.整数往后推,负数往前移动
calendar.add(Calendar.DAY_OF_MONTH, i);
return calendar.getTime();
}
/**
* @param @param i
* @param @return 参数
......
......@@ -697,6 +697,11 @@ public class ExcelUtil <T> implements Serializable {
}
//最大值校验
if (Common.isNotNull(attr.max()) && !CommonConstants.ZERO_STRING.equals(attr.max())) {
//先判断是否为科学计数的数,然后转换成非科学计数的字符串
if (c.indexOf("E+") >= 0 && Common.isNumberStr(c.replace("E+", ""))){
//如果金额科学计数,转出正常值 如 c = 1.23456789E+9 转换成 c = 1234567890
c = new BigDecimal(c).toPlainString();
}
if (Common.isNumber(c)) {
if (attr.isDouble() && Double.doubleToLongBits(Double.valueOf(c).doubleValue()) > Double.valueOf(attr.max()).doubleValue()){
return errorInfo(attr, "_超出最大值", i);
......@@ -708,12 +713,17 @@ public class ExcelUtil <T> implements Serializable {
return errorInfo(attr, "_超出最大值", i);
}
}
} else {
}else {
return errorInfo(attr, "_必须为数字且最多两位小数", i);
}
}
//最小值校验
if (attr.min() > 0) {
//先判断是否为科学计数的数,然后转换成非科学计数的字符串
if (c.indexOf("E+") >= 0 && Common.isNumberStr(c.replace("E+", ""))){
//如果金额科学计数,转出正常值 如 c = 1.23456789E+9 转换成 c = 1234567890
c = new BigDecimal(c).toPlainString();
}
if (Common.isNumber(c)) {
if (attr.isFloat()){
if (Float.valueOf(c).compareTo(attr.min()) < CommonConstants.ZERO_INT) {
......
......@@ -17,6 +17,8 @@ public class HolidayCrawler {
* 年度法定节假日、公休日查询接口地址
*/
private static final String YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+DateUtil.getYear(new Date())+"&workday=2&order_by=1&cn=1&page=1&size=500";
private static final String NEXT_YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+(DateUtil.getYearOfInt(new Date())+1)+"&workday=2&order_by=1&cn=1&page=1&size=500";
/**
* http请求工具类
*/
......@@ -42,4 +44,25 @@ public class HolidayCrawler {
}
return null;
}
public static List<Map<String,Object>> initNextYearHolidays(){
long ts = System.currentTimeMillis();
Map<String,Object> result = REST_TEMPLATE.getForObject(String.format(NEXT_YEAR_HOLIDAY_URL, ts, ts), Map.class);
if(null!=result){
String code=String.valueOf(result.get("code"));
String msg=String.valueOf(result.get("msg"));
if(code.equals("0") && msg.equals("ok")){
Map data= (Map) result.get("data");
if(null!=data){
List<Map<String,Object>> list= (List<Map<String, Object>>) data.get("list");
return list;
/*int i=0;
for(Map<String,Object> d:list){
System.out.println("i="+(++i)+" 日期="+d.get("date")+" 类型="+d.get("weekend")+" weekend_cn="+d.get("weekend_cn"));
}*/
}
}
}
return null;
}
}
......@@ -17,6 +17,7 @@
package com.yifu.cloud.plus.v1.csp.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
......@@ -26,6 +27,7 @@ import lombok.Data;
* @date 2025-11-19 19:23:15
*/
@Data
@ColumnWidth(17)
public class EmployeeRegistrationLeaveConfirmExportVo {
@ExcelProperty("项目名称")
......
......@@ -17,6 +17,7 @@
package com.yifu.cloud.plus.v1.csp.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
......@@ -26,6 +27,7 @@ import lombok.Data;
* @date 2025-11-19 19:23:15
*/
@Data
@ColumnWidth(17)
public class EmployeeRegistrationLeaveExportVo {
@ExcelProperty("项目名称")
......
package com.yifu.cloud.plus.v1.csp.config;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import java.util.Collections;
/**
* CORS资源共享配置
*
*/
@Configuration
public class CorsConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
//1.允许任何来源
corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*"));
//2.允许任何请求头
corsConfiguration.addAllowedHeader(CorsConfiguration.ALL);
//3.允许任何方法
corsConfiguration.addAllowedMethod(CorsConfiguration.ALL);
//4.允许凭证
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
CorsFilter corsFilter = new CorsFilter(source);
FilterRegistrationBean<CorsFilter> filterRegistrationBean=new FilterRegistrationBean<>(corsFilter);
// 前Spring Security 过滤器是通过 SecurityFilterAutoConfiguration 的 DelegatingFilterProxyRegistrationBean 注册到 servletContext上下文,其中过滤器的顺序属性 Order 读取的 是 SecurityProperties 的默认配置也就是 -100;
filterRegistrationBean.setOrder(-101); // 小于 SpringSecurity Filter的 Order(-100) 即可
return filterRegistrationBean;
}
}
......@@ -685,7 +685,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.other(CommonConstants.THREE_INT,null,"该人员存在在途/有效的公积金数据,请将'是否已参保'调整为'是'");
}
//判断公积金基数 是否小于 公积金户配置的最低基数
if (Common.isNotNull(preVo.getDispatchInfoFundPreVo().getConfigHouseId())
/*if (Common.isNotNull(preVo.getDispatchInfoFundPreVo().getConfigHouseId())
&& Common.isNotNull(preVo.getDispatchInfoFundPreVo().getProvidentCardinal())){
R<SysBaseSetInfoVo> resR = socialDaprUtils.getSocialHouseBaseSet(preVo.getDispatchInfoFundPreVo().getConfigHouseId());
if (Common.isNotNull(resR) && resR.getData() != null) {
......@@ -697,7 +697,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}else {
return R.other(CommonConstants.THREE_INT,null,"获取公积金配置信息失败!");
}
}
}*/
}
//点击“接收确认”的时候,监测到该人员该项目下已有在项的档案时,再次提醒:该人员已在项,
......@@ -889,15 +889,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (CommonConstants.ONE_STRING.equals(preVo.getFundDateType())){
date = DateUtil.getFirstDay(date);
}
TEmployeeInsuranceWorkDayVo dayVo = new TEmployeeInsuranceWorkDayVo();
dayVo.setType(CommonConstants.TWO_STRING);
dayVo.setRegistDate(date);
dayVo.setRegistType(0);
R<TEmployeeInsuranceWorkDayVo> dataR = socialDaprUtils.getContractAfterWorkDay(dayVo);
if (Common.isNotNull(dataR) && Common.isNotNull(dataR.getData())
&& Common.isNotNull(dataR.getData().getRegistDate())) {
preVo.setFundStartDate(dataR.getData().getRegistDate());
}
preVo.setFundStartDate(date);
}
}
......@@ -1206,7 +1198,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
continue;
}
//判断公积金基数 是否小于 公积金户配置的最低基数
if (Common.isNotNull(preVo.getDispatchInfoFundPreVo().getConfigHouseId())
/*if (Common.isNotNull(preVo.getDispatchInfoFundPreVo().getConfigHouseId())
&& Common.isNotNull(preVo.getDispatchInfoFundPreVo().getProvidentCardinal())){
resR = socialDaprUtils.getSocialHouseBaseSet(preVo.getDispatchInfoFundPreVo().getConfigHouseId());
if (Common.isNotNull(resR) && resR.getData() != null) {
......@@ -1224,7 +1216,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
errorList.add(exitCheckVo);
continue;
}
}
}*/
}
//点击“接收确认”的时候,监测到该人员该项目下已有在项的档案时,再次提醒:该人员已在项,
//状态将更新成“已处理”;处理记录中,针对此情况,记录真实的进项时间,备注:先于登记入项
......@@ -1463,7 +1455,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (null != preVo.getExitFundInfoList() && !preVo.getExitFundInfoList().isEmpty()) {
preVo.getExitFundInfoList().forEach(fundPreDetailVo -> fundPreDetailVo.setRegisterId(domainR.getData()));
}
//生成社保待购买或者已购买数据
//生成公积金待购买或者已购买数据
if (null != preVo.getDispatchInfoFundPreVo()) {
initFundPreInfo(registrationNow, preVo.getDispatchInfoFundPreVo(), user, domainR.getData());
}
......@@ -1863,7 +1855,12 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && domainR.getData().getDeptNos().size() > 0) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
domainR = archivesDaprUtil.getAllDeptByCustomerLoginName(user.getUsername());
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && !domainR.getData().getDeptNos().isEmpty()) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
}
}
}
}
......
......@@ -473,7 +473,7 @@ when '4' then '待减员' when '5' then '待办理' when '6' then '减员中' wh
</if>
</where>
ORDER BY b.create_time desc,b.id asc
limit 2000
limit 5
</select>
<!--离职确认列表-->
<select id="getEmployeeRegistrationLeaveConfirmTablePage" resultMap="tableAndExportMap">
......@@ -604,19 +604,19 @@ when '4' then '待减员' when '5' then '待办理' when '6' then '减员中' wh
<if test="idList != null and idList.size() > 0">
<if test="doType != null and doType.trim() != ''">
<if test='doType == "1" '>
and a.social_id in
and a.do_status_social not in ('0','1') and a.social_id in
</if>
<if test='doType == "2" '>
and a.fund_id in
and a.do_status_fund not in ('0','1') and a.fund_id in
</if>
<if test='doType == "4" '>
and a.contract_id in
and a.do_status_contract not in ('0','1') and a.contract_id in
</if>
<if test='doType == "5" '>
and a.emp_project_id in
and a.do_status_project not in ('0','1') and a.emp_project_id in
</if>
<if test='doType == "6" '>
and a.emp_id in
and a.do_status_emp not in ('0','1') and a.emp_id in
</if>
<foreach collection="idList" item="param" index="index" open="(" close=")" separator=",">
#{param}
......@@ -633,7 +633,7 @@ when '4' then '待减员' when '5' then '待办理' when '6' then '减员中' wh
<include refid="Base_Column_List"/>
FROM employee_registration_leave a
JOIN employee_registration_leave_insurance i on a.id=i.leave_id
where i.insurance_id in
where a.do_status_insurance not in ('0','1') and a.insurance_id is not null and i.insurance_id in
<foreach collection="idList" item="param" index="index" open="(" close=")" separator=",">
#{param}
</foreach>
......
......@@ -271,5 +271,26 @@ public class TInsuranceAlert extends BaseEntity {
@Schema(description = "新派单的商险ID")
private String insurancesIdNew;
/**
* 保单开始时间
*/
@TableField(exist = false)
@Schema(description = "保单开始时间-新")
private LocalDate policyStartNew;
/**
* 保单结束时间
*/
@TableField(exist = false)
@Schema(description = "保单结束时间-新")
private LocalDate policyEndNew;
/**
* 保单生效日期
*/
@TableField(exist = false)
@Schema(description = "保单生效日期-新")
private LocalDate policyEffectNew;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -53,6 +53,10 @@ public class TInsuranceAlertSearchVo extends TInsuranceAlert {
@Schema(description = "状态多个")
@TableField(exist = false)
private String[] processStatusArray;
@Schema(description = "状态多个查询")
@TableField(exist = false)
private String[] processStatusArraySearch;
/**
* @Author fxj
* 导出选择的ID
......
......@@ -3192,105 +3192,89 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
**/
private boolean checkIsExit(List<InsuranceAddParam> listResult, InsuranceAddParam param, List<TInsurancePreDetail> listInsured) {
if (Common.isNotNull(listInsured) && !listInsured.isEmpty()) {
List<TInsurancePreDetail> insured1 = new ArrayList<>();
List<TInsurancePreDetail> insured2 = new ArrayList<>();
boolean flag = false;
for (TInsurancePreDetail detail: listInsured){
//如果保单生效日期为空就不需校验,按原逻辑处理 提示存在在途或在保数据
if (Common.isEmpty(detail.getPolicyEffect())) {
insured1.add(detail);
continue;
flag = true;
break;
}
//保单生效日期及保单结束时间与新增数据的保单开始时间及保单结束时间重叠判断,重叠给提示,不重叠允许新增不走原逻辑
if (LocalDateUtil.hasOverlap(detail.getPolicyEffect(), detail.getPolicyEnd(),
DateUtil.stringToDate(param.getPolicyStart(), LocalDateUtil.NORM_DATE_PATTERN),
DateUtil.stringToDate(param.getPolicyEnd(), LocalDateUtil.NORM_DATE_PATTERN))) {
insured2.add(detail);
continue;
flag = true;
break;
}
}
if (!insured1.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(insured1);
listResult.add(param);
return true;
}
if (!insured2.isEmpty()){
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_REPEAT);
param.setInProgressList(insured2);
listResult.add(param);
return true;
if (flag){
if (!listInsured.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(listInsured);
listResult.add(param);
return true;
}
}
}
return false;
}
private boolean checkReplaceIsExit(List<InsuranceReplaceParam> listResult, InsuranceReplaceParam param, List<TInsurancePreDetail> listInsured) {
private boolean checkReplaceIsExit(List<InsuranceReplaceParam> listResult,
InsuranceReplaceParam param,
List<TInsurancePreDetail> listInsured) {
if (Common.isNotNull(listInsured) && !listInsured.isEmpty()) {
List<TInsurancePreDetail> insured1 = new ArrayList<>();
List<TInsurancePreDetail> insured2 = new ArrayList<>();
boolean flag = false;
for (TInsurancePreDetail detail: listInsured){
//如果保单生效日期为空就不需校验,按原逻辑处理 提示存在在途或在保数据
if (Common.isEmpty(detail.getPolicyEffect())) {
insured1.add(detail);
continue;
flag = true;
break;
}
//保单生效日期及保单结束时间与新增数据的保单开始时间及保单结束时间重叠判断,重叠给提示,不重叠允许新增不走原逻辑
if (LocalDateUtil.hasOverlap(detail.getPolicyEffect(), detail.getPolicyEnd(),
DateUtil.stringToDate(param.getPolicyStart(), LocalDateUtil.NORM_DATE_PATTERN),
DateUtil.getDateByDayNum(1),
DateUtil.stringToDate(param.getPolicyEnd(), LocalDateUtil.NORM_DATE_PATTERN))) {
insured2.add(detail);
continue;
flag = true;
break;
}
}
if (!insured1.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(insured1);
listResult.add(param);
return true;
}
if (!insured2.isEmpty()){
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_REPEAT);
param.setInProgressList(insured2);
listResult.add(param);
return true;
if (flag){
if (!listInsured.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(listInsured);
listResult.add(param);
return true;
}
}
}
return false;
}
private boolean checkBatchIsExit(List<InsuranceBatchParam> listResult, InsuranceBatchParam param, List<TInsurancePreDetail> listInsured) {
if (Common.isNotNull(listInsured) && !listInsured.isEmpty()) {
List<TInsurancePreDetail> insured1 = new ArrayList<>();
List<TInsurancePreDetail> insured2 = new ArrayList<>();
boolean flag = false;
for (TInsurancePreDetail detail: listInsured){
//如果保单生效日期为空就不需校验,按原逻辑处理 提示存在在途或在保数据
if (Common.isEmpty(detail.getPolicyEffect())) {
insured1.add(detail);
continue;
flag = true;
break;
}
//保单生效日期及保单结束时间与新增数据的保单开始时间及保单结束时间重叠判断,重叠给提示,不重叠允许新增不走原逻辑
if (LocalDateUtil.hasOverlap(detail.getPolicyEffect(), detail.getPolicyEnd(),
DateUtil.convertToDateByLocalDate(param.getPolicyStart()),
DateUtil.getDateByDayNum(1),
DateUtil.convertToDateByLocalDate(param.getPolicyEnd()))) {
insured2.add(detail);
continue;
flag = true;
break;
}
}
if (!insured1.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(insured1);
listResult.add(param);
return true;
}
if (!insured2.isEmpty()){
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_REPEAT);
param.setInProgressList(insured2);
listResult.add(param);
return true;
if (flag){
if (!listInsured.isEmpty()) {
param.setIsExit(CommonConstants.ONE_STRING);
param.setErrorMessage(InsurancesConstants.DIS_PERSON_DATA_IS_EXIST);
param.setInProgressList(listInsured);
listResult.add(param);
return true;
}
}
}
return false;
......@@ -8476,9 +8460,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
if (successNum == ids.size()) {
return R.ok();
} else if (successNum == CommonConstants.ZERO_INT) {
return R.failed();
} else {
int failNum = ids.size() - successNum;
return R.ok("成功"+successNum+"条;"+"失败"+failNum+"条");
return new R<>(CommonConstants.TWO_INT, "成功"+successNum+"条;"+"失败"+failNum+"条", null);
}
} else {
return R.failed("无数据可操作");
......
......@@ -160,7 +160,12 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && !domainR.getData().getDeptNos().isEmpty()) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
domainR = archivesDaprUtil.getAllDeptByCustomerLoginName(user.getUsername());
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && !domainR.getData().getDeptNos().isEmpty()) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
}
}
}
}
......@@ -320,7 +325,7 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
detail.setPolicyEffectOld(vo.getPolicyEffect());
detail.setPolicyStartOld(vo.getPolicyStart());
detail.setPolicyEndOld(vo.getPolicyEnd());
detail.setBuyType(vo.getBuyType());
detail.setBuyType(CommonConstants.ONE_INT);
detail.setConfigId(vo.getConfigId());
detail.setConfigName(vo.getConfigName());
detail.setInsuranceCompanyName(vo.getInsuranceCompanyName());
......@@ -332,12 +337,13 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
AutoDeptDetailVO detailVO = deptMap.get(vo.getDeptNo());
// 预计派单时间
if (Common.isNotNull(vo.getPolicyEnd())) {
detail.setPolicyStart(vo.getPolicyEnd().plusDays(CommonConstants.ONE_INT));
detail.setPolicyEffect(detail.getPolicyStart());
LocalDate days = calculateThreeWorkDays(vo.getPolicyEnd(), holidayMap);
if (days != null && Common.isNotNull(days)) {
// 新增逻辑
detail.setExpectedCollectionTime(days.atTime(15, 20));
detail.setPolicyStart(days.plusDays(CommonConstants.ONE_INT));
detail.setPolicyEffect(detail.getPolicyStart());
Integer month = CommonConstants.ONE_INT;
if (detailVO != null && Common.isNotNull(detailVO.getNum())) {
month = detailVO.getNum();
......@@ -416,7 +422,7 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
// 获取下一个工作日
public LocalDate getNextWorkday(LocalDate date, Map<String, Integer> holidayMap) {
LocalDate result = date.plusDays(CommonConstants.ONE_INT);
while (!this.isWorkday(date, holidayMap)) {
while (!this.isWorkday(result, holidayMap)) {
result = result.plusDays(CommonConstants.ONE_INT);
}
return result;
......
......@@ -2225,7 +2225,7 @@
a.id
from
t_insurance_detail a
where a.DELETE_FLAG = 0 and a.REDUCE_HANDLE_STATUS != 4
where a.DELETE_FLAG = 0 and (a.REDUCE_HANDLE_STATUS is null or a.REDUCE_HANDLE_STATUS != 4)
and a.EMP_IDCARD_NO = #{empIdCard}
and a.DEPT_NO = #{deptNo}
......
......@@ -308,7 +308,7 @@
JOIN t_insurance_alert b ON b.INSURANCES_PRE_RENEW_DETAIL_ID = a.ID
where b.EXPIRE_IGNORE_FLAG = '1' and b.DELETE_FLAG=0 and a.is_leave = '0' and b.IS_OVERDUE = 0
AND a.process_status in ('0','1','2','5')
and DATE_FORMAT(a.expected_collection_time,"%Y-%m-%d") <![CDATA[ <= ]]> CURDATE()
and DATE_FORMAT(a.expected_collection_time,"%Y-%m-%d") <![CDATA[ <= ]]> DATE_FORMAT(CURDATE(),"%Y-%m-%d")
</select>
<!-- 获取所有待确认的数据 -->
......@@ -319,7 +319,7 @@
JOIN t_insurance_alert b ON b.INSURANCES_PRE_RENEW_DETAIL_ID = a.ID
where b.EXPIRE_IGNORE_FLAG = '1' and b.DELETE_FLAG=0 and a.is_leave = '0' and b.IS_OVERDUE = 0
AND a.process_status = '0' and DATE_FORMAT(a.confirm_Date,"%Y-%m-%d") <![CDATA[ <= ]]> CURDATE()
AND DATE_FORMAT(a.expected_collection_time,"%Y-%m-%d") >= CURDATE()
group by a.customer_user_loginname
</select>
......
......@@ -56,6 +56,9 @@
<result property="isAddress" column="IS_ADDRESS" jdbcType="CHAR"/>
<result property="expectedCollectionTime" column="expected_collection_time" jdbcType="TIMESTAMP"/>
<result property="insurancesIdNew" column="INSURANCES_ID_NEW" jdbcType="VARCHAR"/>
<result property="policyStartNew" column="POLICY_START_NEW" jdbcType="DATE"/>
<result property="policyEndNew" column="POLICY_END_NEW" jdbcType="DATE"/>
<result property="policyEffectNew" column="POLICY_EFFECT_NEW" jdbcType="DATE"/>
</resultMap>
<!-- 商险续签待办专用 -->
......@@ -270,6 +273,14 @@
AND DATE_FORMAT(now(),'%Y-%m-%d') >= DATE_FORMAT(b.expected_collection_time,'%Y-%m-%d')
</if>
</if>
<if test="tInsuranceAlert.processStatusArraySearch != null and tInsuranceAlert.processStatusArraySearch.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArraySearch" open="("
separator="," close=")">
#{statusStr}
</foreach>
</if>
<if test="tInsuranceAlert.processStatusArray != null and tInsuranceAlert.processStatusArray.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArray" open="("
......@@ -285,7 +296,57 @@
<!--tInsuranceAlert简单分页查询-->
<select id="getTInsuranceAlertList2000" resultMap="BaseResultMap">
SELECT
<include refid="Alert_Column_List"/>
a.ID,
a.EMP_NAME,
a.EMP_IDCARD_NO,
a.DEPT_NO,
a.POST,
b.INSURANCE_COMPANY_NAME,
b.INSURANCE_TYPE_NAME,
b.INSURANCE_CITY_NAME,
a.INSURANCE_HANDLE_CITY_NAME,
a.INSURANCE_HANDLE_PROVINCE_NAME,
b.INSURANCE_PROVINCE_NAME,
b.BUY_STANDARD,
a.UNIT_NAME,
a.UNIT_NO,
a.SETTLE_TYPE,
a.POLICY_EFFECT,
a.EXPIRE_REMARK,
a.EXPIRE_IGNORE_FLAG,
a.SETTLE_MONTH,
a.POLICY_START,
a.POLICY_END,
a.ACTUAL_PREMIUM,
a.ESTIMATE_PREMIUM,
a.INVOICE_NO,
a.MEDICAL_QUOTA,
a.DIE_DISABLE_QUOTA,
a.DEPT_NAME,
a.POLICY_NO,
a.IS_OVERDUE,
a.REMARK,
a.CREATE_BY,
a.DELETE_FLAG,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.CREATE_USER_DEPT_NAME,
a.IS_EFFECT,
a.ALERTER,
a.ALERT_ID,
a.HAVE_WORK_DAY,
a.INSURANCES_PRE_RENEW_DETAIL_ID,
b.BUY_TYPE,
b.process_status,
b.error_info,
b.error_time
,DATE_FORMAT(b.expected_collection_time,'%Y-%m-%d %H:%i') expected_collection_time
,b.INSURANCES_ID_NEW,
b.POLICY_EFFECT POLICY_EFFECT_NEW,
b.POLICY_START POLICY_START_NEW,
b.POLICY_END POLICY_END_NEW
FROM t_insurance_alert a
JOIN t_insurance_pre_renew_detail b ON a.INSURANCES_PRE_RENEW_DETAIL_ID = b.ID
<where>
......@@ -297,6 +358,13 @@
AND DATE_FORMAT(now(),'%Y-%m-%d') >= DATE_FORMAT(b.expected_collection_time,'%Y-%m-%d')
</if>
</if>
<if test="tInsuranceAlert.processStatusArraySearch != null and tInsuranceAlert.processStatusArraySearch.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArraySearch" open="("
separator="," close=")">
#{statusStr}
</foreach>
</if>
<if test="tInsuranceAlert.processStatusArray != null and tInsuranceAlert.processStatusArray.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArray" open="("
......@@ -325,6 +393,14 @@
AND DATE_FORMAT(now(),'%Y-%m-%d') >= DATE_FORMAT(b.expected_collection_time,'%Y-%m-%d')
</if>
</if>
<if test="tInsuranceAlert.processStatusArraySearch != null and tInsuranceAlert.processStatusArraySearch.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArraySearch" open="("
separator="," close=")">
#{statusStr}
</foreach>
</if>
<if test="tInsuranceAlert.processStatusArray != null and tInsuranceAlert.processStatusArray.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArray" open="("
......@@ -357,6 +433,14 @@
AND DATE_FORMAT(now(),'%Y-%m-%d') >= DATE_FORMAT(b.expected_collection_time,'%Y-%m-%d')
</if>
</if>
<if test="tInsuranceAlert.processStatusArraySearch != null and tInsuranceAlert.processStatusArraySearch.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArraySearch" open="("
separator="," close=")">
#{statusStr}
</foreach>
</if>
<if test="tInsuranceAlert.processStatusArray != null and tInsuranceAlert.processStatusArray.length > 0">
AND b.PROCESS_STATUS in
<foreach item="statusStr" index="index" collection="tInsuranceAlert.processStatusArray" open="("
......
......@@ -11,6 +11,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.math.BigDecimal;
/**
* @Author fxj
* @Description 入职确认信息公积金已购买记录
......@@ -112,4 +114,18 @@ public class TFundPreDetail extends BaseEntity {
@Schema(description = "派单时间")
private String dispatchTime;
/**
* 单位公积金缴纳比例
*/
private BigDecimal unitProvidentPer;
/**
* 个人公积金缴纳比例
*/
private BigDecimal personalProvidentPer;
/**
* 单位公积金缴纳基数
*/
private BigDecimal providentCardinal;
}
......@@ -55,7 +55,7 @@ public class SysBaseSetFundExportVo implements Serializable {
/**
* 0.在用1.终止2过期
*/
@ExcelAttribute(name = "状态",readConverterExp = "0=在用,1=终止,2=过期")
@ExcelAttribute(name = "状态",readConverterExp = "0=启用,1=禁用,2=过期")
@Schema(description = "状态")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("状态")
......
......@@ -44,7 +44,7 @@ public class SysBaseSetSocialExportVo implements Serializable {
/**
* 0.在用1.终止2过期
*/
@ExcelAttribute(name = "状态",readConverterExp = "0=在用,1=终止,2=过期")
@ExcelAttribute(name = "状态",readConverterExp = "0=启用,1=禁用,2=过期")
@Schema(description = "状态")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("状态")
......
......@@ -69,7 +69,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 养老基数上限
*/
@ExcelAttribute(name = "养老基数上限", isNotEmpty = true,isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "养老基数上限", isNotEmpty = true,max = "999999999.99",min = 0)
@Schema(description = "养老基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老基数上限")
......@@ -78,7 +78,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 养老基数下限
*/
@ExcelAttribute(name = "养老基数下限", isNotEmpty = true,isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "养老基数下限", isNotEmpty = true,max = "999999999.99",min = 0)
@Schema(description = "养老基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老基数下限")
......@@ -87,7 +87,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 工伤基数上限
*/
@ExcelAttribute(name = "工伤基数上限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "工伤基数上限",max = "999999999.99",min = 0)
@Schema(description = "工伤基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤基数上限")
......@@ -96,7 +96,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 工伤基数下限
*/
@ExcelAttribute(name = "工伤基数下限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "工伤基数下限",max = "999999999.99",min = 0)
@Schema(description = "工伤基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤基数下限")
......@@ -105,7 +105,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 医疗基数上限
*/
@ExcelAttribute(name = "医疗基数上限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "医疗基数上限",max = "999999999.99",min = 0)
@Schema(description = "医疗基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗基数上限")
......@@ -114,7 +114,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 医疗基数下限
*/
@ExcelAttribute(name = "医疗基数下限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "医疗基数下限",max = "999999999.99",min = 0)
@Schema(description = "医疗基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗基数下限")
......@@ -123,7 +123,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 生育基数上限
*/
@ExcelAttribute(name = "生育基数上限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "生育基数上限",max = "999999999.99",min = 0)
@Schema(description = "生育基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育基数上限")
......@@ -132,7 +132,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 生育基数下限
*/
@ExcelAttribute(name = "生育基数下限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "生育基数下限",max = "999999999.99",min = 0)
@Schema(description = "生育基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育基数下限")
......@@ -141,7 +141,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 失业基数上限
*/
@ExcelAttribute(name = "失业基数上限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "失业基数上限",max = "999999999.99",min = 0)
@Schema(description = "失业基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业基数上限")
......@@ -150,7 +150,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 失业基数下限
*/
@ExcelAttribute(name = "失业基数下限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "失业基数下限",max = "999999999.99",min = 0)
@Schema(description = "失业基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业基数下限")
......@@ -159,7 +159,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 大病基数上限
*/
@ExcelAttribute(name = "大病基数上限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "大病基数上限",max = "999999999.99",min = 0)
@Schema(description = "大病基数上限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大病基数上限")
......@@ -168,7 +168,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 大病基数下限
*/
@ExcelAttribute(name = "大病基数下限",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "大病基数下限",max = "999999999.99",min = 0)
@Schema(description = "大病基数下限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大病基数下限")
......@@ -222,7 +222,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位大病金额
*/
@ExcelAttribute(name = "单位大病金额",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "单位大病金额",max = "999999999.99",min = 0)
@Schema(description = "单位大病金额")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位大病金额")
......@@ -231,7 +231,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 个人大病金额
*/
@ExcelAttribute(name = "个人大病金额",isFloat = true,max = "9999999100.01",min = 0)
@ExcelAttribute(name = "个人大病金额",max = "999999999.99",min = 0)
@Schema(description = "个人大病金额")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人大病金额")
......@@ -249,7 +249,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 个人医疗比例
*/
@ExcelAttribute(name = "个人医疗比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "个人医疗比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "个人医疗比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人医疗比例")
......@@ -258,7 +258,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位生育缴纳比例
*/
@ExcelAttribute(name = "单位生育比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "单位生育比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "单位生育比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位生育比例")
......@@ -267,7 +267,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位养老缴纳比例
*/
@ExcelAttribute(name = "单位养老比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "单位养老比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "单位养老比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位养老比例")
......@@ -276,7 +276,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 个人养老比例
*/
@ExcelAttribute(name = "个人养老比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "个人养老比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "个人养老比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人养老比例")
......@@ -286,7 +286,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位工伤缴纳比例
*/
@ExcelAttribute(name = "单位工伤比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "单位工伤比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "单位工伤比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位工伤比例")
......@@ -295,7 +295,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位失业缴纳比例
*/
@ExcelAttribute(name = "单位失业比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "单位失业比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "单位失业比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位失业比例")
......@@ -304,7 +304,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 个人失业比例
*/
@ExcelAttribute(name = "个人失业比例", isNotEmpty = true,isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "个人失业比例", isNotEmpty = true,max = "100.01",min = 0)
@Schema(description = "个人失业比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人失业比例")
......@@ -313,7 +313,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 单位大病比例
*/
@ExcelAttribute(name = "单位大病比例",isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "单位大病比例",max = "100.01",min = 0)
@Schema(description = "单位大病比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位大病比例")
......@@ -322,7 +322,7 @@ public class SysBaseSetSocialInsertVo extends RowIndex implements Serializable {
/**
* 个人大病比例
*/
@ExcelAttribute(name = "个人大病比例",isFloat = true,max = "100.01",min = 0)
@ExcelAttribute(name = "个人大病比例",max = "100.01",min = 0)
@Schema(description = "个人大病比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人大病比例")
......
......@@ -209,6 +209,7 @@ public class SysBaseSetInfoController {
@Operation(description = "批量新增社保基数设置表")
@SysLog("批量新增社保基数设置表")
@PostMapping("/importListAddSocial")
@PreAuthorize("@pms.hasPermission('social_sysbasesetinfo_batch_add')")
public R<List<ErrorMessage>> importListAddSocial(@RequestBody MultipartFile file){
return sysBaseSetInfoService.importSocialDiy(file.getInputStream());
}
......@@ -220,6 +221,7 @@ public class SysBaseSetInfoController {
**/
@Operation(description = "导出社保基数设置表")
@PostMapping("/exportSocial")
@PreAuthorize("@pms.hasPermission('social_sysbasesetinfo_export')")
public void exportSocial(HttpServletResponse response, @RequestBody SysBaseSetInfo searchVo) {
sysBaseSetInfoService.listSocialExport(response,searchVo);
}
......@@ -234,6 +236,7 @@ public class SysBaseSetInfoController {
@Operation(description = "批量新增公积金基数设置表")
@SysLog("批量新增公积金基数设置表")
@PostMapping("/importListAddFund")
@PreAuthorize("@pms.hasPermission('fund_sysbasesetinfo_batch_add')")
public R<List<ErrorMessage>> importListAddFund(@RequestBody MultipartFile file){
return sysBaseSetInfoService.importFundDiy(file.getInputStream());
}
......@@ -245,6 +248,7 @@ public class SysBaseSetInfoController {
**/
@Operation(description = "导出公积金基数设置表")
@PostMapping("/exportFund")
@PreAuthorize("@pms.hasPermission('fund_sysbasesetinfo_export')")
public void exportFund(HttpServletResponse response, @RequestBody SysBaseSetInfo searchVo) {
sysBaseSetInfoService.listFundExport(response,searchVo);
}
......
......@@ -175,6 +175,18 @@ public class THolidayInfoController {
tHolidayInfoService.createHolidayInfo();
}
/**
* @Description: 手动生成次年年度假期表 --考虑到数据没出来可多次操作,线上再添加
* @Author: fxj
* @Date: 2024/5/8
**/
@Operation(summary = "手动生成次年年度假期表 ", description = "手动生成次年年度假期表 ")
@SysLog("手动生成次年年度假期表 ")
@PostMapping("/createNextYearHolidayInfo")
public void createNextYearHolidayInfo() {
tHolidayInfoService.createHolidayInfo();;
}
/**
* @Author huyc
* @Description 查询日期的前一个/后一个工作日
......
......@@ -71,10 +71,10 @@ public class TSocialFriendController {
return tSocialFriendService.testToSocialFriendGet();
}
@Operation(description = "测试线上税友接口返回值,慎用")
@GetMapping("/testToSocialFriendOnline")
@Operation(description = "测试线上税友接口返回值,慎用type : 空,查增,1 查减少")
@PostMapping("/testToSocialFriendOnline")
@SysLog("测试线上税友接口返回值,慎用")
public String testToSocialFriendOnline(@RequestParam List<String> requestIdList, @RequestParam(required = false) String type) {
public String testToSocialFriendOnline(@RequestBody List<String> requestIdList, @RequestParam(required = false) String type) {
return tSocialFriendService.testToSocialFriendOnline(requestIdList, type);
}
......
......@@ -50,4 +50,6 @@ public interface TDispatchInfoPreMapper extends BaseMapper<TDispatchInfoPre> {
long selectFundExportCount(@Param("tDispatchInfoPre") TDispatchInfoPreSearchVo searchVo);
long selectFundCount(@Param("tDispatchInfoPre") TDispatchInfoPreSearchVo searchVo);
}
......@@ -54,7 +54,9 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
TEmployeeInsuranceWorkDayVo getInitBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
void createNextYearHolidayInfo();
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo);
......
......@@ -653,7 +653,9 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
String insurancePension = null;
String startDateTemp = null;
String doMonthTemp = null;
for (int i = 0; i < excelVOList.size(); i++) {
infoVo = new SysBaseSetInfo();
excel = excelVOList.get(i);
hold = holdMap.get(excel.getDepartName());
......@@ -753,9 +755,7 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
infoVo.setLowerUnemployment(excel.getLowerPersion());
infoVo.setUpperLimit(excel.getUpPersion());
infoVo.setLowerLimit(excel.getLowerPersion());
//如果不是按比例后面要清空
excel.setUpBig(excel.getUpPersion());
excel.setLowerBig(excel.getLowerPersion());
}else if (CommonConstants.ONE_STRING.equals(excel.getIsSameBase())){
//工伤、医疗、生育、失业 必填
if (Common.isEmpty(excel.getUpInjury()) || Common.isEmpty(excel.getLowerInjury())
......@@ -781,10 +781,24 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
infoVo.setUpUnemployment(excel.getUpUnemployment());
infoVo.setLowerUnemployment(excel.getLowerUnemployment());
excel.setUpBig(excel.getUpBig());
excel.setLowerBig(excel.getLowerBig());
}
//各种比例需在0~100内
if (infoVo.getUpPersion().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getUpInjury().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getUpMedical().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getUpBirth().compareTo( BigDecimal.ZERO) < 0
|| infoVo.getUpUnemployment().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getLowerPersion().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getLowerInjury().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getLowerMedical().compareTo(BigDecimal.ZERO) < 0
|| infoVo.getLowerBirth().compareTo( BigDecimal.ZERO) < 0
|| infoVo.getLowerUnemployment().compareTo(BigDecimal.ZERO) < 0){
errorMsg = new ErrorMessage(excel.getRowIndex(),"基数上下限不能小于0,请修改后重新提交",excel);
errorMessageList.add(errorMsg);
continue;
}
//养老基数下限不可大于养老基数上限
if (null != infoVo.getUpPersion()
&& null != infoVo.getLowerPersion()
......@@ -880,27 +894,19 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
infoVo.setUpBig(excel.getUpPersion());
infoVo.setLowerBig(excel.getLowerPersion());
}else {
//大病缴纳周期为按月缴纳方式为按比例需要填写金额 无值提示
//大病缴纳周期为按月缴纳方式为按比例需要填比例 无值提示
if (null == excel.getUpBig()
|| null == excel.getLowerBig()
|| excel.getLowerBig().compareTo(BigDecimal.ZERO) < 0
|| excel.getUpBig().compareTo(BigDecimal.ZERO) < 0){
errorMsg = new ErrorMessage(excel.getRowIndex(),"大病是否收取为是时,大病缴纳周期为“按月且按比例”的,单位或个人大病基数上下限字段必填,仅填写正确基数即可,请修改后重新提交",excel);
errorMsg = new ErrorMessage(excel.getRowIndex(),"大病基数上下限不可小于0,请修改后重新提交",excel);
errorMessageList.add(errorMsg);
continue;
}
infoVo.setUpBig(excel.getUpBig());
infoVo.setLowerBig(excel.getLowerBig());
}
//大病缴纳周期为按月缴纳方式为按比例需要填写比例无值提示
if (null == excel.getPayCompanyPro()
|| null == excel.getPayPersonalPro()
|| excel.getPayPersonalPro().compareTo(BigDecimal.ZERO) < 0
|| excel.getPayPersonalPro().compareTo(BigDecimal.ZERO) < 0){
errorMsg = new ErrorMessage(excel.getRowIndex(),"大病是否收取为是时,大病缴纳周期为“按月”的,单位或个人大病比例字段必填,仅填写正确比例即可,请修改后重新提交",excel);
errorMessageList.add(errorMsg);
continue;
}
infoVo.setPayCompanyPro(excel.getPayCompanyPro());
infoVo.setPayPersonalPro(excel.getPayPersonalPro());
}
......@@ -913,7 +919,7 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
|| null == excel.getChargePersonal()
|| excel.getChargePersonal().compareTo(BigDecimal.ZERO) < 0
|| excel.getChargeCompany().compareTo(BigDecimal.ZERO) < 0){
errorMsg = new ErrorMessage(excel.getRowIndex(),"大病是否收取为是时,大病缴纳周期为“按年”或大病缴纳周期为“按月”且缴纳方式为“按定值”时,单位或个人大病金额字段必填,填写正确金额即可,请修改后重新提交",excel);
errorMsg = new ErrorMessage(excel.getRowIndex(),"大病是否收取为是时,大病缴纳周期为“按年”或大病缴纳周期为“按月”且缴纳方式为“按定值”时,单位或个人大病金额字段必填,填写正确金额即可,请修改后重新提交",excel);
errorMessageList.add(errorMsg);
continue;
}
......@@ -1205,7 +1211,7 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
if (null != dateUse){
infoVo.setDoMonth(DateUtil.getYearAndMonth(dateFormat,0));
}else {
errorMsg = new ErrorMessage(excel.getRowIndex(),"执行月份格式错误,请修改后重新提交。");
errorMsg = new ErrorMessage(excel.getRowIndex(),"执行月份格式错误,请修改后重新提交。", excel);
errorMessageList.add(errorMsg);
continue;
}
......@@ -1226,6 +1232,12 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
errorMessageList.add(errorMsg);
continue;
}
if (excel.getLowerLimit().compareTo(BigDecimal.ZERO) < 0
|| excel.getUpperLimit().compareTo(BigDecimal.ZERO) < 0) {
errorMsg = new ErrorMessage(excel.getRowIndex(),"基数上下限不可小于0,请修改后重新提交。",excel);
errorMessageList.add(errorMsg);
continue;
}
infoVo.setFundPayLowerLimit(excel.getLowerLimit());
infoVo.setFundPayUpperLimit(excel.getUpperLimit());
//单边小数点
......@@ -1334,12 +1346,12 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
fundPro.setPersonalPro(Double.valueOf(splitSub[1]));
//如果单位比例大于100或小于0 则报错
if (fundPro.getCompanyPro() > 100 || fundPro.getCompanyPro() < 0) {
errorMsg = new ErrorMessage(excel.getRowIndex(), "单位比例必填,只可填写“0-100”之间的数字,请修改后重新提交");
errorMsg = new ErrorMessage(excel.getRowIndex(), "单位比例必填,只可填写“0-100”之间的数字,请修改后重新提交", excel);
break;
}
//如果个人比例大于100或小于等于0 则报错
if (fundPro.getPersonalPro() > 100 || fundPro.getPersonalPro() < 0) {
errorMsg = new ErrorMessage(excel.getRowIndex(), "个人比例必填,只可填写“0-100”之间的数字,请修改后重新提交");
errorMsg = new ErrorMessage(excel.getRowIndex(), "个人比例必填,只可填写“0-100”之间的数字,请修改后重新提交", excel);
break;
}
}
......
......@@ -183,8 +183,9 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
@Override
public long getDispatchInfoFundCount(TDispatchInfoPreSearchVo searchVo) {
searchVo.setType(CommonConstants.ONE_STRING);
initSearchVo(searchVo);
return baseMapper.selectFundExportCount(searchVo);
return baseMapper.selectFundCount(searchVo);
}
@Override
......@@ -306,7 +307,7 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
public Boolean saveFundPreInfo(EmployeeRegistrationPreVo registrationPreVo) {
if (Common.isNotNull(registrationPreVo.getFundIsBuy())
&& registrationPreVo.getFundIsBuy().equals(CommonConstants.ZERO_STRING)
&& !registrationPreVo.getExitSocialInfoList().isEmpty()) {
&& !registrationPreVo.getExitFundInfoList().isEmpty()) {
//删除已存在的入职确认信息对应的公积金明细
fundPreDetailService.remove(Wrappers.<TFundPreDetail>lambdaQuery()
.eq(TFundPreDetail::getRegisterId, registrationPreVo.getExitFundInfoList()
......@@ -321,7 +322,7 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
baseMapper.delete(Wrappers.<TDispatchInfoPre>query().lambda()
.eq(TDispatchInfoPre::getTypeSub,CommonConstants.ONE_STRING)
.in(TDispatchInfoPre::getProcessStatus, Arrays.asList("0", "1", "2", "4", "8"))
.eq(TDispatchInfoPre::getRegisterId, registrationPreVo.getExitSocialInfoList()
.eq(TDispatchInfoPre::getRegisterId, registrationPreVo.getExitFundInfoList()
.get(0).getRegisterId()));
} else {
//删除已存在的入职确认信息对应的公积金明细
......@@ -363,7 +364,7 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
vo.setYearAfter(0);
vo.setRegistDate(preVo.getFundStartDate());
}else {
if (null == preVo.getFundDateType()){
if (null == preVo.getFundStartDate()){
//先计算起缴日期
if (CommonConstants.ZERO_STRING.equals(preVo.getFundDateType())){
//用户选择起缴日期类型为入职日期,以入职日期为基准
......@@ -457,6 +458,7 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
}
TDispatchInfoPre preExit = baseMapper.selectOne(Wrappers.<TDispatchInfoPre>query().lambda()
.eq(TDispatchInfoPre::getRegisterId, id)
.eq(TDispatchInfoPre::getTypeSub,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(preExit)) {
TDispatchInfoPreVo pre = new TDispatchInfoPreVo();
......@@ -800,7 +802,12 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && !domainR.getData().getDeptNos().isEmpty()) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
domainR = archivesDaprUtil.getAllDeptByCustomerLoginName(user.getUsername());
if (null != domainR && null != domainR.getData() && null != domainR.getData().getDeptNos() && !domainR.getData().getDeptNos().isEmpty()) {
searchVo.setDeptNoList(domainR.getData().getDeptNos());
} else {
searchVo.setId(CommonConstants.ONE_STRING_NEGATE);
}
}
}
}
......
......@@ -3930,8 +3930,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatchInfoPre.setErrorBackInfo(null);
dispatchInfoPreMapper.updateById(dispatchInfoPre);
}
// 派减审核或办理,更新离职待办
this.sendLeave(dis.getId(), CommonConstants.TWO_STRING, CommonConstants.FIVE_STRING, CommonConstants.ONE_STRING, auditRemark, user);
// 审核不通过
} else if (CommonConstants.ONE_INT == flag) {
// 作废更新:公积金状态、同步档案的公积金状态、同步预估数据
......@@ -3955,8 +3954,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId());
}
// 派减审核或办理,更新离职待办
this.sendLeave(dis.getId(), CommonConstants.TWO_STRING, CommonConstants.TEN_STRING, CommonConstants.ZERO_STRING, auditRemark, user);
}
providentFund.setAuditTime(now);
providentFund.setAuditUser(user.getId());
......@@ -3971,12 +3969,16 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
sf.setFundReduceStatus(CommonConstants.ONE_STRING);
sf.setFundStatus(CommonConstants.SIX_STRING);
}
// 派减审核或办理,更新离职待办
this.sendLeave(dis.getId(), CommonConstants.TWO_STRING, CommonConstants.FIVE_STRING, CommonConstants.ONE_STRING, auditRemark, user);
// 审核不通过
} else if (CommonConstants.ONE_INT == flag) {
// 作废更新:公积金状态、同步档案的公积金状态
sf.setFundReduceStatus(CommonConstants.ONE_STRING_NEGATE);
sf.setFundStatus(CommonConstants.THREE_STRING);
sf.setFundReduceDate(null);
// 派减审核或办理,更新离职待办
this.sendLeave(dis.getId(), CommonConstants.TWO_STRING, CommonConstants.TEN_STRING, CommonConstants.ZERO_STRING, auditRemark, user);
}
}
fundMapper.updateByIdOfAudit(providentFund);
......@@ -4729,13 +4731,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
temp.append(ServiceUtil.ifNullToEmpty(handleRemark));
initAuditInfo(auditInfo, temp.toString(), CommonConstants.THREE_STRING, user, temp.toString(), remark);
// 派减审核或办理,更新离职待办
if (Common.isNotNull(socialInfo.getHandleStatus()) && CommonConstants.SEVEN_STRING.equals(socialInfo.getHandleStatus())) {
// 部分失败是0
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.SIX_STRING, CommonConstants.ZERO_STRING, handleRemark, user);
} else {
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.EIGHT_STRING, CommonConstants.ONE_STRING, handleRemark, user);
}
} else {
temp.setLength(CommonConstants.ZERO_INT);
temp.append(DispatchConstants.DISPATCH_SOCIAL_REDUCE);
......@@ -4743,18 +4739,22 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
temp.append(DispatchConstants.DISPATCH_HANDLE_FAIL);
temp.append(ServiceUtil.ifNullToEmpty(handleRemark));
initAuditInfo(auditInfo, temp.toString(), CommonConstants.FOUR_STRING, user, temp.toString(), remark);
}
auditInfo.setSocialId(dis.getId());
// 派减审核或办理,更新离职待办
// 7 派减部分办理失败
if (Common.isNotNull(socialInfo.getHandleStatus()) && CommonConstants.SEVEN_STRING.equals(socialInfo.getHandleStatus())) {
// 派减审核或办理,更新离职待办
if (Common.isNotNull(socialInfo.getHandleStatus())) {
if (CommonConstants.SEVEN_STRING.equals(socialInfo.getHandleStatus())) {
// 部分失败是0
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.SIX_STRING, CommonConstants.ZERO_STRING, handleRemark, user);
} else {
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.NINE_STRING, CommonConstants.ZERO_STRING, handleRemark, user);
} else if (CommonConstants.SIX_STRING.equals(socialInfo.getHandleStatus())) {
// 派减办理中 - 后续改造这里和离职待办的导出
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.FIVE_STRING, CommonConstants.ZERO_STRING, handleRemark, user);
} else if (CommonConstants.THREE_STRING.equals(socialInfo.getHandleStatus())) {
// 部分失败是0
this.sendLeave(dis.getId(), CommonConstants.ONE_STRING, CommonConstants.EIGHT_STRING, CommonConstants.ONE_STRING, handleRemark, user);
}
}
auditInfo.setSocialId(dis.getId());
} else {
errorList.add(new ErrorMessage(-1, "找不到对应员工社保数据:" + dis.getEmpName()));
......
......@@ -257,7 +257,7 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
@Override
public void createHolidayInfo() {
baseMapper.delete(Wrappers.<THolidayInfo>query().lambda());
baseMapper.delete(Wrappers.<THolidayInfo>query().lambda().eq(THolidayInfo::getYear,DateUtil.getYear(new Date())));
List<Map<String,Object>> json = HolidayCrawler.initHolidays();
List<THolidayInfo> saveList = new ArrayList<>();
THolidayInfo save;
......@@ -284,12 +284,40 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:");
}
@Override
public void createNextYearHolidayInfo() {
baseMapper.delete(Wrappers.<THolidayInfo>query().lambda().eq(THolidayInfo::getYear,(DateUtil.getYearOfInt(new Date())+1)+""));
List<Map<String,Object>> json = HolidayCrawler.initNextYearHolidays();
List<THolidayInfo> saveList = new ArrayList<>();
THolidayInfo save;
for(Map<String,Object> d:json){
save = new THolidayInfo();
try {
save.setDate(DateUtil.stringToDate((String) d.get("date").toString(),DateUtil.ISO_DATE_FORMAT));
}catch (Exception e){
log.error("假期表初始化异常:"+d.get("date"),e);
continue;
}
save.setDay(DateUtil.getDay(save.getDate()));
save.setMonth(DateUtil.getMonth(save.getDate()));
save.setYear(DateUtil.getYear(save.getDate()));
save.setCreateBy("1");
save.setCreateName("admin");
save.setCreateTime(LocalDateTime.now());
save.setUpdateBy("1");
saveList.add(save);
}
if (Common.isNotNull(saveList)){
this.saveBatch(saveList);
}
log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:");
}
@Override
public TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo) {
//获取当年所有假期配置表
Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda()
.eq(THolidayInfo::getYear,DateUtil.getYear(date)));
//Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda());
Map<Date,String> holidayMap = new HashMap<>();
if (Common.isNotNull(holidayInfos)){
for (THolidayInfo h:holidayInfos){
......@@ -303,9 +331,8 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
@Override
public TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo) {
//获取当年所有假期配置表
Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda()
.eq(THolidayInfo::getYear,DateUtil.getYear(date)));
//Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda());
Map<Date,String> holidayMap = new HashMap<>();
if (Common.isNotNull(holidayInfos)){
for (THolidayInfo h:holidayInfos){
......@@ -366,9 +393,8 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
@Override
public TEmployeeInsuranceWorkDayVo getInitBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo) {
//获取当年所有假期配置表
Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda()
.eq(THolidayInfo::getYear,DateUtil.getYear(date)));
//Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda());
Map<Date,String> holidayMap = new HashMap<>();
if (Common.isNotNull(holidayInfos)){
for (THolidayInfo h:holidayInfos){
......
......@@ -402,10 +402,23 @@
left join view_contract b on a.EMP_IDCARD = b.EMP_IDCARD and a.DEPT_NO = b.DEPT_NO
<where>
1=1 and a.type_sub = '1'
and a.DELETE_FLAG = '0'
<include refid="tDispatchInfoPre_where"/>
</where>
</select>
<select id="selectFundCount" resultType="java.lang.Long">
SELECT
count(1)
FROM t_dispatch_info_pre a
left join view_contract b on a.EMP_IDCARD = b.EMP_IDCARD and a.DEPT_NO = b.DEPT_NO
<where>
1=1 and a.type_sub = '1'
and a.DELETE_FLAG = '0'
<include refid="tDispatchInfoPre_other_where"/>
</where>
</select>
<select id="selectExportList" resultMap="tDispatchInfoPreExportMap">
SELECT
a.dept_name,
......@@ -518,7 +531,7 @@
a.id preId,
a.TRUST_REMARK trustRemark,
a.CUSTOMER_USER_LOGIN_NAME as preLoginName,
if(#{type} = '1',concat('手动派单-',a.customer_username),concat('自动化派单-',a.customer_username)) preName
if(#{type} = '1',concat('自动化手动-',a.customer_username),concat('自动化自动-',a.customer_username)) preName
FROM t_dispatch_info_pre a,(select @i:=0) as itable
<where>
1=1
......@@ -541,7 +554,9 @@
a.dept_no settleDomainCode,
a.RECORD_BASE recordBase,
a.PROVIDENT_HOUSEHOLD_NAME providentHousehold,
a.PROVIDENT_CARDINAL providentCardinal,
CASE WHEN a.PAYMENT_TYPE ='0' THEN c.LOWER_LIMIT
WHEN a.PAYMENT_TYPE ='2' THEN c.UPPER_LIMIT
ELSE a.PROVIDENT_CARDINAL END as 'providentCardinal',
a.FUND_START_DATE providentStart,
a.FUND_PER_FLAG perFlag,
a.UNIT_PROVIDENT_PER providentPer,
......@@ -549,8 +564,13 @@
a.id preId,
a.TRUST_REMARK trustRemark,
a.CUSTOMER_USER_LOGIN_NAME as preLoginName,
if(#{type} = '1',concat('手动派单-',a.customer_username),concat('自动化派单-',a.customer_username)) preName
FROM t_dispatch_info_pre a,(select @i:=0) as itable
if(#{type} = '1',concat('自动化手动-',a.customer_username),concat('自动化自动-',a.customer_username)) preName
FROM t_dispatch_info_pre a
LEFT JOIN sys_base_set_info b ON a.CONFIG_HOUSE_ID = b.ID
LEFT JOIN (select * from sys_base_set_info t where
DATE_FORMAT(t.APPLY_START_DATE,'%Y%m%d') <![CDATA[ <= ]]> DATE_FORMAT(CURDATE(),'%Y%m%d') and DATE_FORMAT(CURDATE(),'%Y%m%d') <![CDATA[ <= ]]> IFNULL(t.APPLY_END_DATE,DATE_FORMAT(CURDATE(),'%Y%m%d'))
) c ON c.DEPART_NAME = b.DEPART_NAME
,(select @i:=0) as itable
<where>
1=1
AND a.id in
......@@ -562,6 +582,7 @@
#{status}
</foreach>
</where>
group by a.id
</select>
<select id="getAllUnDisSocialData" resultMap="tDispatchInfoPreMap">
SELECT
......
......@@ -20,6 +20,9 @@
<result property="createTime" column="CREATE_TIME"/>
<result property="dispatchName" column="DISPATCH_NAME"/>
<result property="dispatchTime" column="DISPATCH_TIME"/>
<result property="unitProvidentPer" column="UNIT_PROVIDENT_PER"/>
<result property="personalProvidentPer" column="PERSONAL_PROVIDENT_PER"/>
<result property="providentCardinal" column="UNIT_PROVIDENG_CARDINAL"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -37,7 +40,10 @@
a.UPDATE_TIME,
a.CREATE_TIME,
a.DISPATCH_NAME,
a.DISPATCH_TIME
a.DISPATCH_TIME,
a.UNIT_PROVIDENT_PER,
a.PERSONAL_PROVIDENT_PER,
a.UNIT_PROVIDENG_CARDINAL
</sql>
<sql id="tFundPreDetail_where">
<if test="tFUNDPreDetail != null">
......
......@@ -1267,7 +1267,7 @@
DATE_FORMAT(d.CREATE_TIME, '%Y-%m-%d %H:%i:%s') as dispatchTime,
a.UNIT_PROVIDENT_PER,
a.PERSONAL_PROVIDENT_PER,
a.UNIT_PROVIDENG_CARDINAL as 'providentCardinal'
a.UNIT_PROVIDENG_CARDINAL
FROM t_social_fund_info a
inner join t_dispatch_info d on a.DISPATCH_ID = d.ID
where a.EMP_IDCARD = #{empIdcard}
......
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