Commit d4d6be5a authored by fangxinjiang's avatar fangxinjiang

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

parents fa8b3970 63a44d0b
......@@ -49,5 +49,15 @@ public class FeedBackDetail implements Serializable {
@Schema(description ="续签代办表关联主键")
private String contractAlertId;
/**
* 续签代办表关联主键
*/
@Schema(description ="申请编号")
private String applyNo;
@Schema(description ="是否反馈")
private Integer isFeedback;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -320,4 +320,8 @@ public class TEmpContractAlert extends BaseEntity {
*/
@TableField(exist = false)
private Date auditTime;
@Schema(description = "申请编码")
private String applyNo;
}
......@@ -117,7 +117,7 @@ public class TWorkHandlerInfo {
/**
* 执行结果
*/
@ExcelAttribute(name = "执行结果", maxLength = 5)
@ExcelAttribute(name = "执行结果", readConverterExp = "0=未执行,1=部分成功,2=全部成功")
@Length(max = 5, message = "执行结果不能超过5个字符")
@ExcelProperty("执行结果")
@Schema(description = "执行结果")
......
......@@ -47,4 +47,7 @@ public class ChangeFeedBackAllVo {
@Schema(description = "反馈时间")
private Date feedbackTime;
@Schema(description = "申请编号")
private String applyNo;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Date 2022/6/27
* @Description
* @Version 1.0
*/
@Data
public class TWorkHandlerInfoVo implements Serializable {
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 32)
@NotBlank(message = "项目编码不能为空")
@Length(max = 32, message = "项目编码不能超过32个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String departNo;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", isNotEmpty = true, errorInfo = "项目名称不能为空", maxLength = 50)
@NotBlank(message = "项目名称不能为空")
@Length(max = 50, message = "项目名称不能超过50个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String departName;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 32)
@Length(max = 32, message = "员工姓名不能超过32个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", maxLength = 32)
@Length(max = 32, message = "员工身份证不能超过32个字符")
@ExcelProperty("员工身份证")
@Schema(description = "员工身份证")
private String empIdcard;
/**
* 联动端口
*/
@ExcelAttribute(name = "联动端口", maxLength = 8)
@Length(max = 8, message = "联动端口不能超过8个字符")
@ExcelProperty("联动端口")
@Schema(description = "联动端口")
private String infoFrom;
/**
* 操作人
*/
@ExcelAttribute(name = "操作人", maxLength = 32)
@Length(max = 32, message = "操作人不能超过32个字符")
@ExcelProperty("操作人")
@Schema(description = "操作人")
private String operUser;
/**
* 操作时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "操作时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("操作时间")
private LocalDateTime operTime;
/**
* 执行结果
*/
@ExcelAttribute(name = "执行结果")
@Length(max = 5, message = "执行结果不能超过5个字符")
@ExcelProperty("执行结果")
@Schema(description = "执行结果")
private String operResult;
/**
* 执行详情
*/
@ExcelAttribute(name = "执行详情", maxLength = 255)
@Length(max = 255, message = "执行详情不能超过255个字符")
@ExcelProperty("执行详情")
@Schema(description = "执行详情")
private String operInfo;
/**
* 原因
*/
@ExcelAttribute(name = "原因", maxLength = 255)
@Length(max = 255, message = "原因不能超过255个字符")
@ExcelProperty("原因")
@Schema(description = "原因")
private String reason;
}
......@@ -196,9 +196,9 @@ public class TEmpContractAlertController {
* @return {@link R}
*/
@Operation(summary = "获取反馈日志详情", description = "获取反馈日志详情")
@GetMapping("/getFeedbackDetail/{id}" )
public R getFeedbackDetail(@PathVariable("id" ) String id) {
return R.ok(tEmpContractAlertService.getFeedbackDetail(id));
@GetMapping("/getFeedbackDetail/{applyNo}" )
public R getFeedbackDetail(@PathVariable("applyNo" ) String applyNo) {
return R.ok(tEmpContractAlertService.getFeedbackDetail(applyNo));
}
......
......@@ -11,6 +11,9 @@ import java.util.List;
@Mapper
public interface FeedBackDetailMapper extends BaseMapper<FeedBackDetail> {
List<FeedBackDetail> getDetail(@Param("id") String id);
List<FeedBackDetail> getDetail(@Param("applyNo") String applyNo);
List<FeedBackDetail> getAll();
FeedBackDetail findByApplyNo(@Param("applyNo") String applyNo);
}
......@@ -35,4 +35,5 @@ public interface TEmpContractAlertMapper extends BaseMapper<TEmpContractAlert> {
void truncate();
boolean changeFeedBackAll(@Param("changeFeedBackAllVo") ChangeFeedBackAllVo changeFeedBackAllVo);
}
......@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -44,5 +45,5 @@ public interface TWorkHandlerInfoMapper extends BaseMapper<TWorkHandlerInfo> {
Integer noPageCountDiy(@Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
List<TWorkHandlerInfo> noPageDiy(@Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
List<TWorkHandlerInfoVo> noPageDiy(@Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
}
......@@ -54,7 +54,7 @@ public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
boolean changeFeedBackAll(ChangeFeedBackAllVo changeFeedBackAllVo);
List<FeedBackDetail> getFeedbackDetail(String id);
List<FeedBackDetail> getFeedbackDetail(String applyNo);
}
......@@ -365,12 +365,26 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
}else {
alert.setFirstAlertTime(new Date());
}
List<FeedBackDetail> list = feedbackDetailMapper.getAll();
for (FeedBackDetail feedBackDetail : list) {
FeedBackDetail feedBackDetail1 = feedbackDetailMapper.findByApplyNo(feedBackDetail.getApplyNo());
if(null!=feedbackDetailMapper.findByApplyNo(contract.getApplyNo())){
alert.setIsFeedback(feedBackDetail1.getIsFeedback());
alert.setFeedbackDetail(feedBackDetail1.getFeedbackDetail());
alert.setFeedbackReason(feedBackDetail1.getFeedbackReason());
alert.setFeedbackPerson(feedBackDetail1.getFeedbackPerson());
alert.setFeedbackTime(feedBackDetail1.getFeedbackTime());
} else {
alert.setIsFeedback(CommonConstants.ZERO_INT);
}
}
alert.setApplyNo(contract.getApplyNo());
// 2023-4-3 09:38:21 hgw 添加
alert.setUnitId(contract.getCustomerId());
alert.setUnitName(contract.getSubjectUnit());
alert.setUnitNo(contract.getUnitNo());
alert.setEmpPhone(employeeInfo.getEmpPhone());
alert.setCreateBy(contract.getCreateBy());
alert.setCreateName(contract.getCreateName());
alert.setContractId(contract.getId());
......@@ -418,9 +432,10 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
FeedBackDetail feedbackDetail = new FeedBackDetail();
feedbackDetail.setFeedbackPerson(user.getNickname());
feedbackDetail.setFeedbackTime(DateTime.now());
feedbackDetail.setContractAlertId(changeFeedBackAllVo.getIds()[i]);
feedbackDetail.setApplyNo(changeFeedBackAllVo.getIds()[i]);
feedbackDetail.setFeedbackReason(changeFeedBackAllVo.getFeedbackReason());
feedbackDetail.setFeedbackDetail(changeFeedBackAllVo.getFeedbackDetail());
feedbackDetail.setIsFeedback(CommonConstants.ONE_INT);
feedbackDetailMapper.insert(feedbackDetail);
}
changeFeedBackAllVo.setIsFeedback(CommonConstants.ONE_INTEGER);
......@@ -430,8 +445,8 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
}
@Override
public List<FeedBackDetail> getFeedbackDetail(String id) {
return feedbackDetailMapper.getDetail(id);
public List<FeedBackDetail> getFeedbackDetail(String applyNo) {
return feedbackDetailMapper.getDetail(applyNo);
}
......
......@@ -489,6 +489,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
// 标准合同、劳动派遣合同、其他。————社保公积金都派减,自动审核通过
this.judgeAuditStatus(tEmployeeContractInfo, user);
baseMapper.updateById(tEmployeeContractInfo);
//如果是否同步终止合同、减项、减档为是则生成同步任务处理清单
//增加任务处理情况查询表数据
......@@ -515,6 +516,8 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
this.updateFileMainId(tEmployeeContractInfo);
}
} else {
// 标准合同、劳动派遣合同、其他。————社保公积金都派减,自动审核通过
this.judgeAuditStatus(tEmployeeContractInfo, user);
baseMapper.updateById(tEmployeeContractInfo);
}
......@@ -1648,10 +1651,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
TEmployeeProject tEmployeeProjectOld = tEmployeeProjectService.getById(tEmployeeProject.getId());
tEmployeeProject.setContractStatus(CommonConstants.TWO_INT);
//如果该项目仍有社保、公积金的数据不同步减项,如正常减项,记录项目档案操作记录
if (tEmployeeProject.getSocialStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getSocialStatus() == CommonConstants.FOUR_INT
|| tEmployeeProject.getFundStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getFundStatus() == CommonConstants.FOUR_INT) {
if ((tEmployeeProject.getSocialStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getSocialStatus() == CommonConstants.FOUR_INT) &&
( tEmployeeProject.getFundStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getFundStatus() == CommonConstants.THREE_INT)) {
tEmployeeProject.setProjectStatus(CommonConstants.ONE_INT);
tEmployeeProject.setLeaveRemark("终止合同联动减项");
tEmployeeProject.setLeaveTime(LocalDateTime.now());
......@@ -1915,7 +1918,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
if ((tEmployeeProject.getSocialStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getSocialStatus() == CommonConstants.FOUR_INT)
&& (tEmployeeProject.getFundStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getFundStatus() == CommonConstants.FOUR_INT)) {
|| tEmployeeProject.getFundStatus() == CommonConstants.THREE_INT)) {
tEmployeeProject.setProjectStatus(CommonConstants.ONE_INT);
tEmployeeProject.setLeaveRemark("终止合同联动减项");
tEmployeeProject.setLeaveTime(LocalDateTime.now());
......
......@@ -1439,7 +1439,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
if ((tEmployeeProject.getSocialStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getSocialStatus() == CommonConstants.FOUR_INT) &&
(tEmployeeProject.getFundStatus() == CommonConstants.ZERO_INT
|| tEmployeeProject.getFundStatus() == CommonConstants.FOUR_INT)) {
|| tEmployeeProject.getFundStatus() == CommonConstants.THREE_INT)) {
tEmployeeProject.setProjectStatus(CommonConstants.ONE_INT);
tEmployeeProject.setLeaveRemark("终止合同联动减项");
tEmployeeProject.setLeaveTime(LocalDateTime.now());
......
......@@ -27,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TWorkHandlerInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TWorkHandlerInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.InsertWorkHandlerVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo;
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;
......@@ -68,14 +69,14 @@ public class TWorkHandlerInfoServiceImpl extends ServiceImpl<TWorkHandlerInfoMap
public void listExport(HttpServletResponse response, TWorkHandlerInfoSearchVo searchVo){
String fileName = "任务处理清单表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TWorkHandlerInfo> list = new ArrayList<>();
List<TWorkHandlerInfoVo> list = new ArrayList<>();
Integer count = baseMapper.noPageCountDiy(searchVo);
try (ServletOutputStream out = response.getOutputStream()) {
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out, TWorkHandlerInfo.class).includeColumnFieldNames(searchVo.getExportFields()).build();
ExcelWriter excelWriter = EasyExcel.write(out, TWorkHandlerInfoVo.class).includeColumnFieldNames(searchVo.getExportFields()).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
......
......@@ -7,6 +7,8 @@
<result column="FEEDBACK_TIME" jdbcType="TIMESTAMP" property="feedbackTime" />
<result column="FEEDBACK_REASON" jdbcType="VARCHAR" property="feedbackReason" />
<result column="FEEDBACK_DETAIL" jdbcType="VARCHAR" property="feedbackDetail" />
<result column="APPLY_NO" jdbcType="VARCHAR" property="applyNo" />
<result column="IS_FEEDBACK" jdbcType="VARCHAR" property="isFeedback" />
<result column="CONTRACT_ALERT_ID" jdbcType="VARCHAR" property="contractAlertId" />
</resultMap>
<sql id="Base_Column_List">
......@@ -16,7 +18,18 @@
<select id="getDetail" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
where a.CONTRACT_ALERT_ID=#{id}
where a.APPLY_NO=#{applyNo}
order by FEEDBACK_TIME DESC
</select>
<select id="getAll" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
</select>
<select id="findByApplyNo" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
where a.APPLY_NO=#{applyNo}
ORDER BY FEEDBACK_TIME desc LIMIT 1
</select>
</mapper>
......@@ -54,6 +54,7 @@
<result property="feedbackReason" column="FEEDBACK_REASON"/>
<result property="feedbackDetail" column="FEEDBACK_DATAIL"/>
<result property="contractId" column="CONTRACT_ID"/>
<result property="applyNo" column="APPLY_NO"/>
</resultMap>
......@@ -65,11 +66,10 @@
update t_emp_contract_alert a
set a.IS_FEEDBACK=#{changeFeedBackAllVo.isFeedback},a.FEEDBACK_REASON=#{changeFeedBackAllVo.feedbackReason},a.FEEDBACK_DETAIL=#{changeFeedBackAllVo.feedbackDetail},
a.FEEDBACK_PERSON=#{changeFeedBackAllVo.feedbackPerson},a.FEEDBACK_TIME=#{changeFeedBackAllVo.feedbackTime}
where a.ID in
where a.APPLY_NO in
<foreach item="idStr" index="index" collection="changeFeedBackAllVo.ids" open="(" separator="," close=")">
#{idStr}
</foreach>
</update>
</mapper>
......@@ -653,16 +653,12 @@
a.LEAVE_DATE,
a.CONTRACT_NO,
a.REDUCE_REASON,
b.AUDIT_STATUS,
b.REMARK
FROM t_employee_contract_info a
join t_employee_contract_audit b on a.ID=b.LINK_ID
left join (select REMARK,LINK_ID from t_employee_contract_audit where ROOT_NAME='合同审核') b on a.ID=b.LINK_ID
<where>
a.DELETE_FLAG = 0
and b.ROOT_NAME='合同审核'
<include refid="tEmployeeContractInfo_where"/>
<if test="tEmployeeContractInfo.authSql != null and tEmployeeContractInfo.authSql.trim() != ''">
${tEmployeeContractInfo.authSql}
......@@ -680,10 +676,8 @@
SELECT
count(1)
FROM t_employee_contract_info a
join t_employee_contract_audit b on a.ID=b.LINK_ID
<where>
a.DELETE_FLAG = 0
and b.ROOT_NAME='合同审核'
<include refid="tEmployeeContractInfo_where"/>
<if test="tEmployeeContractInfo.authSql != null and tEmployeeContractInfo.authSql.trim() != ''">
${tEmployeeContractInfo.authSql}
......
......@@ -37,6 +37,7 @@
<result property="operInfo" column="OPER_INFO"/>
<result property="reason" column="REASON"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.DEPART_NO,
......@@ -51,7 +52,19 @@
a.OPER_INFO,
a.REASON
</sql>
<sql id="tWorkHandlerInfo_where">
<resultMap id="tWorkHandlerInfoVoMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo">
<result property="departNo" column="DEPART_NO"/>
<result property="departName" column="DEPART_NAME"/>
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="infoFrom" column="INFO_FROM"/>
<result property="operUser" column="OPER_USER"/>
<result property="operTime" column="OPER_TIME"/>
<result property="operResult" column="OPER_RESULT"/>
<result property="operInfo" column="OPER_INFO"/>
<result property="reason" column="REASON"/>
</resultMap>
<sql id="tWorkHandlerInfo_where">
<if test="tWorkHandlerInfo != null">
<if test="tWorkHandlerInfo.departNo != null and tWorkHandlerInfo.departNo.trim() != ''">
AND a.DEPART_NO = #{tWorkHandlerInfo.departNo}
......@@ -104,9 +117,21 @@
</where>
</select>
<select id="noPageDiy" resultMap="tWorkHandlerInfoMap">
<select id="noPageDiy" resultMap="tWorkHandlerInfoVoMap">
SELECT
<include refid="Base_Column_List"/>
a.DEPART_NO,
a.DEPART_NAME,
a.EMP_NAME,
a.EMP_IDCARD,
a.INFO_FROM,
a.OPER_USER,
a.OPER_TIME,
CASE WHEN a.OPER_RESULT=0 THEN "未执行"
WHEN a.OPER_RESULT =1 THEN "部分成功"
WHEN a.OPER_RESULT =2 THEN "全部成功"
ELSE a.OPER_RESULT END as "OPER_RESULT",
a.OPER_INFO,
a.REASON
FROM t_work_handler_info a
<where>
1=1
......@@ -115,4 +140,4 @@
order by a.OPER_TIME desc
limit #{tWorkHandlerInfo.limitStart},#{tWorkHandlerInfo.limitEnd}
</select>
</mapper>
</mapper>
\ No newline at end of file
......@@ -457,6 +457,30 @@ public interface ErrorCodes {
* 派增异常: 社保派单基数不可小于最低基数且不可大于最高基数
*/
String EMP_DISPATCH_SOCIAL_LIMIT_ERROR = "emp.dispatch.social.limit.error";
/**
* 派增异常: 社保派单养老基数不可小于最低基数且不可大于最高基数
*/
String YL_DISPATCH_SOCIAL_LIMIT_ERROR = "yl.dispatch.social.limit.error";
/**
* 派增异常: 社保派单医疗基数不可小于最低基数且不可大于最高基数
*/
String YB_DISPATCH_SOCIAL_LIMIT_ERROR = "yb.dispatch.social.limit.error";
/**
* 派增异常: 社保派单工伤基数不可小于最低基数且不可大于最高基数
*/
String GS_DISPATCH_SOCIAL_LIMIT_ERROR = "gs.dispatch.social.limit.error";
/**
* 派增异常: 社保派单失业基数不可小于最低基数且不可大于最高基数
*/
String SY_DISPATCH_SOCIAL_LIMIT_ERROR = "sy.dispatch.social.limit.error";
/**
* 派增异常: 社保派单生育基数不可小于最低基数且不可大于最高基数
*/
String BIR_DISPATCH_SOCIAL_LIMIT_ERROR = "bir.dispatch.social.limit.error";
/**
* 派增异常: 社保派单大病基数不可小于最低基数且不可大于最高基数
*/
String DB_DISPATCH_SOCIAL_LIMIT_ERROR = "db.dispatch.social.limit.error";
/**
* 派增异常: 公积金派单基数不可小于最低基数且不可大于最高基数
*/
......
......@@ -166,7 +166,12 @@ emp.dispatch.emp.project.not.used=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5BF9\u5E94\u9
emp.dispatch.emp.not.used=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5BF9\u5E94\u8EAB\u4EFD\u8BC1\u7684\u4EBA\u5458\u6863\u6848\u5DF2\u51CF\u6863\uFF0C\u8BF7\u53BB\u4EBA\u5458\u6863\u6848\u5904\u590D\u6863
emp.dispatch.social.limit.error=\u6D3E\u589E\u5F02\u5E38\uFF1A \u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u6700\u9AD8\u57FA\u6570
yl.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u517B\u8001\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u517B\u8001\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u517B\u8001\u6700\u9AD8\u57FA\u6570
yb.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u533B\u7597\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u533B\u7597\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u533B\u7597\u6700\u9AD8\u57FA\u6570
gs.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5DE5\u4F24\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5DE5\u4F24\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5DE5\u4F24\u6700\u9AD8\u57FA\u6570
sy.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5931\u4E1A\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5931\u4E1A\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5931\u4E1A\u6700\u9AD8\u57FA\u6570
bir.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u751F\u80B2\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u751F\u80B2\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u751F\u80B2\u6700\u9AD8\u57FA\u6570
db.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5927\u75C5\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5927\u75C5\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5927\u75C5\u6700\u9AD8\u57FA\u6570
emp.dispatch.fund.limit.error=\u6D3E\u589E\u5F02\u5E38\uFF1A \u516C\u79EF\u91D1\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u516C\u79EF\u91D1\u6237\u7684\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u6700\u9AD8\u57FA\u6570
......
......@@ -452,6 +452,13 @@ public class TSalaryStandard extends BaseEntity {
@Schema(description = "收入月份")
private String incomeMonth;
@Schema(description = "配置ID")
private String setId;
@Schema(description = "删除人(汉字名)")
private String deleteUser;
@Schema(description = "删除时间")
private Date deleteDate;
/**
* 工资月份-起
*/
......
......@@ -68,12 +68,12 @@ public class TConfigSalaryController {
List<TConfigSalary> configSalaryList = tConfigSalaryService.list(queryWrapperCs);
if (configSalaryList != null && !configSalaryList.isEmpty()) {
String nowMonth = DateUtil.addMonth(0);
// 当前月 发薪次数
int monthCount = tSalaryStandardService.getNum(settleDepart, nowMonth, null);
String nowYear = DateUtil.getYear(new Date());
// 当前年 未推送或未发放的 发薪次数
int yearCount = tSalaryStandardService.getNum(settleDepart, null, nowYear);
int yearCount = tSalaryStandardService.getNum(settleDepart, null,null, nowYear);
int monthCount; // 当前月 发薪次数
for (TConfigSalary cs : configSalaryList) {
monthCount = tSalaryStandardService.getNum(settleDepart, cs.getId(), nowMonth, null);
if (cs.getSalaryNum() <= monthCount) {
cs.setNowMonthSalaryNum(monthCount);
}
......
......@@ -72,5 +72,5 @@ public interface TSalaryStandardMapper extends BaseMapper<TSalaryStandard> {
* @Date: 2023/6/25 18:04
* @return: int
**/
int getNum(@Param("deptId") String deptId, @Param("settleMonth") String settleMonth, @Param("nowYear") String nowYear);
int getNum(@Param("deptId") String deptId, @Param("setId") String setId, @Param("settleMonth") String settleMonth, @Param("nowYear") String nowYear);
}
......@@ -142,6 +142,6 @@ public interface TSalaryStandardService extends IService<TSalaryStandard> {
* @Date: 2023/6/25 18:04
* @return: int
**/
int getNum(String deptId, String settleMonth, String nowYear);
int getNum(String deptId, String setId, String settleMonth, String nowYear);
}
......@@ -293,10 +293,12 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
//s.setSettlementAmount()
s.setStatus(SalaryConstants.AUDIT_STATUS[0]);
s.setBpoFlag(dept.getBpoFlag());
if (configSalary != null && Common.isNotNull(configSalary.getIncomeMonth())) {
s.setIncomeMonth(DateUtil.addMonth(configSalary.getIncomeMonth()));
} else {
s.setIncomeMonth(sav.getSalaryMonth());
s.setIncomeMonth(sav.getSalaryMonth());
if (configSalary != null) {
s.setSetId(configSalary.getId());
if (Common.isNotNull(configSalary.getIncomeMonth())) {
s.setIncomeMonth(DateUtil.addMonth(configSalary.getIncomeMonth()));
}
}
}
return new R<>(s);
......
......@@ -366,6 +366,8 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
}
}
//6:删除工资表
sf.setDeleteUser(user.getNickname());
sf.setDeleteDate(new Date());
sf.setDeleteFlag(SalaryConstants.DELETED);
this.updateById(sf);
return R.ok("级联删除工资表成功");
......@@ -1075,8 +1077,8 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
* @return: int
**/
@Override
public int getNum(String deptId, String settleMonth, String nowYear) {
return baseMapper.getNum(deptId,settleMonth,nowYear);
public int getNum(String deptId, String setId, String settleMonth, String nowYear) {
return baseMapper.getNum(deptId, setId, settleMonth, nowYear);
}
}
......@@ -81,6 +81,9 @@
<result property="issueStatus" column="ISSUE_STATUS"/>
<result property="isDiff" column="IS_DIFF"/>
<result property="incomeMonth" column="INCOME_MONTH"/>
<result property="setId" column="SET_ID"/>
<result property="deleteUser" column="DELETE_USER"/>
<result property="deleteDate" column="DELETE_DATE"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......@@ -139,7 +142,10 @@
a.INCOME_END_TIME,
a.ISSUE_STATUS,
a.IS_DIFF,
a.INCOME_MONTH
a.INCOME_MONTH,
a.SET_ID,
a.DELETE_USER,
a.DELETE_DATE
</sql>
<sql id="tSalaryStandard_where">
<if test="tSalaryStandard != null">
......@@ -496,7 +502,7 @@
and a.DEPT_ID = #{deptId}
</if>
<if test="settleMonth != null and settleMonth.trim() != ''">
and a.SETTLEMENT_MONTH = #{settleMonth}
and a.SETTLEMENT_MONTH = #{settleMonth} and a.SET_ID = #{setId}
</if>
<if test="nowYear != null and nowYear.trim() != ''">
and a.SETTLEMENT_MONTH like concat(#{nowYear},'%')
......
......@@ -225,6 +225,15 @@ public class SysBaseSetInfo extends BaseEntity {
@ExcelProperty("大病基数下限")
private BigDecimal lowerBig;
/**
* 是否同一基数上下限: 0是;1否
*/
@ExcelAttribute(name = "是否同一基数上下限: 0是;1否")
@Schema(description = "是否同一基数上下限: 0是;1否")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否同一基数上下限: 0收取;1不收取")
private String isSameBase;
/**
* 补缴政策(社保或公积金)
*/
......
......@@ -150,7 +150,8 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
/**
* 通信地址
*/
@Length(max = 200, message = "通信地址不能超过200个字符" )
@ExcelAttribute(name = "通信地址", maxLength = 200)
@Schema(description = "通信地址" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("通信地址" )
......
......@@ -1628,34 +1628,34 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
social.setUnitBirthPer(socialSet.getUnitBirthPro());
//按最低
if (CommonConstants.ZERO_STRING.equals(excel.getPaymentType())){
social.setPersonalPensionCardinal(socialSet.getLowerLimit());
social.setPersonalMedicalCardinal(socialSet.getLowerLimit());
social.setPersonalUnemploymentCardinal(socialSet.getLowerLimit());
social.setUnitPensionCardinal(socialSet.getLowerLimit());
social.setUnitMedicalCardinal(socialSet.getLowerLimit());
social.setUnitUnemploymentCardinal(socialSet.getLowerLimit());
social.setUnitWorkInjuryCardinal(socialSet.getLowerLimit());
social.setUnitBirthCardinal(socialSet.getLowerLimit());
social.setPersonalPensionCardinal(socialSet.getLowerPersion());
social.setPersonalMedicalCardinal(socialSet.getLowerMedical());
social.setPersonalUnemploymentCardinal(socialSet.getLowerUnemployment());
social.setUnitPensionCardinal(socialSet.getLowerPersion());
social.setUnitMedicalCardinal(socialSet.getLowerMedical());
social.setUnitUnemploymentCardinal(socialSet.getLowerUnemployment());
social.setUnitWorkInjuryCardinal(socialSet.getLowerInjury());
social.setUnitBirthCardinal(socialSet.getLowerBirth());
if (CommonConstants.ZERO_STRING.equals(social.getIsIllness())){
social.setUnitBigailmentCardinal(socialSet.getLowerLimit());
social.setPersonalBigailmentCardinal(socialSet.getLowerLimit());
social.setUnitBigailmentCardinal(socialSet.getLowerBig());
social.setPersonalBigailmentCardinal(socialSet.getLowerBig());
}
}
//按最高
if (CommonConstants.TWO_STRING.equals(excel.getPaymentType())){
social.setPersonalPensionCardinal(socialSet.getUpperLimit());
social.setPersonalMedicalCardinal(socialSet.getUpperLimit());
social.setPersonalUnemploymentCardinal(socialSet.getUpperLimit());
social.setUnitPensionCardinal(socialSet.getUpperLimit());
social.setUnitMedicalCardinal(socialSet.getUpperLimit());
social.setUnitUnemploymentCardinal(socialSet.getUpperLimit());
social.setUnitWorkInjuryCardinal(socialSet.getUpperLimit());
social.setUnitBirthCardinal(socialSet.getUpperLimit());
social.setPersonalPensionCardinal(socialSet.getUpPersion());
social.setPersonalMedicalCardinal(socialSet.getUpMedical());
social.setPersonalUnemploymentCardinal(socialSet.getUpUnemployment());
social.setUnitPensionCardinal(socialSet.getUpPersion());
social.setUnitMedicalCardinal(socialSet.getUpMedical());
social.setUnitUnemploymentCardinal(socialSet.getUpUnemployment());
social.setUnitWorkInjuryCardinal(socialSet.getUpInjury());
social.setUnitBirthCardinal(socialSet.getUpBirth());
if (CommonConstants.ZERO_STRING.equals(social.getIsIllness())){
social.setPersonalBigailmentCardinal(socialSet.getUpperLimit());
social.setUnitBigailmentCardinal(socialSet.getUpperLimit());
social.setPersonalBigailmentCardinal(socialSet.getUpBig());
social.setUnitBigailmentCardinal(socialSet.getUpBig());
}
}
if (CommonConstants.ZERO_STRING.equals(social.getIsIllness())){
......@@ -2512,28 +2512,43 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
private boolean validSocialBaseInfo(List<ErrorMessage> errorMessageList, TDispatchImportVo excel, DispatchEmpVo empVo, SysBaseSetInfo socialSet, Date contractDateTemp) {
if (Common.isNotNull(socialSet) && CommonConstants.ONE_STRING.equals(excel.getPaymentType())
&& ((Common.isNotNull(excel.getPensionCardinal())
&& (excel.getPensionCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getPensionCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT))
||(Common.isNotNull(excel.getMedicalCardinal())
&& (excel.getMedicalCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getMedicalCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT))
||(Common.isNotNull(excel.getUnemploymentCardinal())
&& (excel.getUnemploymentCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getUnemploymentCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT))
||(Common.isNotNull(excel.getWorkInjuryCardinal())
&& (excel.getWorkInjuryCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getWorkInjuryCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT))
||(Common.isNotNull(excel.getBirthCardinal())
&& (excel.getBirthCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getBirthCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT))
||(Common.isNotNull(excel.getBigailmentCardinal())
&& (excel.getBigailmentCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
|| excel.getBigailmentCardinal().compareTo(socialSet.getLowerLimit())< CommonConstants.ZERO_INT)))
){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
if (Common.isNotNull(socialSet) && CommonConstants.ONE_STRING.equals(excel.getPaymentType())) {
if (Common.isNotNull(excel.getPensionCardinal())
&& (excel.getPensionCardinal().compareTo(socialSet.getUpPersion()) > CommonConstants.ZERO_INT
|| excel.getPensionCardinal().compareTo(socialSet.getLowerPersion())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.YL_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
if (Common.isNotNull(excel.getMedicalCardinal())
&& (excel.getMedicalCardinal().compareTo(socialSet.getUpMedical()) > CommonConstants.ZERO_INT
|| excel.getMedicalCardinal().compareTo(socialSet.getLowerMedical())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.YB_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
if (Common.isNotNull(excel.getUnemploymentCardinal())
&& (excel.getUnemploymentCardinal().compareTo(socialSet.getUpUnemployment()) > CommonConstants.ZERO_INT
|| excel.getUnemploymentCardinal().compareTo(socialSet.getLowerUnemployment())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.SY_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
if (Common.isNotNull(excel.getWorkInjuryCardinal())
&& (excel.getWorkInjuryCardinal().compareTo(socialSet.getUpInjury()) > CommonConstants.ZERO_INT
|| excel.getWorkInjuryCardinal().compareTo(socialSet.getLowerInjury())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.GS_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
if (Common.isNotNull(excel.getBirthCardinal())
&& (excel.getBirthCardinal().compareTo(socialSet.getUpBirth()) > CommonConstants.ZERO_INT
|| excel.getBirthCardinal().compareTo(socialSet.getLowerBirth())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.BIR_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
if (Common.isNotNull(excel.getBigailmentCardinal())
&& (excel.getBigailmentCardinal().compareTo(socialSet.getUpBig()) > CommonConstants.ZERO_INT
|| excel.getBigailmentCardinal().compareTo(socialSet.getLowerBig())< CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.DB_DISPATCH_SOCIAL_LIMIT_ERROR)));
return true;
}
}
// 备案基数和养老基数 养老起缴日期 必填在前面已必填校验,这里不重复校验
if (Common.isNotNull(excel.getRecordBase()) && Common.isNotNull(excel.getSocialHousehold())){
......@@ -2580,10 +2595,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return true;
}
if (CommonConstants.ZERO_STRING.equals(excel.getPaymentType())){
excel.setPensionCardinal(socialSet.getLowerLimit());
excel.setPensionCardinal(socialSet.getLowerPersion());
}
if (CommonConstants.TWO_STRING.equals(excel.getPaymentType())){
excel.setPensionCardinal(socialSet.getUpperLimit());
excel.setPensionCardinal(socialSet.getUpPersion());
}
if (!CommonConstants.ONE_STRING.equals(excel.getPaymentType()) && Common.isEmpty(excel.getTrustRemark())
&& (excel.getPensionCardinal().compareTo(excel.getRecordBase()) != CommonConstants.ZERO_INT)){
......@@ -3931,6 +3946,33 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 同步预估库数据
socialTask.asynchronousDisPatchHandle(socialMap,fundMap,sf, forecastFlag,null,null,CommonConstants.ZERO_INT);
}
//社保公积金派减办理成功
if ((CommonConstants.ONE_STRING.equals(dis.getType()) && CommonConstants.ZERO_INT == flag
&& CommonConstants.EIGHT_STRING.equals(sf.getSocialStatus())
&& (CommonConstants.SEVEN_STRING.equals(sf.getFundStatus())
|| Common.isEmpty(sf.getFundStatus()))) ||
(CommonConstants.ZERO_STRING.equals(dis.getType()) && CommonConstants.ONE_INT == flag &&
CommonConstants.EIGHT_STRING.equals(sf.getSocialStatus())
&& (CommonConstants.FOUR_STRING.equals(sf.getFundStatus())
|| CommonConstants.NINE_STRING.equals(sf.getFundStatus())))) {
UpProjectSocialFundVo vo = new UpProjectSocialFundVo();
if (Common.isNotNull(dis.getChangeContractAndEmployee())
&& CommonConstants.ZERO_STRING.equals(dis.getChangeContractAndEmployee())) {
vo.setEmpIdCard(dis.getEmpIdcard());
vo.setDepartNo(dis.getSettleDomainCode());
vo.setChangeContractAndEmployee(dis.getChangeContractAndEmployee());
vo.setUserId(user.getId());
vo.setUserName(user.getNickname());
vo.setEmpName(dis.getEmpName());
vo.setDeptName(dis.getSettleDomainName());
vo.setDetailId(dis.getId());
}
R<Boolean> resUp = archivesDaprUtil.updateProjectSocialFund(vo);
if (Common.isEmpty(resUp) || !(CommonConstants.SUCCESS.intValue() == resUp.getCode()) || !resUp.getData().booleanValue()) {
errorList.add(new ErrorMessage(-1, vo.getEmpIdCard() + DispatchConstants.DISPATCH_SYN_DOC_EXE, CommonConstants.RED, dis.getEmpName()));
continue;
}
}
// 派减公积金办理失败不同步档案的相关字段信息
if (!(CommonConstants.ONE_STRING.equals(dis.getType())
&& CommonConstants.ONE_INT == flag
......@@ -3941,17 +3983,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(vo.getSocialStatus()) || Common.isNotNull(vo.getFundStatus())){
vo.setEmpIdCard(dis.getEmpIdcard());
vo.setDepartNo(dis.getSettleDomainCode());
//派减审核通过才会处理合同档案状态
if (CommonConstants.ONE_INT == flag
&& Common.isNotNull(dis.getChangeContractAndEmployee())
&& CommonConstants.ZERO_STRING.equals(dis.getChangeContractAndEmployee())) {
vo.setChangeContractAndEmployee(dis.getChangeContractAndEmployee());
vo.setUserId(user.getId());
vo.setUserName(user.getNickname());
vo.setEmpName(dis.getEmpName());
vo.setDeptName(dis.getSettleDomainName());
vo.setDetailId(dis.getId());
}
R<Boolean> resUp = archivesDaprUtil.updateProjectSocialFund(vo);
if (Common.isEmpty(resUp) || !(CommonConstants.SUCCESS.intValue() == resUp.getCode()) || !resUp.getData().booleanValue()){
errorList.add(new ErrorMessage(-1, vo.getEmpIdCard()+DispatchConstants.DISPATCH_SYN_DOC_EXE,CommonConstants.RED,dis.getEmpName()));
......
......@@ -34,6 +34,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
......@@ -349,6 +350,44 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "未找到社保基数配置!"));
continue;
}
// 校验各项起缴日期 查看是否符合社保补缴政策
if (Common.isNotNull(socialSetInfo) && CommonConstants.ONE_STRING.equals(excel.getPaymentType())) {
if (Common.isNotNull(excel.getUnitPensionCardinal())
&& (excel.getUnitPensionCardinal().compareTo(socialSetInfo.getUpPersion()) > CommonConstants.ZERO_INT
|| excel.getUnitPensionCardinal().compareTo(socialSetInfo.getLowerPersion()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.YL_DISPATCH_SOCIAL_LIMIT_ERROR)));
continue;
}
if (Common.isNotNull(excel.getUnitMedicalCardinal())
&& (excel.getUnitMedicalCardinal().compareTo(socialSetInfo.getUpMedical()) > CommonConstants.ZERO_INT
|| excel.getUnitMedicalCardinal().compareTo(socialSetInfo.getLowerMedical()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.YB_DISPATCH_SOCIAL_LIMIT_ERROR)));
continue;
}
if (Common.isNotNull(excel.getUnitUnemploymentCardinal())
&& (excel.getUnitUnemploymentCardinal().compareTo(socialSetInfo.getUpUnemployment()) > CommonConstants.ZERO_INT
|| excel.getUnitUnemploymentCardinal().compareTo(socialSetInfo.getLowerUnemployment()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.SY_DISPATCH_SOCIAL_LIMIT_ERROR)));
continue;
}
if (Common.isNotNull(excel.getUnitWorkInjuryCardinal())
&& (excel.getUnitWorkInjuryCardinal().compareTo(socialSetInfo.getUpInjury()) > CommonConstants.ZERO_INT
|| excel.getUnitWorkInjuryCardinal().compareTo(socialSetInfo.getLowerInjury()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.GS_DISPATCH_SOCIAL_LIMIT_ERROR)));
}
if (Common.isNotNull(excel.getUnitBirthCardinal())
&& (excel.getUnitBirthCardinal().compareTo(socialSetInfo.getUpBirth()) > CommonConstants.ZERO_INT
|| excel.getUnitBirthCardinal().compareTo(socialSetInfo.getLowerBirth()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.BIR_DISPATCH_SOCIAL_LIMIT_ERROR)));
continue;
}
if (Common.isNotNull(excel.getUnitBigailmentMoney())
&& (excel.getUnitBigailmentMoney().compareTo(socialSetInfo.getUpBig()) > CommonConstants.ZERO_INT
|| excel.getUnitBigailmentMoney().compareTo(socialSetInfo.getLowerBig()) < CommonConstants.ZERO_INT)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.DB_DISPATCH_SOCIAL_LIMIT_ERROR)));
continue;
}
}
// 初始化社保调基信息
initSocialHistory(history, socialFundInfo);
// 更新社保公积金表的社保信息
......@@ -448,11 +487,9 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
socialFundInfo.setPersonalBigailmentMoney(baseSetVo.getPersonalBigailmentMoney());
}
} else if (CommonConstants.ZERO_INT == baseSetVo.getPaymentType()) {
BigDecimal limitBase = socialSetInfo.getLowerLimit();
this.setLimtBase(socialFundInfo, limitBase, socialSetInfo);
this.setLimtBaseLower(socialFundInfo, socialSetInfo);
} else if (CommonConstants.TWO_INT == baseSetVo.getPaymentType()) {
BigDecimal limitBase = socialSetInfo.getUpperLimit();
this.setLimtBase(socialFundInfo, limitBase, socialSetInfo);
this.setLimtBaseUp(socialFundInfo, socialSetInfo);
}
// 金额计算
......@@ -481,27 +518,55 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
/**
* @param socialFundInfo
* @param limitBase
* @Description: 塞最低或最高值
* @Author: hgw
* @Date: 2022/7/25 16:15
* @return: void
**/
private void setLimtBase(TSocialFundInfo socialFundInfo, BigDecimal limitBase, SysBaseSetInfo sysBaseSetInfo) {
socialFundInfo.setUnitPensionCardinal(limitBase);
socialFundInfo.setUnitMedicalCardinal(limitBase);
socialFundInfo.setUnitBirthCardinal(limitBase);
socialFundInfo.setUnitUnemploymentCardinal(limitBase);
socialFundInfo.setUnitWorkInjuryCardinal(limitBase);
private void setLimtBaseUp(TSocialFundInfo socialFundInfo, SysBaseSetInfo sysBaseSetInfo) {
socialFundInfo.setUnitPensionCardinal(sysBaseSetInfo.getUpPersion());
socialFundInfo.setUnitMedicalCardinal(sysBaseSetInfo.getUpMedical());
socialFundInfo.setUnitBirthCardinal(sysBaseSetInfo.getUpBirth());
socialFundInfo.setUnitUnemploymentCardinal(sysBaseSetInfo.getUpUnemployment());
socialFundInfo.setUnitWorkInjuryCardinal(sysBaseSetInfo.getUpInjury());
socialFundInfo.setPersonalPensionCardinal(sysBaseSetInfo.getUpPersion());
socialFundInfo.setPersonalMedicalCardinal(sysBaseSetInfo.getUpMedical());
socialFundInfo.setPersonalUnemploymentCardinal(sysBaseSetInfo.getUpUnemployment());
// 大病处理: 0 收取 按派单的社保里的基数和比例来
if (CommonConstants.ZERO_STRING.equals(sysBaseSetInfo.getIsIllness())) {
// 大病收取方式 0.按年 判断当前月份是否收取大病 按年收大病起缴月份收取一次,非当年的 大病 按实际收取月份收取大病金额
this.setBigMoneyUp(socialFundInfo, sysBaseSetInfo);
// 大病处理: 1 不收取
} else {
socialFundInfo.setUnitBigailmentMoney(BigDecimal.ZERO);
socialFundInfo.setPersonalBigailmentMoney(BigDecimal.ZERO);
}
}
/**
* @param socialFundInfo
* @Description: 塞最低或最高值
* @Author: hgw
* @Date: 2022/7/25 16:15
* @return: void
**/
private void setLimtBaseLower(TSocialFundInfo socialFundInfo,SysBaseSetInfo sysBaseSetInfo) {
socialFundInfo.setUnitPensionCardinal(sysBaseSetInfo.getLowerPersion());
socialFundInfo.setUnitMedicalCardinal(sysBaseSetInfo.getLowerMedical());
socialFundInfo.setUnitBirthCardinal(sysBaseSetInfo.getLowerBirth());
socialFundInfo.setUnitUnemploymentCardinal(sysBaseSetInfo.getLowerUnemployment());
socialFundInfo.setUnitWorkInjuryCardinal(sysBaseSetInfo.getLowerInjury());
socialFundInfo.setPersonalPensionCardinal(limitBase);
socialFundInfo.setPersonalMedicalCardinal(limitBase);
socialFundInfo.setPersonalUnemploymentCardinal(limitBase);
socialFundInfo.setPersonalPensionCardinal(sysBaseSetInfo.getLowerPersion());
socialFundInfo.setPersonalMedicalCardinal(sysBaseSetInfo.getLowerMedical());
socialFundInfo.setPersonalUnemploymentCardinal(sysBaseSetInfo.getLowerUnemployment());
// 大病处理: 0 收取 按派单的社保里的基数和比例来
if (CommonConstants.ZERO_STRING.equals(sysBaseSetInfo.getIsIllness())) {
// 大病收取方式 0.按年 判断当前月份是否收取大病 按年收大病起缴月份收取一次,非当年的 大病 按实际收取月份收取大病金额
this.setBigMoney(socialFundInfo, sysBaseSetInfo, limitBase);
this.setBigMoneyLower(socialFundInfo, sysBaseSetInfo);
// 大病处理: 1 不收取
} else {
socialFundInfo.setUnitBigailmentMoney(BigDecimal.ZERO);
......@@ -509,8 +574,35 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
}
}
private void setBigMoney(TSocialFundInfo socialInfo, SysBaseSetInfo sysBaseSetInfo
, BigDecimal limitBase) {
private void setBigMoneyUp(TSocialFundInfo socialInfo, SysBaseSetInfo sysBaseSetInfo) {
if (CommonConstants.ZERO_STRING.equals(sysBaseSetInfo.getCollectType())) {
socialInfo.setUnitBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayCompany()));
socialInfo.setPersonalBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayPersonal()));
//大病收取方式 : 1.按月
} else if (CommonConstants.ONE_STRING.equals(sysBaseSetInfo.getCollectType())) {
// 大病取值方式:1 按比例 按派单的基数和比例来
if (CommonConstants.ONE_STRING.equals(sysBaseSetInfo.getValueType())) {
socialInfo.setUnitBigailmentCardinal(sysBaseSetInfo.getUpBig());
socialInfo.setUnitBigailmentPer(sysBaseSetInfo.getPayCompanyPro());
socialInfo.setPersonalBigailmentCardinal(sysBaseSetInfo.getUpBig());
socialInfo.setPersonalBigailmentPer(sysBaseSetInfo.getPayPersonalPro());
socialInfo.setPersonalBigailmentMoney(BigDecimalUtils.safeMultiply(
sysBaseSetInfo.getUpBig(),
sysBaseSetInfo.getPayPersonalPro(),
CommonConstants.ONE_OF_PERCENT));
socialInfo.setUnitBigailmentMoney(BigDecimalUtils.safeMultiply(
sysBaseSetInfo.getUpBig(),
sysBaseSetInfo.getPayCompanyPro(),
CommonConstants.ONE_OF_PERCENT));
} else {
// 大病取值方式:0按定值
socialInfo.setUnitBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayCompany()));
socialInfo.setPersonalBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayPersonal()));
}
}
}
private void setBigMoneyLower(TSocialFundInfo socialInfo, SysBaseSetInfo sysBaseSetInfo) {
if (CommonConstants.ZERO_STRING.equals(sysBaseSetInfo.getCollectType())) {
socialInfo.setUnitBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayCompany()));
socialInfo.setPersonalBigailmentMoney(BigDecimalUtils.isNullToZero(sysBaseSetInfo.getPayPersonal()));
......@@ -518,16 +610,16 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
} else if (CommonConstants.ONE_STRING.equals(sysBaseSetInfo.getCollectType())) {
// 大病取值方式:1 按比例 按派单的基数和比例来
if (CommonConstants.ONE_STRING.equals(sysBaseSetInfo.getValueType())) {
socialInfo.setUnitBigailmentCardinal(limitBase);
socialInfo.setUnitBigailmentCardinal(sysBaseSetInfo.getLowerBig());
socialInfo.setUnitBigailmentPer(sysBaseSetInfo.getPayCompanyPro());
socialInfo.setPersonalBigailmentCardinal(limitBase);
socialInfo.setPersonalBigailmentCardinal(sysBaseSetInfo.getLowerBig());
socialInfo.setPersonalBigailmentPer(sysBaseSetInfo.getPayPersonalPro());
socialInfo.setPersonalBigailmentMoney(BigDecimalUtils.safeMultiply(
limitBase,
sysBaseSetInfo.getLowerBig(),
sysBaseSetInfo.getPayPersonalPro(),
CommonConstants.ONE_OF_PERCENT));
socialInfo.setUnitBigailmentMoney(BigDecimalUtils.safeMultiply(
limitBase,
sysBaseSetInfo.getLowerBig(),
sysBaseSetInfo.getPayCompanyPro(),
CommonConstants.ONE_OF_PERCENT));
} else {
......@@ -817,5 +909,4 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
}
return CommonConstants.ZERO_INT;
}
}
\ No newline at end of file
......@@ -93,6 +93,7 @@
<result property="lowerInjury" column="LOWER_INJURY"/>
<result property="lowerBirth" column="LOWER_BIRTH"/>
<result property="lowerBig" column="LOWER_BIG"/>
<result property="isSameBase" column="IS_SAME_BASE"/>
<collection property="fundProList" ofType="com.yifu.cloud.plus.v1.yifu.social.entity.SysPayProportion"
select="com.yifu.cloud.plus.v1.yifu.social.mapper.SysPayProportionMapper.selectByPrimaryId" column="id">
</collection>
......@@ -166,6 +167,7 @@
LOWER_UNEMPLOYMENT,
LOWER_INJURY,
LOWER_BIRTH,
IS_SAME_BASE,
LOWER_BIG
</sql>
<sql id="sysBaseSetInfo_where">
......
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