Commit 99dac061 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/master'

parents 6f7e9b7a e7be5828
......@@ -33,4 +33,96 @@ public class ArchivesConstants {
* 员工合同签订类型
*/
public static final String[] contractSituation = {"作废","离职再入职","合同未到期重新签订","正常签订","商务合同更改","正常续签","终止"};
/**
* 项目 ID 不可为空
*/
public static final String SETTLE_DOMAIN_ID_NOT_EMPTY = "id 不可为空";
/**
* 项目 项目编码及名称不可为空
*/
public static final String SETTLE_DOMAIN_NAME_AND_NO_NOT_EMPTY = "项目编码及名称不可为空";
/**
* 项目 客户名称、客户编码、客户ID不可为空
*/
public static final String SETTLE_DOMAIN_CUSTOMER_INFO_NOT_EMPTY = "客户名称、客户编码、客户ID不可为空";
/**
* 项目 是否BPO业务不可为空
*/
public static final String SETTLE_DOMAIN_BPO_FLAG_NOT_EMPTY = "是否BPO业务不可为空";
/**
* 项目 服务项目不可为空
*/
public static final String SETTLE_DOMAIN_SERVER_ITEM_NOT_EMPTY = "服务项目不可为空";
/**
* 项目 省市不可为空
*/
public static final String SETTLE_DOMAIN_PROVINCE_NOT_EMPTY = "省市不可为空";
/**
* 项目 业务类型、业务类型二级分类、业务类型三级分类不可为空
*/
public static final String SETTLE_DOMAIN_BUSINESS_TYPE_NOT_EMPTY = "业务类型、业务类型二级分类、业务类型三级分类不可为空";
/**
* 项目 服务状态不可为空
*/
public static final String SETTLE_DOMAIN_STOP_FLAG_NOT_EMPTY = "服务状态不可为空";
/**
* 项目 社保结算类型不可为空
*/
public static final String SETTLE_DOMAIN_SOCIAL_TYPE_NOT_EMPTY = "社保结算类型不可为空";
/**
* 项目 我司到款单位不可为空
*/
public static final String SETTLE_DOMAIN_UNIT_OUT_COMPANY_NOT_EMPTY = "我司到款单位不可为空";
/**
* 项目 社保
*/
public static final String SETTLE_DOMAIN_SOCIAL = "社保";
/**
* 项目 公积金
*/
public static final String SETTLE_DOMAIN_FUND = "公积金";
/**
* 项目 薪资
*/
public static final String SETTLE_DOMAIN_SALARY = "薪资";
/**
* 项目 商险
*/
public static final String SETTLE_DOMAIN_INSURANCES = "商险";
/**
* 项目 公积金结算类型不可为空
*/
public static final String SETTLE_DOMAIN_FUND_TYPE_NOT_EMPTY = "公积金结算类型不可为空";
/**
* 项目 封面台头-薪资不可为空
*/
public static final String SETTLE_DOMAIN_INVOICE_TITLE_NOT_EMPTY = "封面台头-薪资不可为空";
/**
* 项目 商险结算类型不可为空
*/
public static final String SETTLE_DOMAIN_INSURANCE_SETTLE_TYPE_NOT_EMPTY = "商险结算类型不可为空";
/**
* 项目 封面台头-商险不可为空
*/
public static final String SETTLE_DOMAIN_INSURANCE_TITLE_NOT_EMPTY = "封面台头-商险不可为空";
/**
* 项目 '管理费是否收费'及'风险金是否收取'不可为空
*/
public static final String SETTLE_DOMAIN_MANAGEMENT_AND_RISK_TAG_NOT_EMPTY = "'管理费是否收费'及'风险金是否收取'不可为空";
/**
* 项目 管理费是否收费为是,‘管理费服务项目’、‘管理费收费方式’、‘管理费费率/管理费金额’不可为空
*/
public static final String SETTLE_DOMAIN_MANAGEMENT_INFO_NOT_EMPTY = "管理费是否收费为是,‘管理费服务项目’、‘管理费收费方式’、‘管理费费率/管理费金额’不可为空";
/**
* 项目 风险金是否收取为是,'风险金服务项目'、'风险金收费方式'、'风险金收取费用/税率'不可为空
*/
public static final String SETTLE_DOMAIN_RISK_INFO_NOT_EMPTY = "风险金是否收取为是,'风险金服务项目'、'风险金收费方式'、'风险金收取费用/税率'不可为空";
/**
* 项目 结算方式(管理费、风险金)不可为空
*/
public static final String SETTLE_DOMAIN_SETTLE_TYPE_NOT_EMPTY = "结算方式(管理费、风险金)不可为空";
/**
* 项目 获取区域数据失败:
*/
public static final String SETTLE_DOMAIN_CHECK_AREA_NOT_EXISTS = "获取区域数据失败:";
}
......@@ -501,7 +501,7 @@ public class TEmployeeContractInfo extends BaseEntity {
/**
* 减少原因
*/
@ExcelAttribute(name = "减少原因", maxLength = 32, isDataId = true,dataType = ExcelAttributeConstants.REDUCE_SOCIAL_REASON)
@Schema(description = "减少原因", name = "workingHours")
@ExcelAttribute(name = "减少原因")
@Schema(description = "减少原因")
private String reduceReason;
}
......@@ -279,7 +279,7 @@ public class TEmployeeInfo extends BaseEntity {
private Integer projectNum;
/**
* 员工合同状态(字典)
* 员工合同状态(字典:0初始1在用2不在用
*/
@Schema(description = "员工合同状态(字典)0初始状态 personnel_state")
@ExcelAttribute(name = "员工合同状态", isDataId = true, dataType = ExcelAttributeConstants.PERSONNEL_STATE)
......@@ -287,6 +287,7 @@ public class TEmployeeInfo extends BaseEntity {
/**
* 商险状态(字典)
* 商险状态(字典0无2正常3失效4处理中)commercial_satte
*/
@Schema(description = "商险状态(字典)0初始状态")
private Integer insuranceStatus;
......
......@@ -390,4 +390,8 @@ public class TEmployeeProject extends BaseEntity {
@Schema(description = "选中的idList")
private List<String> idList;
// 划转前的老项目id,调整社保公积金使用
@TableField(exist = false)
private String odlDeptId;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
/**
* @Author hgw
* @Date 2022-11-23 15:38:13
* @Version 1.0
*/
@Data
public class EmpIdCardAndDeptVo {
// 身份证
private String idCard;
// 项目编码:薪资使用的,只有编码
private String deptNo;
// 状态
private String status;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.util.List;
/**
* @Author hgw
* @Date 2022-11-23 15:38:13
* @Version 1.0
*/
@Data
public class EmpStatusVo {
// 身份证、项目id
private List<EmpIdCardAndDeptVo> empInfo;
}
......@@ -19,20 +19,14 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
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 com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
* 员工合同
......@@ -168,11 +162,11 @@ public class EmployeeContractExportAuditVO implements Serializable {
@Schema(description = "离职日期", name = "contractEnd")
private String leaveDate;
/**
* 减少原因
* 终止原因
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelAttribute(name = "减少原因", maxLength = 32, isDataId = true,dataType = ExcelAttributeConstants.REDUCE_SOCIAL_REASON)
@Schema(description = "减少原因", name = "workingHours")
@ExcelProperty("减少原因")
@ExcelAttribute(name = "终止原因")
@Schema(description = "终止原因")
@ExcelProperty("终止原因")
private String reduceReason;
}
......@@ -166,6 +166,18 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelAttribute(name = "档案柜号", maxLength = 50)
@Schema(description = "档案柜号", name = "fileCabinetNo")
private String fileCabinetNo;
/**
* 离职日期
*/
@ExcelAttribute(name = "离职日期")
@Schema(description = "离职日期")
private String leaveDate;
/**
* 终止原因
*/
@ExcelAttribute(name = "终止原因", maxLength = 32)
@Schema(description = "终止原因")
private String reduceReason;
/**
* 备注
*/
......@@ -173,5 +185,4 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelAttribute(name = "备注", maxLength = 200)
@Schema(description = "备注", name = "remark")
private String remark;
}
......@@ -48,14 +48,16 @@ public class EmployeeConstants {
public static final String CONTRACT_START_EMPTY = "起始日期不能为空";
public static final String POST_EMPTY = "合同岗位不能为空";
public static final String WORKING_HOURS_EMPTY = "工时制不能为空";
public static final String EXIT_PRIJECT_STATUS = "人员已有该项目信息,禁止重复添加";
public static final String CONTRACT_REDUCE_INFO_NOT_EMPTY = "签订类型为终止时,离职日期和终止原因必填";
public static final String CONTRACT_REDUCE_REASON_NOT_EMPTY = "终止原因为其他时,原因说明必填";
/**
* 无数据可更新
**/
public static final String NO_DATA_UPDATE = "无数据可更新";
public static final String NO_DATA = "无数据";
public static final String FILE_EXPORT_EXCEPTION = "档案导出异常";
public static final String CONCART_EXPORT_EXCEPTION = "合同导出异常";
public static final String CONCART_ALL_EXPORT_EXCEPTION = "合同[合并]导出异常";
/**
......@@ -63,4 +65,12 @@ public class EmployeeConstants {
**/
public static final String DATA_UPDATE_FAIL = "数据更新失败!";
/**
* @Description: 如果派单减少完成,则自动审核合同通过
* @Author: hgw
* @Date: 2022/11/25 16:42
* @return:
**/
public static final String CONTRACT_NAME[] = {"标准合同","劳务派遣合同","其他"};
}
......@@ -141,6 +141,19 @@ public class TEmployeeInfoController {
return tEmployeeInfoService.getById(empId);
}
/**
* @param idcard
* @Description: 内部接口获取档案基本信息
* @Author: hgw
* @Date: 2022/7/21 14:47
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
@Inner
@PostMapping("/inner/getTEmployeeInfoByIdcard")
public TEmployeeInfo getTEmployeeInfoByIdcard(@RequestBody String idcard) {
return tEmployeeInfoService.getInfoByIdcard(idcard);
}
/**
* @param empName 姓名
* @param empIdCard 身份证
......@@ -388,4 +401,55 @@ public class TEmployeeInfoController {
public Boolean checkMobile(@RequestBody String mobile) {
return tEmployeeInfoService.checkMobile(mobile);
}
/**
* @Description: 更新人员档案的商险状态
* @Author: hgw
* @Date: 2022-11-23 17:17:59
**/
@Operation(summary = "更新人员档案的商险状态", description = "更新人员档案的商险状态")
@Inner
@PostMapping("/inner/updateEmployeeInfoInsuranceStatus")
public Boolean updateEmployeeInsuranceStatus(@RequestBody EmpStatusVo vo) {
return tEmployeeInfoService.updateEmployeeInfoInsuranceStatus(vo);
}
/**
* @Description: 更新人员档案的薪资状态
* @Author: hgw
* @Date: 2022-11-23 17:17:59
**/
@Operation(summary = "更新人员档案的薪资状态", description = "更新人员档案的薪资状态")
@Inner
@PostMapping("/inner/updateEmployeeInfoSalaryStatus")
public Boolean updateEmployeeInfoSalaryStatus(@RequestBody EmpStatusVo vo) {
return tEmployeeInfoService.updateEmployeeInfoSalaryStatus(vo);
}
/**
* @Description: 每月1号更新人员档案、项目档案的薪资状态为2否
* @Author: hgw
* @Date: 2022/11/24 15:00
* @return: void
**/
@Operation(summary = "每月1号更新人员档案、项目档案的薪资状态为2否", description = "每月1号更新人员档案、项目档案的薪资状态为2否")
@Inner
@PostMapping("/inner/everyMonthUpdateSalaryStatus")
public void everyMonthUpdateSalaryStatus() {
tEmployeeInfoService.everyMonthUpdateSalaryStatus();
}
/**
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/24 15:00
* @return: void
**/
@Operation(summary = "每天更新人员档案、项目档案的过期合同为2不在用", description = "每天更新人员档案、项目档案的过期合同为2不在用")
@Inner
@PostMapping("/inner/everyDayUpdateEmployeeContractStatus")
public void everyDayUpdateEmployeeContractStatus() {
tEmployeeInfoService.everyDayUpdateEmployeeContractStatus();
}
}
......@@ -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.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportParamVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
......@@ -314,4 +315,28 @@ public class TEmployeeProjectController {
public Boolean updateProjectSocialFund(@RequestBody UpProjectSocialFundVo vo) {
return tEmployeeProjectService.updateProjectSocialFund(vo);
}
/**
* @Description: 更新项目档案的商险状态
* @Author: hgw
* @Date: 2022-11-23 17:17:59
**/
@Operation(summary = "更新项目档案的商险状态", description = "更新项目档案的商险状态")
@Inner
@PostMapping("/inner/updateEmployeeInsuranceStatus")
public Boolean updateEmployeeInsuranceStatus(@RequestBody EmpStatusVo vo) {
return tEmployeeProjectService.updateEmployeeInsuranceStatus(vo);
}
/**
* @Description: 更新人员档案、项目档案的商险状态
* @Author: hgw
* @Date: 2022-11-23 17:17:59
**/
@Operation(summary = "更新人员档案、项目档案的薪资状态", description = "更新人员档案、项目档案的薪资状态")
@Inner
@PostMapping("/inner/updateEmployeeSalaryStatus")
public Boolean updateEmployeeSalaryStatus(@RequestBody EmpStatusVo vo) {
return tEmployeeProjectService.updateEmployeeSalaryStatus(vo);
}
}
......@@ -17,6 +17,7 @@
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -26,10 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TDepartSettlementInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.service.TDepartSettlementInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.IdNameNoVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SetInfoVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainListVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......@@ -41,7 +39,10 @@ import org.springframework.beans.BeanUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -272,7 +273,13 @@ public class TSettleDomainController {
@Operation(summary = "修改项目表--EKP调用接口", description = "修改项目表--EKP调用接口")
@SysLog("修改项目表--EKP调用接口")
@PostMapping("/updateProjectInfo")
public R updateProjectInfo(@RequestBody List<TSettleDomain> list) {
public R updateProjectInfo(@RequestBody String jsonStr) {
try {
jsonStr = URLDecoder.decode(jsonStr, CommonConstants.UTF8).replace("=", "");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
List<TSettleDomainEkpVo> list= JSONObject.parseArray(jsonStr, TSettleDomainEkpVo.class);
return tSettleDomainService.updateProjectInfo(list);
}
......
......@@ -87,4 +87,37 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
int noPageCountLeaveDiy(@Param("tEmployeeInfo")EmployeeInfoSearchVo searchV);
int updateSocialInfoById(@Param("tEmployeeInfo")TEmployeeInfo employee);
/**
* @Description: 更新档案商险状态
* @Author: hgw
* @Date: 2022/11/23 17:38
* @return: int
**/
int updateEmployeeInfoInsuranceStatus(@Param("emp") EmpIdCardAndDeptVo emp);
/**
* @Description: 更新档案薪资状态
* @Author: hgw
* @Date: 2022/11/24 11:29
* @return: int
**/
int updateEmployeeInfoSalaryStatus(@Param("emp") EmpIdCardAndDeptVo emp);
/**
* @Description: 每月1号更新档案薪资状态为否薪资
* @Author: hgw
* @Date: 2022/11/24 14:51
* @return: int
**/
int everyMonthUpdateEmployeeInfoSalaryStatus();
/**
* @param
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/25 14:17
* @return: int
**/
int everyDayUpdateEmployeeInfoContractStatus();
}
......@@ -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.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpIdCardAndDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportParamVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO;
import org.apache.ibatis.annotations.Mapper;
......@@ -40,6 +41,8 @@ public interface TEmployeeProjectMapper extends BaseMapper<TEmployeeProject> {
void updateExcelEmpProject(@Param("list") List<TEmployeeProject> list);
void updateReduceEmpProject(@Param("list") List<TEmployeeProject> list);
int insertExcelEmpProject(@Param("list") List<TEmployeeProject> list);
void updateEmpIdById(@Param("list") List<TEmployeeInfo> list);
......@@ -63,4 +66,37 @@ public interface TEmployeeProjectMapper extends BaseMapper<TEmployeeProject> {
List<EmployeeProjectExportVO> noPageDiy(@Param("tEmployeeProject")EmployeeProjectExportParamVO searchVo);
int noPageCountDiy(@Param("tEmployeeProject")EmployeeProjectExportParamVO searchVo);
/**
* @Description: 更新项目档案商险状态
* @Author: hgw
* @Date: 2022/11/23 17:43
* @return: int
**/
int updateEmployeeInsuranceStatus(@Param("emp") EmpIdCardAndDeptVo emp);
/**
* @Description: 更新项目档案薪资状态
* @Author: hgw
* @Date: 2022/11/24 11:28
* @return: int
**/
int updateEmployeeSalaryStatus(@Param("emp") EmpIdCardAndDeptVo emp);
/**
* @Description: 每月1号更新档案薪资状态为无薪资
* @Author: hgw
* @Date: 2022/11/24 14:51
* @return: int
**/
int everyMonthUpdateEmployeeSalaryStatus();
/**
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/25 14:19
* @return: int
**/
int everyDayUpdateEmployeContractStatus();
}
......@@ -186,4 +186,39 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
Boolean updateEmpInfo(UpdateEmpVo vo);
Boolean checkMobile(String mobile);
TEmployeeInfo getInfoByIdcard(String idcard);
/**
* @Description: 更新人员档案的商险状态
* @Author: hgw
* @Date: 2022/11/23 17:20
* @return: java.lang.Boolean
**/
Boolean updateEmployeeInfoInsuranceStatus(EmpStatusVo vo);
/**
* @Description: 更新人员档案的薪资状态
* @Author: hgw
* @Date: 2022/11/24 11:35
* @return: java.lang.Boolean
**/
Boolean updateEmployeeInfoSalaryStatus(EmpStatusVo vo);
/**
* @Description: 每月1号更新人员档案、项目档案的薪资状态
* @Author: hgw
* @Date: 2022/11/24 14:57
* @return: void
**/
void everyMonthUpdateSalaryStatus();
/**
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/24 14:57
* @return: void
**/
void everyDayUpdateEmployeeContractStatus();
}
......@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
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.archives.vo.EmpStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportParamVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
......@@ -189,4 +190,38 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
String getEmpNo(String deptNo);
Boolean updateProjectSocialFund(UpProjectSocialFundVo vo);
/**
* @param vo
* @Description: 更新项目档案的商险状态
* @Author: hgw
* @Date: 2022/11/23 17:20
* @return: java.lang.Boolean
**/
Boolean updateEmployeeInsuranceStatus(EmpStatusVo vo);
/**
* @param vo
* @Description: 更新人员档案、项目档案的薪资状态
* @Author: hgw
* @Date: 2022/11/24 11:25
* @return: java.lang.Boolean
**/
Boolean updateEmployeeSalaryStatus(EmpStatusVo vo);
/**
* @Description: 每月1号定时更新项目档案薪资状态为否
* @Author: hgw
* @Date: 2022/11/24 14:55
* @return: void
**/
void everyMonthUpdateEmployeeSalaryStatus();
/**
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/24 14:55
* @return: void
**/
void everyDayUpdateEmployeContractStatus();
}
......@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.vo.IdNameNoVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SetInfoVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainEkpVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
......@@ -84,6 +85,6 @@ public interface TSettleDomainService extends IService<TSettleDomain> {
**/
List<TSettleDomainSelectVo> selectAllSettleDomainSelectVos();
R updateProjectInfo(List<TSettleDomain> list);
R updateProjectInfo(List<TSettleDomainEkpVo> list);
}
......@@ -114,12 +114,14 @@ public class TEmpChangeInfoServiceImpl extends ServiceImpl<TEmpChangeInfoMapper,
updateTEmployeeProject.setBusinessPrimaryType(tSettleDomain.getBusinessPrimaryType());
updateTEmployeeProject.setBusinessSecondType(tSettleDomain.getBusinessSecondType());
updateTEmployeeProject.setBusinessThirdType(tSettleDomain.getBusinessThirdType());
updateTEmployeeProject.setOdlDeptId(tEmployeeProjectOld.getDeptId());
tEmployeeProjectService.updateById(updateTEmployeeProject);
tEmpChangeInfo.setProId(updateTEmployeeProject.getId());
// 记录变更日志
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[1], "", updateTEmployeeProject.getId(), tEmployeeProjectOld, updateTEmployeeProject);
UpdateSocialFoundVo updateSocialFoundVo = new UpdateSocialFoundVo();
updateSocialFoundVo.setOldDeptId(updateTEmployeeProject.getOdlDeptId());
updateSocialFoundVo.setEmpIdcard(updateTEmployeeProject.getEmpIdcard());
updateSocialFoundVo.setSettleDomainCode(updateTEmployeeProject.getDeptNo());
updateSocialFoundVo.setSettleDomainId(updateTEmployeeProject.getDeptId());
......@@ -225,6 +227,7 @@ public class TEmpChangeInfoServiceImpl extends ServiceImpl<TEmpChangeInfoMapper,
updateTEmployeePro.setUnitName(tSettleDomain.getCustomerName());
updateTEmployeePro.setChangeStartMonth(excel.getChangeStartMonth());
updateTEmployeePro.setUnsettleDeal(CommonConstants.IS_NO_CHANGE);
updateTEmployeePro.setOdlDeptId(tEmployeeProjectOld.getDeptId());
updateList.add(updateTEmployeePro);
// 记录变更日志
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[1], "", tEmployeeProjectOld.getId(), tEmployeeProjectOld, updateTEmployeePro);
......@@ -244,6 +247,7 @@ public class TEmpChangeInfoServiceImpl extends ServiceImpl<TEmpChangeInfoMapper,
tEmployeeProjectService.updateBatchById(updateList);
for (TEmployeeProject tEmployeeProject: updateList) {
UpdateSocialFoundVo updateSocialFoundVo = new UpdateSocialFoundVo();
updateSocialFoundVo.setOldDeptId(tEmployeeProject.getOdlDeptId());
updateSocialFoundVo.setEmpIdcard(tEmployeeProject.getEmpIdcard());
updateSocialFoundVo.setSettleDomainCode(tEmployeeProject.getDeptNo());
updateSocialFoundVo.setSettleDomainId(tEmployeeProject.getDeptId());
......
......@@ -61,7 +61,6 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.*;
......@@ -2007,23 +2006,22 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , "UTF-8"));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, EmployeeExportVO.class).includeColumnFieldNames(searchVo.getExportFields()).build();
ExcelUtil<EmployeeExportVO> util = new ExcelUtil<>(EmployeeExportVO.class);
// 获取所有字典type
Map<String,String> nameAndDicTypeMap = util.getConverterDicType();
// 获取所有字典对应的值
Map<String,String> redisLabelMap = (Map<String, String>) RedisUtil.redis.opsForValue().get(CacheConstants.REDIS_DICT_LABLE);
ExcelWriter excelWriter = EasyExcel.write(out, EmployeeExportVO.class)
.registerConverter(new DictConverter(nameAndDicTypeMap,redisLabelMap))
.includeColumnFieldNames(searchVo.getExportFields()).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
Field[] allFields = EmployeeExportVO.class.getDeclaredFields();
WriteSheet writeSheet;
ExcelUtil<EmployeeExportVO> util;
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
util = new ExcelUtil<>(EmployeeExportVO.class);
for (EmployeeExportVO vo:list){
util.convertEntityAsso(vo,null,null,null,allFields);
}
}
if (Common.isNotNull(list)){
writeSheet = EasyExcel.writerSheet("人员档案批量导出"+index).build();
excelWriter.write(list,writeSheet);
......@@ -2088,7 +2086,6 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
ExcelWriter excelWriter = EasyExcel.write(out, EmployeeLeaveExportVO.class).includeColumnFieldNames(searchVo.getExportFields()).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
Field[] allFields = EmployeeLeaveExportVO.class.getDeclaredFields();
WriteSheet writeSheet;
ExcelUtil<EmployeeLeaveExportVO> util;
for (int i = 0; i <= count; ) {
......@@ -2096,12 +2093,6 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageLeaveDiy(searchVo);
/*if (Common.isNotNull(list)){
util = new ExcelUtil<>(EmployeeLeaveExportVO.class);
for (EmployeeLeaveExportVO vo:list){
util.convertEntityAsso(vo,null,null,null,allFields);
}
}*/
if (Common.isNotNull(list)){
writeSheet = EasyExcel.writerSheet("离职档案批量导出"+index).build();
excelWriter.write(list,writeSheet);
......@@ -2275,6 +2266,14 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
.eq(TEmployeeInfo::getDeleteFlag,CommonConstants.ZERO_STRING)) > 0;
}
@Override
public TEmployeeInfo getInfoByIdcard(String idcard) {
return baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getEmpIdcard, idcard)
.eq(TEmployeeInfo::getDeleteFlag, CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
}
private void saveContract(Map<String, EmpProjectDispatchVo> projectsMap,
Map<String, EmpContractDispatchVo> contractsMap,
Map<String, EmpAddDispatchVo> empAddsMap) {
......@@ -2402,4 +2401,61 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
}
}
/**
* @Description: 更新人员档案的商险状态
* @Author: hgw
* @Date: 2022/11/23 17:45
* @return: java.lang.Boolean
**/
@Override
public Boolean updateEmployeeInfoInsuranceStatus(EmpStatusVo vo) {
if (Common.isEmpty(vo) || null == vo.getEmpInfo() || vo.getEmpInfo().isEmpty()){
return false;
}
for (EmpIdCardAndDeptVo emp : vo.getEmpInfo()) {
baseMapper.updateEmployeeInfoInsuranceStatus(emp);
}
return true;
}
/**
* @Description: 更新人员档案的薪资状态
* @Author: hgw
* @Date: 2022/11/23 17:45
* @return: java.lang.Boolean
**/
@Override
public Boolean updateEmployeeInfoSalaryStatus(EmpStatusVo vo) {
if (Common.isEmpty(vo) || null == vo.getEmpInfo() || vo.getEmpInfo().isEmpty()){
return false;
}
for (EmpIdCardAndDeptVo emp : vo.getEmpInfo()) {
baseMapper.updateEmployeeInfoSalaryStatus(emp);
}
return true;
}
/**
* @Description: 每月1号更新人员档案、项目档案的薪资状态
* @Author: hgw
* @Date: 2022/11/23 17:45
* @return: java.lang.Boolean
**/
@Override
public void everyMonthUpdateSalaryStatus() {
baseMapper.everyMonthUpdateEmployeeInfoSalaryStatus();
tEmployeeProjectService.everyMonthUpdateEmployeeSalaryStatus();
}
/**
* @Description: 每天更新人员档案、项目档案的过期合同为2不在用
* @Author: hgw
* @Date: 2022/11/23 17:45
* @return: java.lang.Boolean
**/
@Override
public void everyDayUpdateEmployeeContractStatus() {
baseMapper.everyDayUpdateEmployeeInfoContractStatus();
tEmployeeProjectService.everyDayUpdateEmployeContractStatus();
}
}
......@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
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.archives.mapper.TEmployeeProjectMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeLogService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectNewOldVO;
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.vo.YifuUser;
......@@ -33,7 +34,7 @@ public class DoJointTask {
private TEmployeeInfoService tEmployeeInfoService;
@Autowired
private TEmployeeProjectService tEmployeeProjectService;
private TEmployeeProjectMapper tEmployeeProjectMapper;
@Autowired
private TEmployeeLogService tEmployeeLogService;
......@@ -48,10 +49,12 @@ public class DoJointTask {
public void doUpdateEmployeeInfo(List<TEmployeeInfo> tEmployeeInfoList, YifuUser user) {
log.info("档案-批量更新人员档案-线程开始");
try {
List<TEmployeeProject> list;
TEmployeeInfo tEmployeeInfoOld;
for(TEmployeeInfo tEmployeeInfo:tEmployeeInfoList) {
TEmployeeInfo tEmployeeInfoOld = tEmployeeInfoService.getById(tEmployeeInfo.getId());
tEmployeeInfoOld = tEmployeeInfoService.getById(tEmployeeInfo.getId());
//查询该人员所有的项目档案
List<TEmployeeProject> list = tEmployeeProjectService.list(Wrappers.<TEmployeeProject>query().lambda()
list = tEmployeeProjectMapper.selectList(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpIdcard, tEmployeeInfo.getEmpIdcard())
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT));
......@@ -90,10 +93,12 @@ public class DoJointTask {
public void updateFddEmployeeInfo(List<TEmployeeInfo> tEmployeeInfoList, FddContractAttachInfo fddContractAttachInfo) {
log.info("法大大档案-批量更新人员档案-线程开始");
try {
TEmployeeInfo tEmployeeInfoOld;
List<TEmployeeProject> list;
for(TEmployeeInfo tEmployeeInfo:tEmployeeInfoList) {
TEmployeeInfo tEmployeeInfoOld = tEmployeeInfoService.getById(tEmployeeInfo.getId());
tEmployeeInfoOld = tEmployeeInfoService.getById(tEmployeeInfo.getId());
//查询该人员所有的项目档案
List<TEmployeeProject> list = tEmployeeProjectService.list(Wrappers.<TEmployeeProject>query().lambda()
list = tEmployeeProjectMapper.selectList(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpIdcard, tEmployeeInfo.getEmpIdcard())
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT));
......@@ -120,4 +125,23 @@ public class DoJointTask {
log.info("法大大档案-批量更新人员档案结束");
}
/**
* @Description: 更新项目档案操作记录
* @Author: huyc
* @Date: 2022-11-22
* @return: void
**/
@Async
public void saveModificationRecord(List<EmployeeProjectNewOldVO> updateProjectList) {
try {
for (EmployeeProjectNewOldVO newOldVO : updateProjectList) {
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[1]
, "", newOldVO.getNewProjectEmployee().getId()
, newOldVO.getOldProjectEmployee(), newOldVO.getNewProjectEmployee());
}
} catch (Exception e) {
log.error("档案-更新项目档案操作记录错误", e);
}
log.info("档案-更新项目档案操作记录结束");
}
}
......@@ -235,10 +235,7 @@
</sql>
<sql id="Base_Export_List">
a
.
EMP_CODE
,
a.EMP_CODE,
a.EMP_NATRUE,
a.EMP_NAME,
a.EMP_IDCARD,
......@@ -951,12 +948,65 @@
<!--tEmployeeInfo人员档案导出查询改造 fxj 2022-11-02-->
<select id="noPageDiy" resultMap="tEmployeeExportMap">
select
<include refid="Base_Export_List"/>,
a.EMP_CODE,
a.EMP_NATRUE,
a.EMP_NAME,
a.EMP_IDCARD,
a.VALIDITY_START,
a.VALIDITY_END,
a.EMP_MARRI_STATUS,
a.EMP_NATIONAL,
a.POLITICAL_STATUS,
a.EMP_PHONE,
a.EMP_EMAIL,
a1.AREA_NAME as "ID_PROVINCE",
a2.AREA_NAME as "ID_CITY",
a3.AREA_NAME as "ID_TOWN",
a.EMP_REGIS_TYPE,
a4.AREA_NAME as "FILE_PROVINCE",
a5.AREA_NAME as "FILE_CITY",
a6.AREA_NAME as "FILE_TOWN",
CASE WHEN a.IS_COLLEGE=0 THEN "否"
WHEN a.IS_COLLEGE =1 THEN "是"
ELSE a.IS_COLLEGE END as "IS_COLLEGE",
a.HIGN_EDUCATION,
a.SCHOOL,
a.MAJOR,
a.ADMISSION_DATE,
a.GRADUTION_DATE,
a.REMARK,
CASE WHEN a.FILE_SOURCE=1 THEN "社保、公积金派单"
WHEN a.FILE_SOURCE =2 THEN "人员发薪"
WHEN a.FILE_SOURCE =3 THEN "商险派单"
WHEN a.FILE_SOURCE =4 THEN "档案新建"
WHEN a.FILE_SOURCE =5 THEN "批量导入"
ELSE a.FILE_SOURCE END as "FILE_SOURCE", # 1=社保、公积金派单,2=人员发薪,3=商险派单,4=档案新建,5=批量导入
a.PROJECT_NUM,
a.CONTRACT_STATUS,
a.INSURANCE_STATUS,
a.SOCIAL_STATUS,
a.FUND_STATUS,
CASE WHEN a.SALARY_STATUS=0 THEN "无"
WHEN a.SALARY_STATUS =1 THEN "是"
WHEN a.SALARY_STATUS =2 THEN "否"
ELSE a.SALARY_STATUS END as "SALARY_STATUS",# 0=无,1=是,2=否
a.CREATE_NAME,
a.CREATE_TIME,
CASE WHEN a.`STATUS`=0 THEN "草稿"
WHEN a.`STATUS` =1 THEN "已审核"
ELSE a.`STATUS` END as "STATUS", # 0=草稿,1=已审核
a.CONTACT_ADDRESS,
p.IS_PROJECTS ,
p.DEPT_NAME,
p.DEPT_NO,
P.PROJECT_NUM
from t_employee_info a
LEFT JOIN sys_area a1 on a1.id=a.ID_PROVINCE
LEFT JOIN sys_area a2 on a2.id=a.ID_CITY
LEFT JOIN sys_area a3 on a3.id=a.ID_TOWN
LEFT JOIN sys_area a4 on a4.id=a.FILE_PROVINCE
LEFT JOIN sys_area a5 on a5.id=a.FILE_CITY
LEFT JOIN sys_area a6 on a6.id=a.FILE_TOWN
LEFT JOIN view_project p on a.EMP_IDCARD=p.EMP_IDCARD
<where>
a.DELETE_FLAG = '0'
......@@ -1100,4 +1150,36 @@
</trim>
WHERE a.id=#{tEmployeeInfo.id}
</update>
<!-- 更新档案商险状态 -->
<update id="updateEmployeeInfoInsuranceStatus" >
update t_employee_info a set a.INSURANCE_STATUS = #{emp.status} where a.EMP_IDCARD = #{emp.idCard}
</update>
<!-- 更新档案薪资状态 -->
<update id="updateEmployeeInfoSalaryStatus" >
update t_employee_info a set a.SALARY_STATUS = #{emp.status} where a.EMP_IDCARD = #{emp.idCard}
</update>
<!-- 每月1号更新档案薪资状态为否薪资 -->
<update id="everyMonthUpdateEmployeeInfoSalaryStatus" >
update t_employee_info e set e.SALARY_STATUS = 2
where e.SALARY_STATUS = 1
and NOT EXISTS (
select 1 from view_salary_account_3month a where a.emp_idcard = e.EMP_IDCARD
)
</update>
<!-- 每天更新人员档案、项目档案的过期合同为2不在用 -->
<update id="everyDayUpdateEmployeeInfoContractStatus" >
update t_employee_info e
left join t_employee_contract_info c on e.EMP_IDCARD=c.EMP_IDCARD and c.IN_USE='0'
set e.CONTRACT_STATUS=2
where e.CONTRACT_STATUS != 2 and c.CONTRACT_END <![CDATA[ < ]]> DATE_FORMAT(curdate(),"%Y-%m-%d")
and not EXISTS (
select 1 from t_employee_contract_info ec where ec.EMP_IDCARD=c.EMP_IDCARD and ec.IN_USE='0'
and (ec.CONTRACT_END is null or ec.CONTRACT_END >= DATE_FORMAT(curdate(),"%Y-%m-%d"))
)
</update>
</mapper>
......@@ -383,35 +383,35 @@
<if test="tEmployeeProject.socialTown != null">
AND a.SOCIAL_TOWN = #{tEmployeeProject.socialTown}
</if>
<if test="tEmployeeProject.empNatureArray != null">
<if test="tEmployeeProject.empNatureArray != null and tEmployeeProject.empNatureArray.length > 0">
AND a.EMP_NATRUE in
<foreach item="idStr" index="index" collection="tEmployeeProject.empNatureArray" open="(" separator=","
close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.contractStatusArray != null">
<if test="tEmployeeProject.contractStatusArray != null and tEmployeeProject.contractStatusArray.length > 0">
AND a.CONTRACT_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.contractStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.insuranceStatusArray != null">
<if test="tEmployeeProject.insuranceStatusArray != null and tEmployeeProject.insuranceStatusArray.length > 0">
AND a.INSURANCE_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.insuranceStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.socialStatusArray != null">
<if test="tEmployeeProject.socialStatusArray != null and tEmployeeProject.socialStatusArray.length > 0">
AND a.SOCIAL_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.socialStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.fundStatusArray != null">
<if test="tEmployeeProject.fundStatusArray != null and tEmployeeProject.fundStatusArray.length > 0">
AND a.FUND_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.fundStatusArray" open="("
separator="," close=")">
......@@ -540,35 +540,35 @@
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.empNatureArray != null">
<if test="tEmployeeProject.empNatureArray != null and tEmployeeProject.empNatureArray.length > 0">
AND a.EMP_NATRUE in
<foreach item="idStr" index="index" collection="tEmployeeProject.empNatureArray" open="(" separator=","
close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.contractStatusArray != null">
<if test="tEmployeeProject.contractStatusArray != null and tEmployeeProject.contractStatusArray.length > 0">
AND a.CONTRACT_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.contractStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.insuranceStatusArray != null">
<if test="tEmployeeProject.insuranceStatusArray != null and tEmployeeProject.insuranceStatusArray.length > 0">
AND a.INSURANCE_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.insuranceStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.socialStatusArray != null">
<if test="tEmployeeProject.socialStatusArray != null and tEmployeeProject.socialStatusArray.length > 0">
AND a.SOCIAL_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.socialStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeProject.fundStatusArray != null">
<if test="tEmployeeProject.fundStatusArray != null and tEmployeeProject.fundStatusArray.length > 0">
AND a.FUND_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeProject.fundStatusArray" open="("
separator="," close=")">
......@@ -727,32 +727,44 @@
)
</foreach>
</insert>
<update id="updateReduceEmpProject" parameterType="java.util.List">
update t_employee_project
<trim prefix="set" suffixOverrides=",">
<trim prefix="LEAVE_TIME =case" suffix="end,">
<foreach collection="list" item="i" index="index">
when ID=#{i.id} then now()
</foreach>
</trim>
<trim prefix="LEAVE_REASON =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.leaveReason!=null">
when ID=#{i.id} then #{i.leaveReason}
</if>
</foreach>
</trim>
<trim prefix="LEAVE_REMARK =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.leaveRemark!=null">
when ID=#{i.id} then #{i.leaveRemark}
</if>
</foreach>
</trim>
<trim prefix="PROJECT_STATUS =case" suffix="end,">
<foreach collection="list" item="i" index="index">
when ID=#{i.id} then 1
</foreach>
</trim>
</trim>
where
<foreach collection="list" separator="or" item="i" index="index" >
ID=#{i.id}
</foreach>
</update>
<!--查询部门编码和最大员工数-->
<select id="findEmployeeMaxOnlyNoByDepId" resultType="java.lang.String">
SELECT
(
SELECT
MAX(EMP_NO)
FROM
t_employee_project
WHERE
id not like '%abc'
and
EMP_NO LIKE CONCAT(
(
SELECT
DEPART_NO
FROM
t_settle_domain
WHERE
DEPART_NO = #{deptNo}
),
'%'
)
) AS 'empNo'
FROM
DUAL
select MAX(EMP_NO) from t_employee_project where
id not like '%abc' and
EMP_NO like concat(#{deptNo},'%')
</select>
<update id="updateEmpIdById" parameterType="java.util.List">
......@@ -837,4 +849,32 @@
</if>
</where>
</select>
<!-- 更新项目档案商险状态 -->
<update id="updateEmployeeInsuranceStatus" >
update t_employee_project a set a.INSURANCE_STATUS = #{emp.status} where a.EMP_IDCARD = #{emp.idCard} and a.DEPT_NO = #{emp.deptNo}
</update>
<!-- 更新项目档案薪资状态 -->
<update id="updateEmployeeSalaryStatus" >
update t_employee_project a set a.SALARY_STATUS = #{emp.status} where a.EMP_IDCARD = #{emp.idCard} and a.DEPT_NO = #{emp.deptNo}
</update>
<!-- 每月1号更新项目档案薪资状态 -->
<update id="everyMonthUpdateEmployeeSalaryStatus" >
update t_employee_project e set e.SALARY_STATUS = 2
where e.SALARY_STATUS = 1
and NOT EXISTS (
select 1 from view_salary_account_3month a where a.emp_idcard = e.EMP_IDCARD and a.dept_id=e.DEPT_ID
)
</update>
<!-- 每天更新人员档案、项目档案的过期合同为2不在用 -->
<update id="everyDayUpdateEmployeContractStatus" >
update t_employee_project e
join t_employee_contract_info c on e.EMP_IDCARD=c.EMP_IDCARD and e.DEPT_NO=c.DEPT_NO and c.IN_USE='0'
set e.CONTRACT_STATUS=2
where e.CONTRACT_STATUS != 2 and c.CONTRACT_END <![CDATA[ < ]]> DATE_FORMAT(curdate(),"%Y-%m-%d")
</update>
</mapper>
......@@ -93,6 +93,16 @@
<artifactId>guava</artifactId>
<version>30.1-jre</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel-core</artifactId>
<version>3.1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
......@@ -53,6 +53,10 @@ public interface CacheConstants {
* 字典信息缓存
*/
String DICT_DETAILS = "dict_details";
/**
* 字典转义信息缓存
*/
String REDIS_DICT_LABLE = "redis_dict_lable";
/**
* 字典项信息缓存
......@@ -113,6 +117,16 @@ public interface CacheConstants {
* 区域数据--值
*/
String AREA_VALUE = "area_value:";
/**
* 区域数据--标签
*/
String AREA_LABEL_GROUP = "area_label";
/**
* 区域数据--值
*/
String AREA_VALUE_GROUP = "area_value";
/**
* 用户登录的项目vo缓存
*/
......
......@@ -294,6 +294,8 @@ public interface CommonConstants {
**/
String RESULT_DATA_FAIL= "操作失败";
String RESULT_DATA_SUCESS= "操作成功";
String SAVE_SUCCESS = "保存成功!";
String UPDATE_SUCCESS = "更新成功!";
......@@ -319,7 +321,7 @@ public interface CommonConstants {
public static final String ZIP_TYPE = "zip";
int BATCH_COUNT = 100;
int BATCH_COUNT1 = 1000;
int BATCH_COUNT1 = 2000;
String IMPORT_DATA_ANALYSIS_ERROR = "数据导入解析异常,请检查表数据格式(1.日期格式:yyyy-MM-dd,2.比例为整数且不含%)";
String CREATE_TIME = "CREATE_TIME";
String ID = "ID";
......@@ -473,6 +475,8 @@ public interface CommonConstants {
public static final int TWENTY_INT = 20;
public static final String TWENTY_STRING = "20";
public static final int TWENTY_ONE_STRING = 21;
public static final String ERROR_MSG_PRFIX = "error=";
......
......@@ -1471,6 +1471,18 @@ public class DateUtil {
return thisYear - years + 1;
}
/**
* @param patten 格式
* @Description: 获取今天
* @Author: hgw
* @Date: 2022/11/28 18:06
* @return: java.lang.String
**/
public static String getThisDayByPatten(String patten){
SimpleDateFormat sf = new SimpleDateFormat(patten);
return sf.format(new Date());
}
/**
* @Description: 返回当前年月日字符串
* @Author: hgw
......
package com.yifu.cloud.plus.v1.yifu.common.core.util;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import java.util.Map;
/**
* @Author fxj
* @Date 2022/11/24
* @Description
* @Version 1.0
*/
public class DictConverter implements Converter<String>{
public DictConverter(Map<String,String> nameAndDicTypeMap,Map<String,String> redisLabelMap){
this.nameAndDicTypeMap=nameAndDicTypeMap;
this.redisLabelMap=redisLabelMap;
}
private Map<String,String> nameAndDicTypeMap;
private Map<String,String> redisLabelMap;
@Override
public Class<String> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
/**
* @Author fxj
* @Description 转换成功java 导入用
* @Date 18:24 2022/11/24
**/
@Override
public String convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty
, GlobalConfiguration globalConfiguration) {
return cellData.getStringValue();
}
/**
* @Author fxj
* @Description 装换成String 导出用
* @Date 18:25 2022/11/24
**/
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty
, GlobalConfiguration globalConfiguration) {
if (null != nameAndDicTypeMap && nameAndDicTypeMap.size() > 0){
String dicType = nameAndDicTypeMap.get(contentProperty.getField().getName());
if (null != dicType){
String temp =redisLabelMap.get(dicType+CommonConstants.DOWN_LINE_STRING+value);
return new WriteCellData<>(null==temp?value:temp);
}
}
return new WriteCellData<>(String.valueOf(value));
}
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) throws Exception {
return this.convertToExcelData(context.getValue(), context.getContentProperty(), context.getWriteContext().currentWriteHolder().globalConfiguration());
}
}
......@@ -1125,4 +1125,27 @@ public class ExcelUtil <T> implements Serializable {
}
}
}
public Map<String,String> getConverterDicType() {
// 得到所有定义字段
Field[] allFields = clazz.getDeclaredFields();
Map<String,String> nameDicMap = new HashMap<>();
List<Field> fields = new ArrayList<>();
// 将需要字典表头存起来备用,如果没传,则全部翻译
for (Field field : allFields) {
if (field.isAnnotationPresent(ExcelAttribute.class)) {
fields.add(field);
}
}
ExcelAttribute attr;
Field field;
for (int j = 0; j < fields.size(); j++) {
field = fields.get(j);
attr = field.getAnnotation(ExcelAttribute.class);
if (Common.isNotNull(field) && Common.isNotNull(attr)){
nameDicMap.put(field.getName(),attr.dataType());
}
}
return nameDicMap;
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 封装更多信息-返回给前端的错误信息
*
* @author hgw
* @date 2022-11-24 16:41:21
*/
@Data
public class ErrorDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
// 行号
private int lineNum;
// 员工姓名
private String empName;
// 身份证号
private String empIdCard;
// 社保户
private String socialHousehold;
// 公积金户
private String providentHousehold;
// 每一行的结果:0错误;1正确(例如:是否允许删除:0否;1是)
private int result = 0;
// 提示信息
private String message;
// 所有行的结果,当第一行的allTrue=1时,需要反馈文件,否则直接提示成功
private int allTrue = 0;
public ErrorDetailVO(Integer lineNum, String message) {
this.lineNum = lineNum;
this.result = 0;
this.message = message;
}
public ErrorDetailVO(Integer lineNum, int result, String empIdCard, String socialHousehold, String providentHousehold, String empName,String message) {
this.lineNum = lineNum;
this.result = result;
this.empIdCard = empIdCard;
this.socialHousehold = socialHousehold;
this.providentHousehold = providentHousehold;
this.empName = empName;
this.message = message;
}
}
......@@ -5,7 +5,6 @@ import com.alibaba.fastjson.TypeReference;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -13,7 +12,6 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
......@@ -187,6 +185,23 @@ public class ArchivesDaprUtil {
return res;
}
/**
* @param idcard
* @Description: 获取档案基本信息
* @Author: huyc
* @Date: 2022/11/28 14:48
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
public R<TEmployeeInfo> getTEmployeeInfoByIdcard(String idcard) {
R<TEmployeeInfo> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/getTEmployeeInfoByIdcard" , idcard, TEmployeeInfo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取档案信息失败!");
}
return res;
}
/**
* @Description: 获取项目档案基本信息
* @Author: hgw
......@@ -294,4 +309,38 @@ public class ArchivesDaprUtil {
}
return res;
}
/**
* @Description: 更新项目档案的商险状态。商险的status 0无2正常3失效4处理中
* @Author: hgw
* @Date: 2022/11/23 15:29
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.Boolean>
**/
public R<Boolean> updateEmployeeInsuranceStatus(EmpStatusVo empStatusVo){
R<Boolean> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeproject/inner/updateEmployeeInsuranceStatus"
, JSON.toJSONString(empStatusVo) , Boolean.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("更新【项目档案】的商险状态失败!");
}
return res;
}
/**
* @Description: 仅更新人员档案,项目档案另外更新。商险的status 0无2正常3失效4处理中
* @Author: hgw
* @Date: 2022-11-23 16:50:41
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.Boolean>
**/
public R<Boolean> updateEmployeeInfoInsuranceStatus(EmpStatusVo empStatusVo){
R<Boolean> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/updateEmployeeInfoInsuranceStatus"
, JSON.toJSONString(empStatusVo), Boolean.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("更新【人员档案】的商险状态失败!");
}
return res;
}
}
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AllUserNaVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaMap;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -37,6 +38,19 @@ public class UpmsDaprUtils {
}
return areaListR;
}
/**
* 获取所有区域数据
* @Author huyc
* @Date 2022-07-18
* @return
**/
public R<AreaMap> getAreaMapR() {
R<AreaMap> areaListR = HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/area/inner/getAreaMap","", AreaMap.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(areaListR)){
return R.failed("获取所有区域数据失败!");
}
return areaListR;
}
/**
* @Author fxj
......
......@@ -42,8 +42,6 @@ import org.springframework.security.core.userdetails.UserDetails;
@RequiredArgsConstructor
public class YifuUserDetailsServiceImpl implements YifuUserDetailsService {
//private final RemoteUserService remoteUserService;
private final CacheManager cacheManager;
private final DaprUpmsProperties daprUpmsProperties;
......@@ -57,13 +55,11 @@ public class YifuUserDetailsServiceImpl implements YifuUserDetailsService {
@SneakyThrows
public UserDetails loadUserByUsername(String username) {
Cache cache = cacheManager.getCache(CacheConstants.USER_DETAILS);
Object o = cache.get(username);
if (cache != null && cache.get(username) != null) {
return (YifuUser) cache.get(username).get();
}
R<UserInfo> result;// = remoteUserService.info(username, SecurityConstants.FROM_IN);
result = HttpDaprUtil.invokeMethodGet(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(), "/user/getInfoByUsername", "?username="+username, UserInfo.class);
R<UserInfo> result = HttpDaprUtil.invokeMethodGet(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(), "/user/getInfoByUsername", "?username="+username, UserInfo.class);
UserDetails userDetails = getUserDetails(result);
if (cache != null) {
cache.put(username, userDetails);
......
......@@ -25,6 +25,12 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-archives-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!--选配: orm 模块-->
<dependency>
<groupId>com.baomidou</groupId>
......
......@@ -236,5 +236,15 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
**/
int ekpUpdateInsuranceDept(@Param("idSet") Set<String> idSet, @Param("dept") TSettleDomainSelectVo dept);
/**
* @param idCardList
* @Description: 根据身份证列表,查找所有商险
* @Author: hgw
* @Date: 2022/11/23 15:17
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail>
**/
List<TInsuranceDetail> selectByIdCardList(@Param("idCardList") List<String> idCardList
, @Param("idList") List<String> idList);
List<TInsuranceDetail> selectPushList();
}
......@@ -19,8 +19,8 @@ spring:
ekp:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: hroread
password: 123456
username: root
password: ekp!@#123
jdbc-url: jdbc:mysql://119.96.192.73:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
minimum-idle: 10 # 最小空闲连接数量
......
......@@ -19,9 +19,9 @@ spring:
ekp:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: hroread
password: 123456
jdbc-url: jdbc:mysql://119.96.192.73:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
username: root
password: ekp!@#123
jdbc-url: jdbc:mysql://36.7.147.19:20023/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
minimum-idle: 10 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
......
......@@ -1193,4 +1193,24 @@
t_insurance_detail
WHERE ERROR_STATUS = '1'
</select>
<!--查询所有商险,如果idList 不为空,则不含被替换的本身。 用来改变档案状态-->
<select id="selectByIdCardList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_insurance_detail
where
DELETE_FLAG = 0 AND EMP_IDCARD_NO in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
<if test="idList != null">
AND id not in
<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
package com.yifu.cloud.plus.v1.job.compont;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @Author hgw
* @Description 定时任务具体执行类
* @Date 2022-11-24 15:03:14
* @Param
* @return
**/
@Component(value = "archiveTask")
@Slf4j
@EnableConfigurationProperties(DaprArchivesProperties.class)
public class ArchiveTask {
@Autowired
private DaprArchivesProperties daprArchivesProperties;
/**
* @Author hgw
* @Description 每月1号清理人员档案、项目档案的薪资状态
* @Date 2022-11-24 15:06:37
* @Param
**/
public void everyMonthUpdateSalaryStatus() {
log.info("-------------每月1号清理人员档案、项目档案的薪资状态-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(), daprArchivesProperties.getAppId(),
"/temployeeinfo/inner/everyMonthUpdateSalaryStatus", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------每月1号清理人员档案、项目档案的薪资状态-定时任务结束------------");
}
/**
* @Author hgw
* @Description 每天更新人员档案、项目档案的过期合同为2不在用
* @Date 2022-11-24 15:06:37
* @Param
**/
public void everyDayUpdateEmployeeContractStatus() {
log.info("-------------每天更新人员档案、项目档案的过期合同为2不在用-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(), daprArchivesProperties.getAppId(),
"/temployeeinfo/inner/everyDayUpdateEmployeeContractStatus", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------每天更新人员档案、项目档案的过期合同为2不在用-定时任务结束------------");
}
}
\ No newline at end of file
......@@ -26,4 +26,6 @@ public class UpdateSocialFoundVo {
private String socialCreateMonth;
private String flag;
private String oldDeptId;
}
......@@ -1468,7 +1468,7 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
try {
// 薪资核心导入代码
if (CommonConstants.THREE_STRING.equals(salaryType)) {
return this.doLaborCoreSalary(savList, saiList, dept, invoiceTitle, salary, user);
return this.doLaborCoreSalary(savList, saiList, dept, salary, user);
} else {
return this.doRemuCoreSalary(savList, saiList, dept, salary, user);
}
......@@ -1502,11 +1502,10 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
* @return: com.yifu.cloud.v1.common.core.util.R
**/
public R doLaborCoreSalary(List<TSalaryAccountVo> savList, List<TSalaryAccountItem> saiList,
TSettleDomainSelectVo dept, String invoiceTitle, TSalaryStandard salary, YifuUser user) {
TSettleDomainSelectVo dept, TSalaryStandard salary, YifuUser user) {
List<TSalaryAccount> aList = new ArrayList<>();
TSalaryAccount a;//定库:
BigDecimal relaySalarySum = BigDecimal.ZERO; //工资应发
List<TSalaryAccountItem> asList; //累计扣税
int size = savList.size();
// 自有员工人数
int ownNum = 0;
......@@ -1518,21 +1517,12 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
// 是否重复金额false:否;true:是
boolean repeatFlag = false;
List<String> idCardList = new ArrayList<>();
for (TSalaryAccountVo vo : savList) {
if (Common.isNotNull(vo.getEmpIdcard())) {
idCardList.add(vo.getEmpIdcard());
}
}
// 工资查询所需的全部list,组装Map来使用
Map<String, List<TSalaryAccountItem>> itemMap = tSalaryAccountItemService.getAllItemVoList(idCardList, invoiceTitle);
TSalaryAccountItem sai;
for (int i = CommonConstants.ZERO_INT; i < size; i++) {
a = new TSalaryAccount();
try {
SalaryAccountUtil.reflectionAttr(savList.get(i), a);
a.setSalaryMonth(DateUtil.getThisMonth());
if (!haveSalaryFlag && a.getHaveSalaryFlag() != null && a.getHaveSalaryFlag() == CommonConstants.ONE_INT) {
haveSalaryFlag = true;
}
......@@ -1549,14 +1539,10 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
}
}
//累计扣税list
asList = this.getLaborAsList(itemMap.get(a.getEmpIdcard()), a.getSettlementMonth());
// 实发劳务费,按月累计扣税
this.saveNewItems(saiList, SalaryConstants.SALARY_TAX,
SalaryConstants.SALARY_TAX_JAVA,
calculationLabor(saiList, asList
, saiList, a), CommonConstants.ZERO_INT);
calculationLabor(saiList, saiList, a), CommonConstants.ZERO_INT);
// 自有员工以及自有员工应发金额
if (Common.isNotNull(a.getOwnFlag()) && a.getOwnFlag() == 1) {
......@@ -1584,6 +1570,7 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
salary.setHaveSpecialFlag(CommonConstants.ZERO_INT);
salary.setIsRepeat(CommonConstants.ZERO_INT);
salary.setStatus(SalaryConstants.AUDIT_STATUS[0]);
salary.setSalaryMonth(DateUtil.getThisMonth());
if (haveSalaryFlag || ownNum > 0 || repeatFlag) {
if (haveSalaryFlag) {
salary.setHaveSalaryFlag(CommonConstants.ONE_INT);
......@@ -1629,15 +1616,13 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
/**
* @param itemList
* @param itemHistoryList
* @param saiList
* @Description: 计算劳务费个税、应发
* @Author: hgw
* @Date: 2022/3/3 11:30
* @return: java.math.BigDecimal
**/
private BigDecimal calculationLabor(List<TSalaryAccountItem> itemList, List<TSalaryAccountItem> itemHistoryList,
List<TSalaryAccountItem> saiList, TSalaryAccount a) {
private BigDecimal calculationLabor(List<TSalaryAccountItem> itemList,List<TSalaryAccountItem> saiList, TSalaryAccount a) {
// B7 = 当月实发合计
// 税=ROUND(IF(B7<=800,0,IF(B7<=3360,(B7-800)/4,IF(B7<=21000,0.16*B7/0.84,IF(B7<=49500,(0.24*B7-2000)/0.76,(0.32*B7-7000)/0.68)))),2)
// 本次实发
......@@ -1813,6 +1798,7 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
BigDecimal actualSalarySum = BigDecimal.ZERO;
try {
SalaryAccountUtil.reflectionAttr(savList.get(i), a);
a.setSalaryMonth(DateUtil.getThisMonth());
if (!haveSalaryFlag && a.getHaveSalaryFlag() != null && a.getHaveSalaryFlag() == CommonConstants.ONE_INT) {
haveSalaryFlag = true;
}
......@@ -1862,6 +1848,7 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
salary.setSettlementAmount(relaySalarySum);
salary.setHaveSalaryFlag(CommonConstants.ZERO_INT);
salary.setHaveSpecialFlag(CommonConstants.ZERO_INT);
salary.setSalaryMonth(DateUtil.getThisMonth());
salary.setIsRepeat(CommonConstants.ZERO_INT);
salary.setStatus(SalaryConstants.AUDIT_STATUS[0]);
if (haveSalaryFlag || ownNum > 0 || repeatFlag) {
......
......@@ -117,12 +117,12 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)) {
/*if (Common.isNotNull(list)) {
util = new ExcelUtil<>(TSalaryEmployeeExportVo.class);
for (TSalaryEmployeeExportVo vo : list) {
util.convertEntity(vo, null, null, null);
}
}
}*/
if (Common.isNotNull(list)) {
writeSheet = EasyExcel.writerSheet("薪酬人员表" + index).build();
excelWriter.write(list, writeSheet);
......
......@@ -19,12 +19,15 @@ package com.yifu.cloud.plus.v1.yifu.salary.service.impl;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TDepartSettlementInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpIdCardAndDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -537,12 +540,15 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
Date sendTime = new Date();
String nowMonth = DateUtil.addMonth(0);
EkpSalaryParam salaryParam;
EmpIdCardAndDeptVo empIdCardAndDeptVo;
List<EmpIdCardAndDeptVo> voList = new ArrayList<>();
for (EkpSalaryParamVo sendParam : ekpList) {
salaryParam = new EkpSalaryParam();
BeanUtils.copyProperties(sendParam, salaryParam);
// 转化报账表的参数
account = new TSalaryAccount();
account.setId(sendParam.getFd_3b10af838eab5c());
// 社保
if ((Common.isNotNull(sendParam.getUnitSocial())
&& !CommonConstants.ZERO_STRING.equals(sendParam.getUnitSocial()))
......@@ -568,6 +574,11 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
account.setSendStatus(CommonConstants.ONE_STRING);
account.setSendMonth(nowMonth);
account.setEkpId(sendBack);
empIdCardAndDeptVo = new EmpIdCardAndDeptVo();
empIdCardAndDeptVo.setIdCard(sendParam.getFd_3adfedfb8f76d4());
empIdCardAndDeptVo.setDeptNo(sendParam.getFd_3adfedf98ccba2());
empIdCardAndDeptVo.setStatus(CommonConstants.ONE_STRING);
voList.add(empIdCardAndDeptVo);
} else {
sendStatus = false;
TSendEkpError error = new TSendEkpError();
......@@ -584,6 +595,15 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
accountList.add(account);
}
salaryAccountService.updateBatchById(accountList);
if (!voList.isEmpty()) {
// 改变档案状态
EmpStatusVo empStatusVo = new EmpStatusVo();
empStatusVo.setEmpInfo(voList);
HttpDaprUtil.invokeMethodPost(archivesProperties.getAppUrl(), archivesProperties.getAppId()
,"/temployeeproject/inner/updateEmployeeSalaryStatus"
, JSON.toJSONString(empStatusVo) , Boolean.class, SecurityConstants.FROM_IN);
}
if (sendStatus) {
EkpSalaryStandardParam standardParam = new EkpSalaryStandardParam();
standardParam.setFd_3b3bf2c3b1a6cc(s.getDeptName());
......@@ -595,12 +615,7 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
standardParam.setFd_3b3d3ec85bfeb0(s.getSalaryMonth().substring(0,4)
+ CommonConstants.CENTER_SPLIT_LINE_STRING + s.getSalaryMonth().substring(4,6));
// 推送主表信息
String loginName;
if (user != null) {
loginName = user.getUsername();
} else {
loginName = s.getCreateName();
}
String loginName = user.getUsername();
sendBack = ekpSalaryUtil.sendStandardToEKP(loginName, standardParam);
if (Common.isEmpty(sendBack) || sendBack.length() != 32) {
sendBack = ekpSalaryUtil.sendStandardToEKP(loginName, standardParam);
......
......@@ -182,8 +182,34 @@
<select id="noPageDiy" resultMap="salaryEmployeeExportMap" parameterType="com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeExportVo">
SELECT
<include refid="Base_Column_List"/>
a.ID,
a.EMP_NAME,
a.EMP_IDCARD,
a.UNIT_ID,
a.UNIT_NAME,
a.UNIT_NO,
a.DEPT_ID,
a.DEPT_NAME,
a.DEPT_NO,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.BANK_NAME,
a.BANK_SUB_NAME,
a.BANK_NO,
a.INVOICE_TITLE,
a1.area_name as "BANK_PROVINCE",
a2.area_name as "BANK_CITY",
a.EMP_PHONE,
a.TAX_MONTH,
case when a.FILE_STATUS = 0 then "在职"
when a.FILE_STATUS = 1 then "离职"
else null end as "FILE_STATUS"
FROM t_salary_employee a
left join sys_area a1 on a1.id=a.BANK_PROVINCE
left join sys_area a2 on a2.id=a.BANK_CITY
<where>
1=1
<include refid="where_export"/>
......
......@@ -22,9 +22,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
......@@ -43,7 +41,6 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
@Schema(description ="员工姓名")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工姓名")
@Size(max = 20, message = "员工姓名不可超过20位")
private String empName;
/**
......@@ -53,7 +50,6 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
@Schema(description ="员工编码")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工编码")
@Size(max = 32, message = "员工编码不可超过32位")
private String empNo;
/**
......@@ -63,7 +59,6 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
@Schema(description ="身份证号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("身份证号")
@Size(max = 32, message = "身份证号不可超过32位")
private String empIdcard;
/**
......@@ -87,7 +82,6 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 项目编码
*/
@Length(max = 50, message = "项目编码不能超过50个字符" )
@ExcelAttribute(name = "项目编码", maxLength = 50)
@Schema(description = "项目编码" )
@HeadFontStyle(fontHeightInPoints = 11)
......@@ -124,9 +118,8 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 社保缴纳月份
*/
@ExcelAttribute(name = "社保缴纳月份", maxLength = 6,isInteger = true)
@ExcelAttribute(name = "社保缴纳月份")
@Schema(description ="社保缴纳月份")
@Length(max = 6, message = "社保缴纳月份不能超过6个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保缴纳月份")
private String socialPayMonth;
......@@ -134,8 +127,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 社保生成月份
*/
@ExcelAttribute(name = "社保生成月份", maxLength = 6,isInteger = true)
@Length(max = 6, message = "社保生成月份不能超过6个字符")
@ExcelAttribute(name = "社保生成月份")
@Schema(description ="社保生成月份")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保生成月份")
......@@ -153,8 +145,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 公积金缴纳月份
*/
@ExcelAttribute(name = "公积金缴纳月份", maxLength = 6,isInteger = true)
@Length(max = 6, message = "公积金缴纳月份不能超过6个字符")
@ExcelAttribute(name = "公积金缴纳月份")
@Schema(description ="公积金缴纳月份")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金缴纳月份")
......@@ -163,8 +154,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 公积金生成月份
*/
@ExcelAttribute(name = "公积金生成月份", maxLength = 6,isInteger = true)
@Length(max = 6, message = "公积金生成月份不能超过6个字符")
@ExcelAttribute(name = "公积金生成月份")
@Schema(description ="公积金生成月份")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金生成月份")
......@@ -188,60 +178,6 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
@ExcelProperty("公积金缴纳地")
private String providentPayAddr;
/**
* 公积金缴纳地-省
*/
@ExcelAttribute(name = "公积金缴纳地-省", isArea = true)
@Schema(description ="公积金缴纳地-省")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金缴纳地-省")
private String fundProvince;
/**
* 公积金缴纳地-市
*/
@ExcelAttribute(name = "公积金缴纳地-市",isArea = true, parentField = "fundProvince")
@Schema(description ="公积金缴纳地-市")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金缴纳地-市")
private String fundCity;
/**
* 公积金缴纳地-县
*/
@ExcelAttribute(name = "公积金缴纳地-县",isArea = true, parentField = "fundCity")
@Schema(description ="公积金缴纳地-县")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金缴纳地-县")
private String fundTown;
/**
* 社保缴纳地-省
*/
@ExcelAttribute(name = "社保缴纳地-省",isArea = true)
@Schema(description ="社保缴纳地-省")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保缴纳地-省")
private String socialProvince;
/**
* 社保缴纳地-市
*/
@ExcelAttribute(name = "社保缴纳地-市", isArea = true, parentField = "socialProvince")
@Schema(description ="社保缴纳地-市")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保缴纳地-市")
private String socialCity;
/**
* 社保缴纳地-县
*/
@ExcelAttribute(name = "社保缴纳地-县", isArea = true, parentField = "socialCity")
@Schema(description ="社保缴纳地-县")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保缴纳地-县")
private String socialTown;
/**
* 社保合计
*/
......@@ -304,35 +240,35 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 单位养老基数
*/
@ExcelAttribute(name = "养老基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "养老基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老基数")
private BigDecimal unitPensionSet;
/**
* 单位医疗基数
*/
@ExcelAttribute(name = "医疗基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "医疗基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗基数")
private BigDecimal unitMedicalSet;
/**
* 单位失业基数
*/
@ExcelAttribute(name = "失业基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "失业基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业基数")
private BigDecimal unitUnemploymentSet;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "工伤基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "工伤基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤基数")
private BigDecimal unitInjurySet;
/**
* 单位生育基数
*/
@ExcelAttribute(name = "生育基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "生育基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育基数")
private BigDecimal unitBirthSet;;
......@@ -409,15 +345,14 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 公积金编号
*/
@ExcelAttribute(name = "公积金编号", maxLength = 20)
@Size(max = 20, message = "公积金编号不可超过20位")
@ExcelAttribute(name = "公积金编号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金编号")
private String providentNo;
/**
* 单位公积金基数
*/
@ExcelAttribute(name = "单位公积金基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "单位公积金基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位公积金基数")
private BigDecimal unitProvidentSet;
......@@ -438,7 +373,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 个人公积金基数
*/
@ExcelAttribute(name = "个人公积金基数", isFloat = true,max = "999999999.99")
@ExcelAttribute(name = "个人公积金基数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人公积金基数")
private BigDecimal personalProidentSet;
......@@ -453,7 +388,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 社保创建人姓名
*/
@ExcelAttribute(name = "社保创建人姓名", maxLength = 32)
@ExcelAttribute(name = "社保创建人姓名")
@Schema(description = "社保创建人姓名")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保创建人姓名")
......@@ -468,7 +403,7 @@ public class TPaymentInfoExportVo extends RowIndex implements Serializable {
/**
* 公积金创建人姓名
*/
@ExcelAttribute(name = "公积金创建人姓名", maxLength = 32)
@ExcelAttribute(name = "公积金创建人姓名")
@Schema(description = "公积金创建人姓名")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金创建人姓名")
......
......@@ -16,6 +16,8 @@
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -43,10 +45,18 @@ public class TPaymentInfoSearchVo extends TPaymentInfo {
private List<String> idList;
/**
* 创建时间区间 [开始时间,结束时间]
* 开始时间(查询专用)
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
@ExcelAttribute(name = "创建开始时间")
@TableField(exist = false)
private LocalDateTime createTimeStart;
/**
* 截止时间(查询专用)
*/
@ExcelAttribute(name = "创建截止时间")
@TableField(exist = false)
private LocalDateTime createTimeEnd;
/**
* @Author fxj
* 查询数据起
......
......@@ -11,4 +11,5 @@ public class PaymentConstants {
public static final String UNEMPLOYEEMENT_RISK = "失业保险";
public static final String INJURY_RISK = "工伤保险";
public static final String MEDICAL = "医疗";
public static final String EXPORT = "缴费库合并导出";
}
......@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.ErrorDetailVO;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.salary.vo.HaveSalaryNoSocialSearchVo;
......@@ -146,7 +147,7 @@ public class TPaymentInfoController {
@SysLog("批量新增缴费库")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_batchImport')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file, @RequestParam String random) {
public R<List<ErrorDetailVO>> importListAdd(@RequestBody MultipartFile file, @RequestParam String random) {
return tPaymentInfoService.importSocialDiy(file.getInputStream());
}
......@@ -160,7 +161,7 @@ public class TPaymentInfoController {
@Operation(description = "导入省市社保-合肥三险")
@SysLog("批量新增缴费库-合肥三险")
@PostMapping("/importListSocialHeFei")
public R<List<ErrorMessage>> importListSocialHeFei(@RequestBody MultipartFile file, @RequestParam String random,
public R<List<ErrorDetailVO>> importListSocialHeFei(@RequestBody MultipartFile file, @RequestParam String random,
@RequestParam(value = "type") String type) {
return tPaymentInfoService.importSocialHeFeiDiy(file.getInputStream(), random, type);
}
......@@ -176,7 +177,7 @@ public class TPaymentInfoController {
@SysLog("导入公积金")
@PostMapping("/batchImportPaymentFundInfo")
@PreAuthorize("@pms.hasPermission('social_tpaymentinfo_batchImport')")
public R<List<ErrorMessage>> importListFund(@RequestBody MultipartFile file) {
public R<List<ErrorDetailVO>> importListFund(@RequestBody MultipartFile file) {
return tPaymentInfoService.batchImportPaymentFundInfo(file.getInputStream());
}
......@@ -402,9 +403,9 @@ public class TPaymentInfoController {
@Operation(summary = "手动推送社保缴费库明细的数据", description = "手动推送社保缴费库明细的数据")
@SysLog("手动推送社保缴费库明细的数据")
@PostMapping("/pushPaymentSocialFundInfo")
public R<Boolean> pushPaymentSocialFundInfo() {
tPaymentInfoService.pushPaymentSocialFundInfo();
return R.ok(null,"需要推送请联系系统管理员");
public R<Boolean> pushPaymentSocialFundInfo(@RequestBody TPaymentInfoSearchVo searchVo) {
tPaymentInfoService.pushPaymentSocialFundInfo(searchVo);
return R.ok();
}
/**
......@@ -418,4 +419,17 @@ public class TPaymentInfoController {
public R<String> changeDeptByEkp(@RequestBody ChangeDeptVo changeDeptVo) {
return tPaymentInfoService.changeDeptByEkp(changeDeptVo);
}
/**
* @Description: 批量标识可以推送的数据
* @Author: huyc
* @Date: 2022/11/16
* @return: R
**/
@Operation(summary = "批量标识可以推送的数据", description = "批量标识可以推送的数据")
@SysLog("批量标识可以推送的数据")
@PostMapping("/batchUpdatePaymentInfo")
public R<Boolean> batchUpdatePaymentInfo(@RequestBody TPaymentInfoSearchVo searchVo) {
return tPaymentInfoService.batchUpdatePaymentInfo(searchVo);
}
}
......@@ -156,4 +156,16 @@ public class TSocialFundInfoController {
tSocialFundInfoService.updateSocialAndFoundInfo(list);
}
/**
* @Description: 查找社保公积金,是否都派减或为空,允许直接审核通过合同——盛宇2022年11月28日09:18:38
* @Author: hgw
* @Date: 2022/11/28 9:18
* @return: void
**/
@Inner
@PostMapping("/inner/selectSocialFoundByContract")
public int selectSocialFoundByContract(@RequestBody TSocialFundInfo sf) {
return tSocialFundInfoService.selectSocialFoundByContract(sf);
}
}
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