Commit bbaa2251 authored by hongguangwu's avatar hongguangwu

MVP1.7.17-离职待办-派单暂存

parent 0bdbdd03
...@@ -227,6 +227,18 @@ public class EmployeeContractVO extends RowIndex implements Serializable { ...@@ -227,6 +227,18 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty(value ="试用期") @ExcelProperty(value ="试用期")
private String tryPeriod; private String tryPeriod;
/**
* id
*/
@ExcelAttribute(name = "contractId")
@ExcelProperty(value ="contractId")
private String contractId;
// 离职待办ID
@ExcelAttribute(name = "leaveId")
@ExcelProperty(value ="leaveId")
private String leaveId;
/** /**
* id * id
*/ */
......
...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo; ...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle; import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex; import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import lombok.Data; import lombok.Data;
...@@ -89,4 +90,9 @@ public class EmployeeXProjectVO extends RowIndex implements Serializable { ...@@ -89,4 +90,9 @@ public class EmployeeXProjectVO extends RowIndex implements Serializable {
// @NotNull(message = "是否同步减档不能为空") // @NotNull(message = "是否同步减档不能为空")
// @ExcelAttribute(name = "是否同步减档",isNotEmpty = true, errorInfo = "是否同步减档不能为空",maxLength = 1) // @ExcelAttribute(name = "是否同步减档",isNotEmpty = true, errorInfo = "是否同步减档不能为空",maxLength = 1)
private String isLeaveEmployee; private String isLeaveEmployee;
@TableField(exist = false)
private String leaveId;
@TableField(exist = false)
private String oldId;
} }
...@@ -27,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; ...@@ -27,6 +27,7 @@ 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.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; 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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
...@@ -291,6 +292,19 @@ public class TEmployeeContractInfoController { ...@@ -291,6 +292,19 @@ public class TEmployeeContractInfoController {
return tEmployeeContractInfoService.batchImport(file.getInputStream()); return tEmployeeContractInfoService.batchImport(file.getInputStream());
} }
/**
* @param paramVo
* @Description: 离职待办减少合同
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceContract")
public BaseSearchListVO leaveToReduceContract(@RequestBody BaseSearchListVO paramVo){
return tEmployeeContractInfoService.leaveToReduceContract(paramVo);
}
/** /**
* 批量更新-合同 * 批量更新-合同
* *
......
...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants; ...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock; import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; 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.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
...@@ -609,16 +610,29 @@ public class TEmployeeInfoController { ...@@ -609,16 +610,29 @@ public class TEmployeeInfoController {
} }
/** /**
* @param paramVo * @Description: 查询人员的档案、项目档案、合同状态
* @Description: 查询是否存在派增部分失败与成功的的社保
* @Author: hgw * @Author: hgw
* @Date: 2025/11/20 17:15 * @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO * @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/ **/
@Operation(summary = "查询是否存在派增部分失败与成功的的社保、公积金", description = "查询是否存在派增部分失败与成功的的社保") @Operation(summary = "查询人员的档案、项目档案、合同状态", description = "查询人员的档案、项目档案、合同状态")
@Inner @Inner
@PostMapping("/inner/getEmpAndContractStatus") @PostMapping("/inner/getEmpAndContractStatus")
public BaseSearchVO getEmpAndContractStatus(@RequestBody BaseSearchVO paramVo) { public BaseSearchVO getEmpAndContractStatus(@RequestBody BaseSearchVO paramVo) {
return tEmployeeInfoService.getEmpAndContractStatus(paramVo); return tEmployeeInfoService.getEmpAndContractStatus(paramVo);
} }
/**
* @param paramVo
* @Description: 离职待办减少项目档案
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceEmp")
public BaseSearchListVO leaveToReduceEmp(@RequestBody BaseSearchListVO paramVo){
return tEmployeeInfoService.leaveToReduceEmp(paramVo);
}
} }
...@@ -27,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; ...@@ -27,6 +27,7 @@ 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.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; 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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
...@@ -206,6 +207,19 @@ public class TEmployeeProjectController { ...@@ -206,6 +207,19 @@ public class TEmployeeProjectController {
return tEmployeeProjectService.batchDeleteEmpPro(file.getInputStream()); return tEmployeeProjectService.batchDeleteEmpPro(file.getInputStream());
} }
/**
* @param paramVo
* @Description: 离职待办减少项目档案
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceProject")
public BaseSearchListVO leaveToReduceProject(@RequestBody BaseSearchListVO paramVo){
return tEmployeeProjectService.leaveToReduceProject(paramVo);
}
/** /**
* 批量新增项目档案信息 * 批量新增项目档案信息
* *
......
...@@ -121,4 +121,6 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac ...@@ -121,4 +121,6 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac
void updateContractEnd( @Param("tEmployeeContractInfo")TEmployeeContractInfo tEmployeeContractInfo); void updateContractEnd( @Param("tEmployeeContractInfo")TEmployeeContractInfo tEmployeeContractInfo);
List<TEmployeeContractInfo> getContractAlertDeptNosList(); List<TEmployeeContractInfo> getContractAlertDeptNosList();
List<EmployeeContractVO> getLeaveContractList(@Param("idList") List<String> idList);
} }
...@@ -24,6 +24,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo; ...@@ -24,6 +24,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; 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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -147,6 +148,9 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract ...@@ -147,6 +148,9 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
**/ **/
R<List<ErrorMessage>> batchImport(InputStream inputStream); R<List<ErrorMessage>> batchImport(InputStream inputStream);
// 离职待办减少合同
BaseSearchListVO leaveToReduceContract(BaseSearchListVO paramVo);
void importContract(List<EmployeeContractVO> excelVOList, List<ErrorMessage> errorMessageList); void importContract(List<EmployeeContractVO> excelVOList, List<ErrorMessage> errorMessageList);
/** /**
......
...@@ -25,6 +25,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo; ...@@ -25,6 +25,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.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -143,6 +144,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> { ...@@ -143,6 +144,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/ **/
R<String> restoreEmployee(String id, String projectIds); R<String> restoreEmployee(String id, String projectIds);
// 离职待办减少人员档案
BaseSearchListVO leaveToReduceEmp(BaseSearchListVO paramVo);
/** /**
* @Description: 批量减档 * @Description: 批量减档
* @Author: hgw * @Author: hgw
...@@ -300,4 +304,5 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> { ...@@ -300,4 +304,5 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
Set<String> getEmpOnlineMap(List<String> empIdCardList); Set<String> getEmpOnlineMap(List<String> empIdCardList);
BaseSearchVO getEmpAndContractStatus(BaseSearchVO paramVo); BaseSearchVO getEmpAndContractStatus(BaseSearchVO paramVo);
} }
...@@ -26,6 +26,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject; ...@@ -26,6 +26,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; 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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TInsuranceUnpurchasePersonCardVo; import com.yifu.cloud.plus.v1.yifu.salary.vo.TInsuranceUnpurchasePersonCardVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardSelectViewVo; import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardSelectViewVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardUnprojectVo; import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardUnprojectVo;
...@@ -112,6 +113,10 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> { ...@@ -112,6 +113,10 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
**/ **/
R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream); R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream);
// 离职待办减少项目档案
BaseSearchListVO leaveToReduceProject(BaseSearchListVO paramVo);
/** /**
* @param inputStream * @param inputStream
* @param isAdd * @param isAdd
......
...@@ -43,6 +43,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; ...@@ -43,6 +43,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
...@@ -1299,6 +1301,58 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr ...@@ -1299,6 +1301,58 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
} }
} }
@Override
public BaseSearchListVO leaveToReduceContract(BaseSearchListVO paramVo) {
List<String> idList = new ArrayList<>();
List<BaseSearchVO> listParam = paramVo.getListParam();
Map<String, BaseSearchVO> paramMap = new HashMap<>();
for (BaseSearchVO param : listParam) {
idList.add(param.getSearchKey());
paramMap.put(param.getSearchKey(), param);
}
// 合同ID,离职待办ID
List<EmployeeContractVO> excelVOList = baseMapper.getLeaveContractList(idList);
BaseSearchListVO baseSearchListVO = new BaseSearchListVO();
BaseSearchVO baseSearchVO;
if (excelVOList != null && !excelVOList.isEmpty()) {
Map<Integer, String> rowLeaveMap = new HashMap<>();
int i=0;
String leaveId;
String leaveDate;
String leaveReason;
for (EmployeeContractVO vo : excelVOList) {
vo.setRowIndex(i++);
baseSearchVO = paramMap.get(vo.getContractId());
leaveId = null;
if (baseSearchVO != null) {
leaveId = baseSearchVO.getResultIdOne();
leaveDate = baseSearchVO.getResultIdTwo();
leaveReason = baseSearchVO.getResultIdThree();
vo.setLeaveDate(leaveDate);
vo.setReduceReason(leaveReason);
}
if (Common.isNotNull(leaveId)) {
rowLeaveMap.put(i, leaveId);
vo.setLeaveId(leaveId);
}
}
List<ErrorMessage> errorMessageList = new ArrayList<>();
// 调用原导入方法
this.importContract(excelVOList, errorMessageList);
// 组装对应关系,key是原id,name是新ID
if (!errorMessageList.isEmpty()) {
for (ErrorMessage message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
message.setKey(rowLeaveMap.get(message.getLineNum()));
}
}
}
baseSearchListVO.setErrorMessageList(errorMessageList);
}
return baseSearchListVO;
}
/** /**
* @Author hgw * @Author hgw
* @Description 批量导入 * @Description 批量导入
...@@ -1484,7 +1538,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr ...@@ -1484,7 +1538,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
// 核心保存 // 核心保存
R<List<ErrorMessage>> info = this.setBaseInfo(insert, project); R<List<ErrorMessage>> info = this.setBaseInfo(insert, project);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), info.getMsg())); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), info.getMsg(), CommonConstants.ZERO_STRING, insert.getId()));
} }
} else { } else {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), errorInfo.toString())); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), errorInfo.toString()));
......
...@@ -44,10 +44,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.*; ...@@ -44,10 +44,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.*; import com.yifu.cloud.plus.v1.yifu.common.core.constant.*;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes; 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.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.ExcelColumnVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.ExcelSheetVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSalaryProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSalaryProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
...@@ -674,10 +671,57 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T ...@@ -674,10 +671,57 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
} }
} }
// 离职待办减少项目档案
@Override
public BaseSearchListVO leaveToReduceEmp(BaseSearchListVO paramVo) {
List<BaseSearchVO> listParam = paramVo.getListParam();
YifuUser newUser = paramVo.getNewUser();
// 合同ID,离职待办ID
BaseSearchListVO baseSearchListVO = new BaseSearchListVO();
if (listParam != null && !listParam.isEmpty()) {
List<EmployeeLeaveVO> cachedDataList = new ArrayList<>();
EmployeeLeaveVO vo;
Map<Integer, String> rowLeaveMap = new HashMap<>();
int i=0;
for (BaseSearchVO param : listParam) {
vo = new EmployeeLeaveVO();
vo.setRowIndex(i++);
vo.setEmpName(param.getEmpName());
vo.setEmpIdcard(param.getEmpIdCard());
vo.setLeaveReason(param.getResultIdThree());
cachedDataList.add(vo);
rowLeaveMap.put(i, param.getResultIdOne());
}
List<ErrorMessageVO> errorMessageList = new ArrayList<>();
List<com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage> errorMessageReturnList = new ArrayList<>();
// 调用原导入方法
this.batchMinusEmployeeCore(cachedDataList, errorMessageList, newUser);
// 组装对应关系,key是原id,name是新ID
if (!errorMessageList.isEmpty()) {
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage errorMessage;
for (ErrorMessageVO message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
if (message.getErrorSet() !=null && !message.getErrorSet().isEmpty()) {
errorMessage = new com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage(
message.getLineNum(), String.join(CommonConstants.COMMA_STRING, message.getErrorSet())
, null, null, rowLeaveMap.get(message.getLineNum()));
errorMessageReturnList.add(errorMessage);
}
}
}
}
baseSearchListVO.setErrorMessageList(errorMessageReturnList);
}
return baseSearchListVO;
}
@Override @Override
public R<List<ErrorMessageVO>> batchMinusEmployee(InputStream inputStream) { public R<List<ErrorMessageVO>> batchMinusEmployee(InputStream inputStream) {
List<ErrorMessageVO> errorMessageList = new ArrayList<>(); List<ErrorMessageVO> errorMessageList = new ArrayList<>();
ExcelUtil<EmployeeLeaveVO> util1 = new ExcelUtil<>(EmployeeLeaveVO.class); ExcelUtil<EmployeeLeaveVO> util1 = new ExcelUtil<>(EmployeeLeaveVO.class);
YifuUser user = SecurityUtils.getUser();
// 写法2: // 写法2:
// 匿名内部类 不用额外写一个DemoDataListener // 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭 // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
...@@ -726,7 +770,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T ...@@ -726,7 +770,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
private void saveData() { private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size()); log.info("{}条数据,开始存储数据库!", cachedDataList.size());
if (!cachedDataList.isEmpty()) { if (!cachedDataList.isEmpty()) {
batchMinusEmployeeCore(cachedDataList, errorMessageList); batchMinusEmployeeCore(cachedDataList, errorMessageList, user);
} }
log.info("存储数据库成功!"); log.info("存储数据库成功!");
} }
...@@ -751,11 +795,10 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T ...@@ -751,11 +795,10 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.archives.vo.ErrorMessageVO>> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.archives.vo.ErrorMessageVO>>
**/ **/
public R<List<ErrorMessageVO>> batchMinusEmployeeCore(List<EmployeeLeaveVO> excelVOList public R<List<ErrorMessageVO>> batchMinusEmployeeCore(List<EmployeeLeaveVO> excelVOList
, List<ErrorMessageVO> errorMessageList) { , List<ErrorMessageVO> errorMessageList, YifuUser user) {
if (excelVOList == null || excelVOList.isEmpty()) { if (excelVOList == null || excelVOList.isEmpty()) {
return R.failed(CommonConstants.DATA_CAN_NOT_EMPTY); return R.failed(CommonConstants.DATA_CAN_NOT_EMPTY);
} }
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) { if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN); return R.failed(CommonConstants.PLEASE_LOG_IN);
} }
...@@ -4709,7 +4752,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T ...@@ -4709,7 +4752,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
String contractId = contractServicer.getContractByEmpIdCardAndDeptNo(paramVo.getEmpIdCard(), paramVo.getDeptNo()); String contractId = contractServicer.getContractByEmpIdCardAndDeptNo(paramVo.getEmpIdCard(), paramVo.getDeptNo());
if (Common.isNotNull(contractId)) { if (Common.isNotNull(contractId)) {
returnVo.setResultIdThree(empId); returnVo.setResultIdThree(contractId);
returnVo.setResultIdThreeStatus("可用"); returnVo.setResultIdThreeStatus("可用");
} }
} }
......
...@@ -46,6 +46,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.EmpBusinessConstants; ...@@ -46,6 +46,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.EmpBusinessConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes; 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.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCspProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCspProperties;
...@@ -603,8 +605,50 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -603,8 +605,50 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR); return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
} }
// 离职待办减少项目档案
@Override
public BaseSearchListVO leaveToReduceProject(BaseSearchListVO paramVo) {
List<BaseSearchVO> listParam = paramVo.getListParam();
YifuUser newUser = paramVo.getNewUser();
// 合同ID,离职待办ID
BaseSearchListVO baseSearchListVO = new BaseSearchListVO();
if (listParam != null && !listParam.isEmpty()) {
List<EmployeeXProjectVO> cachedDataList = new ArrayList<>();
EmployeeXProjectVO vo;
Map<Integer, String> rowLeaveMap = new HashMap<>();
int i=0;
for (BaseSearchVO param : listParam) {
vo = new EmployeeXProjectVO();
vo.setRowIndex(i++);
vo.setEmpName(param.getEmpName());
vo.setEmpIdcard(param.getEmpIdCard());
vo.setDeptNo(param.getDeptNo());
vo.setLeaveReason(param.getResultIdThree());
vo.setLeaveId(param.getResultIdOne());
vo.setOldId(param.getSearchKey());
cachedDataList.add(vo);
rowLeaveMap.put(i, param.getResultIdOne());
}
List<ErrorMessage> errorMessageList = new ArrayList<>();
// 调用原导入方法
this.deleteListAdd(cachedDataList, errorMessageList, newUser);
// 组装对应关系,key是原id,name是新ID
if (!errorMessageList.isEmpty()) {
for (ErrorMessage message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
message.setKey(rowLeaveMap.get(message.getLineNum()));
}
}
}
baseSearchListVO.setErrorMessageList(errorMessageList);
}
return baseSearchListVO;
}
@Override @Override
public R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream) { public R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream) {
YifuUser user = SecurityUtils.getUser();
List<ErrorMessage> errorMessageList = new ArrayList<>(); List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<EmployeeXProjectVO> util1 = new ExcelUtil<>(EmployeeXProjectVO.class); ExcelUtil<EmployeeXProjectVO> util1 = new ExcelUtil<>(EmployeeXProjectVO.class);
// 写法2: // 写法2:
...@@ -650,7 +694,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -650,7 +694,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
*/ */
private void saveData() { private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size()); log.info("{}条数据,开始存储数据库!", cachedDataList.size());
deleteListAdd(cachedDataList, errorMessageList); deleteListAdd(cachedDataList, errorMessageList, user);
log.info("存储数据库成功!"); log.info("存储数据库成功!");
} }
}).sheet().doRead(); }).sheet().doRead();
...@@ -661,7 +705,8 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -661,7 +705,8 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.ok(errorMessageList); return R.ok(errorMessageList);
} }
public R<List<ErrorMessage>> deleteListAdd(List<EmployeeXProjectVO> excelVOList, List<ErrorMessage> errorMessageList) { public R<List<ErrorMessage>> deleteListAdd(List<EmployeeXProjectVO> excelVOList, List<ErrorMessage> errorMessageList
, YifuUser user) {
//项目档案更新list //项目档案更新list
List<TEmployeeProject> updProjectList = new ArrayList<>(); List<TEmployeeProject> updProjectList = new ArrayList<>();
...@@ -683,7 +728,6 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -683,7 +728,6 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
long contractCount; long contractCount;
StringBuilder errorTemp; StringBuilder errorTemp;
StringBuilder errorMessage; StringBuilder errorMessage;
YifuUser user = SecurityUtils.getUser();
// 执行数据插入操作 组装 PostDto // 执行数据插入操作 组装 PostDto
for (EmployeeXProjectVO excel : excelVOList) { for (EmployeeXProjectVO excel : excelVOList) {
//根据身份证和项目编码获取项目档案 //根据身份证和项目编码获取项目档案
......
...@@ -896,4 +896,39 @@ ...@@ -896,4 +896,39 @@
a.DELETE_FLAG = 0 a.DELETE_FLAG = 0
</where> </where>
</select> </select>
<!--tEmployeeContractPre合同派单查询-->
<select id="getLeaveContractList" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractVO">
SELECT
a.EMP_NAME empName,
a.EMP_IDCARD empIdcard,
a.dept_no deptNo,
'终止' situation,
a.contract_type contractName,
a.CONTRACT_SUB_NAME contractSubName,
null reason,
a.contract_Party contractParty,
if(a.CONTRACT_TERM = '' or a.CONTRACT_TERM is null,'2',a.CONTRACT_TERM) contractType,
a.CONTRACT_START as contractStart,
if(a.contract_type = '实习协议',a.CONTRACT_END,if(a.CONTRACT_TERM ='1' ,a.CONTRACT_END,null)) as contractEnd,
a.post,
if(a.working_hours = '' or a.working_hours is null,'4',a.working_hours) as workingHours,
null contractNo,
null fileCabinetNo,
null leaveDate,
null reduceReason,
null remark,
a.sign_type signType,
null changeContractAndEmployee,
if(a.TRY_PERIOD = '' or a.TRY_PERIOD is null,'无',a.TRY_PERIOD) as tryPeriod
,a.id contractId
FROM t_employee_contract_info a
<where> a.id in
<foreach item="idStr" index="index" collection="idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</where>
</select>
</mapper> </mapper>
...@@ -27,6 +27,7 @@ public class ErrorMessage<T> implements Serializable { ...@@ -27,6 +27,7 @@ public class ErrorMessage<T> implements Serializable {
* @Author: fxj * @Author: fxj
**/ **/
private String name; private String name;
private String key;
/** /**
* 错误信息 * 错误信息
*/ */
...@@ -67,6 +68,14 @@ public class ErrorMessage<T> implements Serializable { ...@@ -67,6 +68,14 @@ public class ErrorMessage<T> implements Serializable {
this.name= name; this.name= name;
} }
public ErrorMessage(Integer lineNum, String message, String color, String name, String key) {
this.lineNum = lineNum;
this.color = color;
this.message = message;
this.name= name;
this.key= key;
}
public ErrorMessage(Integer lineNum, Set<String> errors) { public ErrorMessage(Integer lineNum, Set<String> errors) {
this.lineNum = lineNum; this.lineNum = lineNum;
this.errors = errors; this.errors = errors;
......
...@@ -36,6 +36,10 @@ public class BaseSearchListVO implements Serializable { ...@@ -36,6 +36,10 @@ public class BaseSearchListVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private YifuUser newUser;
// 商险使用
private List<String> listStringParam = new ArrayList<>();
// 其他查询参数 // 其他查询参数
private List<BaseSearchVO> listParam = new ArrayList<>(); private List<BaseSearchVO> listParam = new ArrayList<>();
......
...@@ -36,11 +36,14 @@ public class BaseSearchVO implements Serializable { ...@@ -36,11 +36,14 @@ public class BaseSearchVO implements Serializable {
// 其他查询参数 // 其他查询参数
private String searchKey; private String searchKey;
private String empName;
// 身份证 // 身份证
private String empIdCard; private String empIdCard;
// 项目编码 // 项目编码
private String deptNo; private String deptNo;
// 操作人名称
private YifuUser newUser;
// 返回结果1(社保ID)(商险ID)(人员档案ID) // 返回结果1(社保ID)(商险ID)(人员档案ID)
private String resultIdOne; private String resultIdOne;
......
...@@ -12,6 +12,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; ...@@ -12,6 +12,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; 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.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
...@@ -682,4 +683,70 @@ public class ArchivesDaprUtil { ...@@ -682,4 +683,70 @@ public class ArchivesDaprUtil {
} }
return res; return res;
} }
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的合同状态失败
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getEmpAndContractStatusByClose(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/getEmpAndContractStatusByClose", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的合同状态失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceContract(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/leaveToReduceContract", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减合同失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceProject(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeproject/inner/leaveToReduceProject", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减项目档案失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceEmp(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/leaveToReduceEmp", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减人员档案失败!");
}
return res;
}
} }
...@@ -12,10 +12,13 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprInsurancesProperties; ...@@ -12,10 +12,13 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprInsurancesProperties;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo; import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo; import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo; import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchReduceVo;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import java.util.List;
/** /**
* @Author hgw * @Author hgw
* @Date 2022-11-17 10:16:59 * @Date 2022-11-17 10:16:59
...@@ -110,6 +113,22 @@ public class InsuranceDaprUtil { ...@@ -110,6 +113,22 @@ public class InsuranceDaprUtil {
return res; return res;
} }
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的已减完成的商险(返回值,则表示有未减完成的商险
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getInsurancesStatusByClose(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/insuranceDetail/inner/getInsurancesStatusByClose", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的已减完成的商险!");
}
return res;
}
/** /**
* @param paramVo 查询参数,主要是身份证与项目编码 * @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办确认后,更新为商险续签待办为已离职 * @Description: 离职待办确认后,更新为商险续签待办为已离职
...@@ -134,4 +153,20 @@ public class InsuranceDaprUtil { ...@@ -134,4 +153,20 @@ public class InsuranceDaprUtil {
,"/tinsuranceprerenewdetail/inner/updateInsurancePreRenewToIsLeaveList", paramVo, String.class, SecurityConstants.FROM_IN); ,"/tinsuranceprerenewdetail/inner/updateInsurancePreRenewToIsLeaveList", paramVo, String.class, SecurityConstants.FROM_IN);
} }
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减商险
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceInsurance(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/insuranceDetail/inner/leaveToReduceInsurance", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减商险失败!");
}
return res;
}
} }
...@@ -17,10 +17,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO; ...@@ -17,10 +17,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.salary.vo.*; import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import com.yifu.cloud.plus.v1.yifu.social.entity.TIncomeDetail; import com.yifu.cloud.plus.v1.yifu.social.entity.TIncomeDetail;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.SysBaseSetInfoVo; import com.yifu.cloud.plus.v1.yifu.social.vo.*;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchReduceVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TIncomeDetailReturnVo;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
...@@ -403,6 +400,22 @@ public class SocialDaprUtils { ...@@ -403,6 +400,22 @@ public class SocialDaprUtils {
return res; return res;
} }
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的社保公积金状态
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getSocialAndFundStatusByClose(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl(),daprProperties.getAppId()
,"/tsocialfundinfo/inner/getSocialAndFundStatusByClose", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的社保公积金状态失败!");
}
return res;
}
/** /**
* @param paramVo 查询参数,主要是身份证与项目编码 * @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减社保、公积金 * @Description: 离职待办调用的批量派减社保、公积金
...@@ -410,11 +423,11 @@ public class SocialDaprUtils { ...@@ -410,11 +423,11 @@ public class SocialDaprUtils {
* @Date: 2025-11-21 14:54:37 * @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/ **/
public R<BaseSearchListVO> leaveToReduceSocialAndFund(List<TDispatchReduceVo> paramVo) { public R<BaseSearchListVO> leaveToReduceSocialAndFund(TDispatchReduceListVo paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl(),daprProperties.getAppId() R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl(),daprProperties.getAppId()
,"/tsocialfundinfo/inner/leaveToReduceSocialAndFund", JSON.toJSONString(paramVo), BaseSearchListVO.class, SecurityConstants.FROM_IN); ,"/tsocialfundinfo/inner/leaveToReduceSocialAndFund", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){ if (Common.isEmpty(res)){
return R.failed("查询人员的社保公积金状态失败!"); return R.failed("离职待办调用的批量派减社保、公积金失败!");
} }
return res; return res;
} }
......
...@@ -35,6 +35,8 @@ public class RegistConstants { ...@@ -35,6 +35,8 @@ public class RegistConstants {
// //
public static final String BASE_REASON_TYPE = "1"; public static final String BASE_REASON_TYPE = "1";
public static final String BASE_REASON_TYPE_NAME = "个人辞职";
public static final String BASE_LINK_PORT = "人员离职"; public static final String BASE_LINK_PORT = "人员离职";
public static final String[] DO_TYPE_ARR = {"-","社保","公积金","商险","合同","项目档案","人员档案"};
} }
...@@ -30,6 +30,7 @@ import lombok.EqualsAndHashCode; ...@@ -30,6 +30,7 @@ import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
/** /**
* 自动化离职待办 * 自动化离职待办
...@@ -525,15 +526,22 @@ public class EmployeeRegistrationLeave extends BaseEntity { ...@@ -525,15 +526,22 @@ public class EmployeeRegistrationLeave extends BaseEntity {
private String closeRemarkSocial; private String closeRemarkSocial;
@Schema(description = "无需处理原因(公积金)") @Schema(description = "无需处理原因(公积金)")
private String closeRemarkFund; private String closeRemarkFund;
@Schema(description = "无需处理原因(商险)")
private String closeRemarkInsurance;
@Schema(description = "无需处理原因(合同)") @Schema(description = "无需处理原因(合同)")
private String closeRemarkContract; private String closeRemarkContract;
@Schema(description = "无需处理原因(档案)")
private String closeRemarkEmp;
@Schema(description = "无需处理原因(项目档案)") @Schema(description = "无需处理原因(项目档案)")
private String closeRemarkEmpProject; private String closeRemarkEmpProject;
// 目前只有这些无需处理:
@Schema(description = "无需处理原因(商险)")
private String closeRemarkInsurance;
@Schema(description = "无需处理原因(档案)")
private String closeRemarkEmp;
@Schema(description = "减少原因(名称)")
private String leaveReasonName;
@Schema(description = "减少原因(ID)")
private String leaveReasonId;
@TableField(exist = false) @TableField(exist = false)
@ExcelProperty(value = "项目编码") @ExcelProperty(value = "项目编码")
private String deptNo; private String deptNo;
...@@ -549,4 +557,12 @@ public class EmployeeRegistrationLeave extends BaseEntity { ...@@ -549,4 +557,12 @@ public class EmployeeRegistrationLeave extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
@Schema(description = "身份证号") @Schema(description = "身份证号")
private String empIdcard; private String empIdcard;
@TableField(exist = false)
@Schema(description = "离职日期")
private String joinLeaveDate;
@TableField(exist = false)
@Schema(description = "最新的客服名称")
private String customerUsernameNew;
} }
/*
* 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.csp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.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;
/**
* 离职待办商险明细表
*
* @author hgw
* @date 2025-11-23 10:19:13
*/
@Data
@TableName("employee_registration_leave_insurance")
@Schema(description = "离职待办商险明细表")
public class EmployeeRegistrationLeaveInsurance {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 离职待办主表ID
*/
@ExcelAttribute(name = "离职待办主表ID", isNotEmpty = true, errorInfo = "离职待办主表ID不能为空", maxLength = 32)
@NotBlank(message = "离职待办主表ID不能为空")
@Length(max = 32, message = "离职待办主表ID不能超过32个字符")
@ExcelProperty("离职待办主表ID")
@Schema(description = "离职待办主表ID")
private String leaveId;
/**
* 商险ID
*/
@ExcelAttribute(name = "商险ID", maxLength = 32)
@Length(max = 32, message = "商险ID不能超过32个字符")
@ExcelProperty("商险ID")
@Schema(description = "商险ID")
private String insuranceId;
/**
* 商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回
*/
@ExcelAttribute(name = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回", maxLength = 2)
@Length(max = 2, message = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回不能超过2个字符")
@ExcelProperty("商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回")
@Schema(description = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回")
private String doStatusInsurance;
}
/*
* 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.csp.entity;
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.*;
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.time.LocalDateTime;
/**
* 作业自动化-离职-操作日志
*
* @author hgw
* @date 2025-11-23 10:55:29
*/
@Data
@TableName("employee_registration_leave_log")
@Schema(description = "作业自动化-离职-操作日志")
public class EmployeeRegistrationLeaveLog {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 离职待办主表ID
*/
@ExcelAttribute(name = "离职待办主表ID", isNotEmpty = true, errorInfo = "离职待办主表ID不能为空", maxLength = 32)
@NotBlank(message = "离职待办主表ID不能为空")
@Length(max = 32, message = "离职待办主表ID不能超过32个字符")
@ExcelProperty("离职待办主表ID")
@Schema(description = "离职待办主表ID")
private String leaveId;
/**
* 操作人
*/
@ExcelAttribute(name = "操作人", maxLength = 36)
@Length(max = 36, message = "操作人不能超过36个字符")
@ExcelProperty("操作人")
@Schema(description = "操作人")
private String createName;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
@ColumnWidth(18)
private LocalDateTime createTime;
/**
* 操作事项
*/
@ExcelAttribute(name = "操作事项", maxLength = 200)
@Length(max = 200, message = "操作事项不能超过200个字符")
@ExcelProperty("操作事项")
@Schema(description = "操作事项")
private String content;
}
package com.yifu.cloud.plus.v1.csp.vo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
@Schema(description = "离职待办派单错误信息VO")
public class ErrorInfoVo implements Serializable {
private static final long serialVersionUID = 628032758008497542L;
// 社保
List<ErrorMessage> socialParamList = new ArrayList<>();
// 公积金
List<ErrorMessage> fundParamList = new ArrayList<>();
// 保险
List<ErrorMessage> insuranceParamList = new ArrayList<>();
// 合同
List<ErrorMessage> contractParamList = new ArrayList<>();
// 项目
List<ErrorMessage> projectParamList = new ArrayList<>();
// 员工
List<ErrorMessage> empParamList = new ArrayList<>();
}
...@@ -24,8 +24,8 @@ import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationLeaveService; ...@@ -24,8 +24,8 @@ import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationLeaveService;
import com.yifu.cloud.plus.v1.csp.vo.BatchSureLeaveVo; import com.yifu.cloud.plus.v1.csp.vo.BatchSureLeaveVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveSearchVo; import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveSearchVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveTableVo; import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveTableVo;
import com.yifu.cloud.plus.v1.csp.vo.ErrorInfoVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
...@@ -162,36 +162,15 @@ public class EmployeeRegistrationLeaveController { ...@@ -162,36 +162,15 @@ public class EmployeeRegistrationLeaveController {
/** /**
* 单个手动关闭 * 单个手动关闭
*
* String doType 需处理项:1社保2公积金3商险4合同5项目档案6人员档案")
*/ */
@Operation(summary = "单个手动关闭-离职待办", description = "单个手动关闭-离职待办") @Operation(summary = "单个手动关闭-离职待办", description = "单个手动关闭-离职待办")
@SysLog("单个手动关闭-离职待办") @SysLog("单个手动关闭-离职待办")
@GetMapping("/doClose") @GetMapping("/doClose")
public R<String> doClose(@RequestParam String id, @RequestParam String remark) { public R<String> doClose(@RequestParam String id, @RequestParam String remark
EmployeeRegistrationLeave leave = employeeRegistrationLeaveService.getById( id); , @RequestParam(required = false) String doTypeWu, @RequestParam(required = false) String doTypeYi) {
if (leave != null) { return employeeRegistrationLeaveService.doClose(id, remark, doTypeWu, doTypeYi);
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusSocial())) {
leave.setCloseRemarkSocial( remark);
}
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusFund())) {
leave.setCloseRemarkFund( remark);
}
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusInsurance())) {
leave.setCloseRemarkInsurance( remark);
}
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusContract())) {
leave.setCloseRemarkContract( remark);
}
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusEmp())) {
leave.setCloseRemarkEmp( remark);
}
if (!CommonConstants.ONE_STRING.equals(leave.getDoStatusProject())) {
leave.setCloseRemarkEmpProject( remark);
}
leave.setDoStatus(CommonConstants.SIX_STRING);
leave.setLeaveStatus(CommonConstants.THREE_STRING);
employeeRegistrationLeaveService.updateById( leave);
}
return R.ok();
} }
/** /**
...@@ -242,7 +221,7 @@ public class EmployeeRegistrationLeaveController { ...@@ -242,7 +221,7 @@ public class EmployeeRegistrationLeaveController {
**/ **/
@Operation(description = "离职待办单个/批量派单") @Operation(description = "离职待办单个/批量派单")
@PostMapping("/batchDoLeave") @PostMapping("/batchDoLeave")
public R<List<ErrorMessage>> batchDoLeave(@RequestBody List<String> idList, @RequestParam String isExit public R<ErrorInfoVo> batchDoLeave(@RequestBody List<String> idList, @RequestParam String isExit
, @RequestParam(required = false) String doType) { , @RequestParam(required = false) String doType) {
return employeeRegistrationLeaveService.batchDoLeave(idList, isExit, doType); return employeeRegistrationLeaveService.batchDoLeave(idList, isExit, doType);
} }
......
/*
* 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.csp.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveLog;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationLeaveLogService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 作业自动化-离职-操作日志
*
* @author hgw
* @date 2025-11-23 10:55:29
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/employeeregistrationleavelog")
@Tag(name = "作业自动化-离职-操作日志管理")
public class EmployeeRegistrationLeaveLogController {
private final EmployeeRegistrationLeaveLogService employeeRegistrationLeaveLogService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<EmployeeRegistrationLeaveLog>> getEmployeeRegistrationLeaveLogPage(Page<EmployeeRegistrationLeaveLog> page, EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog) {
return new R<>(employeeRegistrationLeaveLogService.getEmployeeRegistrationLeaveLogPage(page, employeeRegistrationLeaveLog));
}
/**
* 不分页查询
*
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<EmployeeRegistrationLeaveLog>> noPage(@RequestBody EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog) {
return R.ok(employeeRegistrationLeaveLogService.getEmployeeRegistrationLeaveLogList(employeeRegistrationLeaveLog));
}
/**
* 通过id查询作业自动化-离职-操作日志
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询")
@GetMapping("/{id}")
public R<EmployeeRegistrationLeaveLog> getById(@PathVariable("id") String id) {
return R.ok(employeeRegistrationLeaveLogService.getById(id));
}
}
/*
* 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.csp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveInsurance;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 离职待办商险明细表
*
* @author hgw
* @date 2025-11-23 10:19:13
*/
@Mapper
public interface EmployeeRegistrationLeaveInsuranceMapper extends BaseMapper<EmployeeRegistrationLeaveInsurance> {
// 暂未使用
List<EmployeeRegistrationLeaveInsurance> getLeaveInsuranceList(@Param("leaveId") String leaveId
, @Param("insuranceId") String insuranceId);
void deleteLeaveInsurance(@Param("leaveId") String leaveId);
/* 查询待派单(2待派单3发起失败9减员退回 的再去办)的数据,用来发起派单 */
List<String> getLeaveInsuranceListByIdAndStatus(@Param("idList") List<String> idList);
// 更新商险明细状态,成功或失败
void updateLeaveInsuranceListByIdAndStatus(@Param("status") String status, @Param("idList") List<String> idList);
}
/*
* 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.csp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 作业自动化-离职-操作日志
*
* @author hgw
* @date 2025-11-23 10:55:29
*/
@Mapper
public interface EmployeeRegistrationLeaveLogMapper extends BaseMapper<EmployeeRegistrationLeaveLog> {
/**
* 作业自动化-离职-操作日志简单分页查询
*
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
IPage<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogPage(Page<EmployeeRegistrationLeaveLog> page
, @Param("employeeRegistrationLeaveLog") EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog);
List<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogList(@Param("employeeRegistrationLeaveLog") EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog);
}
/*
* 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.csp.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveLog;
import java.util.List;
/**
* 作业自动化-离职-操作日志
*
* @author hgw
* @date 2025-11-23 10:55:29
*/
public interface EmployeeRegistrationLeaveLogService extends IService<EmployeeRegistrationLeaveLog> {
/**
* 作业自动化-离职-操作日志简单分页查询
*
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
IPage<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogPage(Page<EmployeeRegistrationLeaveLog> page, EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog);
List<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogList(EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog);
}
...@@ -25,7 +25,7 @@ import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeave; ...@@ -25,7 +25,7 @@ import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeave;
import com.yifu.cloud.plus.v1.csp.vo.BatchSureLeaveVo; import com.yifu.cloud.plus.v1.csp.vo.BatchSureLeaveVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveSearchVo; import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveSearchVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveTableVo; import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationLeaveTableVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; import com.yifu.cloud.plus.v1.csp.vo.ErrorInfoVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -61,6 +61,9 @@ public interface EmployeeRegistrationLeaveService extends IService<EmployeeRegis ...@@ -61,6 +61,9 @@ public interface EmployeeRegistrationLeaveService extends IService<EmployeeRegis
EmployeeRegistrationLeave initLeaveInfo(String id); EmployeeRegistrationLeave initLeaveInfo(String id);
// 单个关闭
R<String> doClose(String id, String remark, String doTypeWu, String doTypeYi);
// 单个确认(含编辑功能) // 单个确认(含编辑功能)
R<String> doSure(EmployeeRegistrationLeave leave); R<String> doSure(EmployeeRegistrationLeave leave);
...@@ -76,6 +79,6 @@ public interface EmployeeRegistrationLeaveService extends IService<EmployeeRegis ...@@ -76,6 +79,6 @@ public interface EmployeeRegistrationLeaveService extends IService<EmployeeRegis
// 批量派单 // 批量派单
// @param isExit: 1仅发起日期为今日及之前的事项 0立即发起(全量) // @param isExit: 1仅发起日期为今日及之前的事项 0立即发起(全量)
// @param doType: 需处理项:1社保2公积金3商险4合同5项目档案6人员档案 // @param doType: 需处理项:1社保2公积金3商险4合同5项目档案6人员档案
R<List<ErrorMessage>> batchDoLeave(List<String> idList, String isExit, String doType); R<ErrorInfoVo> batchDoLeave(List<String> idList, String isExit, String doType);
} }
/*
* 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.csp.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveLog;
import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationLeaveLogMapper;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationLeaveLogService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 作业自动化-离职-操作日志
*
* @author hgw
* @date 2025-11-23 10:55:29
*/
@Log4j2
@Service
public class EmployeeRegistrationLeaveLogServiceImpl extends ServiceImpl<EmployeeRegistrationLeaveLogMapper, EmployeeRegistrationLeaveLog> implements EmployeeRegistrationLeaveLogService {
/**
* 作业自动化-离职-操作日志简单分页查询
*
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
@Override
public IPage<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogPage(Page<EmployeeRegistrationLeaveLog> page, EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog) {
return baseMapper.getEmployeeRegistrationLeaveLogPage(page, employeeRegistrationLeaveLog);
}
/**
* 作业自动化-离职-操作日志简单分页查询
*
* @param employeeRegistrationLeaveLog 作业自动化-离职-操作日志
* @return
*/
@Override
public List<EmployeeRegistrationLeaveLog> getEmployeeRegistrationLeaveLogList(EmployeeRegistrationLeaveLog employeeRegistrationLeaveLog) {
return baseMapper.getEmployeeRegistrationLeaveLogList(employeeRegistrationLeaveLog);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ 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)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationLeaveInsuranceMapper">
<resultMap id="employeeRegistrationLeaveInsuranceMap" type="com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveInsurance">
<id property="id" column="id"/>
<result property="leaveId" column="leave_id"/>
<result property="insuranceId" column="insurance_id"/>
<result property="doStatusInsurance" column="do_status_insurance"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.leave_id,
a.insurance_id,
a.do_status_insurance
</sql>
<!--list-->
<select id="getLeaveInsuranceList" resultMap="employeeRegistrationLeaveInsuranceMap">
SELECT
<include refid="Base_Column_List"/>
FROM employee_registration_leave_insurance a
<where>
1=1
<if test="leaveId != null and leaveId.trim() != ''">
AND a.leave_id = #{leaveId}
</if>
<if test="insuranceId != null and insuranceId.trim() != ''">
AND a.insurance_id = #{insuranceId}
</if>
</where>
</select>
<select id="getLeaveInsuranceListByIdAndStatus" resultType="java.lang.String">
SELECT
a.insurance_id
FROM employee_registration_leave_insurance a
<where>
do_status_insurance in ('2','3','9')
<if test="idList != null">
AND a.insurance_id in
<foreach item="idStr" index="index" collection="idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</where>
</select>
<update id="updateLeaveInsuranceListByIdAndStatus" >
update employee_registration_leave_insurance
<set>
do_status_insurance = #{status}
</set>
where do_status_insurance in ('2','3','9') and insurance_id in
<foreach item="idStr" index="index" collection="idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</update>
<!-- 避免数据重复,保存前,删除历史数据 -->
<delete id="deleteLeaveInsurance" >
delete employee_registration_leave_insurance where leave_id = #{leaveId}
</delete>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ 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)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationLeaveLogMapper">
<resultMap id="employeeRegistrationLeaveLogMap" type="com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeaveLog">
<id property="id" column="id"/>
<result property="leaveId" column="leave_id"/>
<result property="createName" column="create_name"/>
<result property="createTime" column="create_time"/>
<result property="content" column="content"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.leave_id,
a.create_name,
a.create_time,
a.content
</sql>
<sql id="employeeRegistrationLeaveLog_where">
<if test="employeeRegistrationLeaveLog != null">
<if test="employeeRegistrationLeaveLog.id != null and employeeRegistrationLeaveLog.id.trim() != ''">
AND a.id = #{employeeRegistrationLeaveLog.id}
</if>
<if test="employeeRegistrationLeaveLog.leaveId != null and employeeRegistrationLeaveLog.leaveId.trim() != ''">
AND a.leave_id = #{employeeRegistrationLeaveLog.leaveId}
</if>
<if test="employeeRegistrationLeaveLog.createName != null and employeeRegistrationLeaveLog.createName.trim() != ''">
AND a.create_name = #{employeeRegistrationLeaveLog.createName}
</if>
<if test="employeeRegistrationLeaveLog.createTime != null">
AND a.create_time = #{employeeRegistrationLeaveLog.createTime}
</if>
<if test="employeeRegistrationLeaveLog.content != null and employeeRegistrationLeaveLog.content.trim() != ''">
AND a.content = #{employeeRegistrationLeaveLog.content}
</if>
</if>
</sql>
<!--employeeRegistrationLeaveLog简单分页查询-->
<select id="getEmployeeRegistrationLeaveLogPage" resultMap="employeeRegistrationLeaveLogMap">
SELECT
<include refid="Base_Column_List"/>
FROM employee_registration_leave_log a
<where>
1=1
<include refid="employeeRegistrationLeaveLog_where"/>
</where>
order by a.create_time desc
</select>
<!--employeeRegistrationLeaveLog简单分页查询-->
<select id="getEmployeeRegistrationLeaveLogList" resultMap="employeeRegistrationLeaveLogMap">
SELECT
<include refid="Base_Column_List"/>
FROM employee_registration_leave_log a
<where>
1=1
<include refid="employeeRegistrationLeaveLog_where"/>
</where>
order by a.create_time desc
</select>
</mapper>
...@@ -154,6 +154,10 @@ ...@@ -154,6 +154,10 @@
<result property="empIdcard" column="emp_idcard"/> <result property="empIdcard" column="emp_idcard"/>
<result property="deptName" column="dept_name"/> <result property="deptName" column="dept_name"/>
<result property="deptNo" column="dept_no"/> <result property="deptNo" column="dept_no"/>
<result property="joinLeaveDate" column="join_leave_date"/>
<result property="leaveReasonName" column="leave_reason_name"/>
<result property="leaveReasonId" column="leave_reason_id"/>
<result property="customerUsernameNew" column="customer_username_new"/>
</resultMap> </resultMap>
<!-- 全量字段 --> <!-- 全量字段 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -230,7 +234,10 @@ ...@@ -230,7 +234,10 @@
a.close_remark_insurance, a.close_remark_insurance,
a.close_remark_contract, a.close_remark_contract,
a.close_remark_emp, a.close_remark_emp,
a.close_remark_emp_project a.close_remark_emp_project,
a.leave_reason_name,
a.leave_reason_id,
a.customer_username_new
</sql> </sql>
...@@ -588,6 +595,8 @@ when '4' then '待减员' when '5' then '待办理' when '6' then '减员中' wh ...@@ -588,6 +595,8 @@ when '4' then '待减员' when '5' then '待办理' when '6' then '减员中' wh
b.emp_idcard, b.emp_idcard,
b.dept_name, b.dept_name,
b.dept_no, b.dept_no,
DATE_FORMAT(b.join_leave_date,'%Y-%m-%d') join_leave_date,
b.customer_username_new,
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
FROM employee_registration_leave a FROM employee_registration_leave a
left join employee_registration b on a.id=b.id left join employee_registration b on a.id=b.id
......
...@@ -8,6 +8,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants; ...@@ -8,6 +8,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock; import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; 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.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
...@@ -406,6 +407,20 @@ public class TInsuranceDetailController { ...@@ -406,6 +407,20 @@ public class TInsuranceDetailController {
public R<String> updateInsuranceInsuredById(@RequestBody InsuranceInsuredDetailParam param) { public R<String> updateInsuranceInsuredById(@RequestBody InsuranceInsuredDetailParam param) {
return tInsuranceDetailService.updateInsuranceInsuredById(param); return tInsuranceDetailService.updateInsuranceInsuredById(param);
} }
/**
* @param paramVo
* @Description: 离职导致的减商险
* @Author: hgw
* @Date: 2025/11/21 20:44
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
**/
@Inner
@PostMapping("/inner/leaveToReduceInsurance")
public BaseSearchListVO leaveToReduceInsurance(@RequestBody BaseSearchListVO paramVo){
return tInsuranceDetailService.leaveToReduceInsurance(paramVo);
}
/***********************减员办理********************************/ /***********************减员办理********************************/
/** /**
* 导入减员校验 * 导入减员校验
...@@ -417,7 +432,7 @@ public class TInsuranceDetailController { ...@@ -417,7 +432,7 @@ public class TInsuranceDetailController {
@PostMapping("/saveInsuranceRefund") @PostMapping("/saveInsuranceRefund")
@PreAuthorize("@pms.hasPermission('insurance_custserve_insured_reduce')") @PreAuthorize("@pms.hasPermission('insurance_custserve_insured_reduce')")
public R saveInsuranceRefund(@RequestBody @Valid @Size(min = 1,message = "导入减员列表不能为空") List<InsuranceRefundCheck> insuranceRefundCheckList){ public R saveInsuranceRefund(@RequestBody @Valid @Size(min = 1,message = "导入减员列表不能为空") List<InsuranceRefundCheck> insuranceRefundCheckList){
return tInsuranceDetailService.saveInsuranceRefund(insuranceRefundCheckList,null); return tInsuranceDetailService.saveInsuranceRefund(insuranceRefundCheckList,null, SecurityUtils.getUser());
} }
/** /**
...@@ -889,16 +904,30 @@ public class TInsuranceDetailController { ...@@ -889,16 +904,30 @@ public class TInsuranceDetailController {
/** /**
* @param paramVo * @param paramVo
* @Description: 查询是否存在派增部分失败与成功的的社保 * @Description: 查询人员的商险状态
* @Author: hgw * @Author: hgw
* @Date: 2025/11/20 17:15 * @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO * @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/ **/
@Operation(summary = "查询是否存在派增部分失败与成功的的社保、公积金", description = "查询是否存在派增部分失败与成功的的社保") @Operation(summary = "查询人员的商险状态", description = "查询人员的商险状态")
@Inner @Inner
@PostMapping("/inner/getInsurancesStatus") @PostMapping("/inner/getInsurancesStatus")
public BaseSearchVO getInsurancesStatus(@RequestBody BaseSearchVO paramVo) { public BaseSearchVO getInsurancesStatus(@RequestBody BaseSearchVO paramVo) {
return tInsuranceDetailService.getInsurancesStatus(paramVo); return tInsuranceDetailService.getInsurancesStatus(paramVo);
} }
/**
* @param paramVo
* @Description: 查询人员的已减完成的商险(返回值,则表示有未减完成的商险
* @Author: hgw
* @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/
@Operation(summary = "查询人员的已减完成的商险", description = "查询人员的已减完成的商险")
@Inner
@PostMapping("/inner/getInsurancesStatusByClose")
public BaseSearchVO getInsurancesStatusByClose(@RequestBody BaseSearchVO paramVo) {
return tInsuranceDetailService.getInsurancesStatusByClose(paramVo);
}
} }
...@@ -341,5 +341,6 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> { ...@@ -341,5 +341,6 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
List<TInsurancePreDetail> getOnProcessInsuredList(@Param("empIdCard") String empIdCard); List<TInsurancePreDetail> getOnProcessInsuredList(@Param("empIdCard") String empIdCard);
List<String> getInsuranceDetailList(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo); List<String> getInsuranceDetailList(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
List<String> getInsuranceDetailListByClose(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
} }
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; 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.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail; import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail;
...@@ -222,6 +223,8 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> { ...@@ -222,6 +223,8 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*/ */
R<String> updateInsuranceInsuredById(InsuranceInsuredDetailParam param); R<String> updateInsuranceInsuredById(InsuranceInsuredDetailParam param);
BaseSearchListVO leaveToReduceInsurance(BaseSearchListVO paramVo);
/***********************减员办理********************************/ /***********************减员办理********************************/
/** /**
...@@ -231,7 +234,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> { ...@@ -231,7 +234,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
* @param insuranceRefundCheckList 减员表 * @param insuranceRefundCheckList 减员表
* @return {@link R} * @return {@link R}
*/ */
R saveInsuranceRefund(List<InsuranceRefundCheck> insuranceRefundCheckList,String orderNo); R saveInsuranceRefund(List<InsuranceRefundCheck> insuranceRefundCheckList,String orderNo, YifuUser user);
/** /**
* 已投保列表分页查询 * 已投保列表分页查询
...@@ -582,6 +585,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> { ...@@ -582,6 +585,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
List<TInsurancePreDetail> getOnProcessInsurancesInfo(String empIdCard); List<TInsurancePreDetail> getOnProcessInsurancesInfo(String empIdCard);
BaseSearchVO getInsurancesStatus(BaseSearchVO paramVo); BaseSearchVO getInsurancesStatus(BaseSearchVO paramVo);
BaseSearchVO getInsurancesStatusByClose(BaseSearchVO paramVo);
} }
...@@ -27,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants; ...@@ -27,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException; import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.equator.HrEquator; import com.yifu.cloud.plus.v1.yifu.common.core.util.equator.HrEquator;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
...@@ -4780,6 +4781,45 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -4780,6 +4781,45 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return list; return list;
} }
// 离职导致的减员
@Override
public BaseSearchListVO leaveToReduceInsurance(BaseSearchListVO paramVo) {
List<String> insuranceList = paramVo.getListStringParam();
YifuUser newUser = paramVo.getNewUser();
List<InsuranceExportListVO> oldList = baseMapper.getInsuranceExportListBySelect(insuranceList);
List<InsuranceRefundCheck> insuranceRefundCheckList = new ArrayList<>();
InsuranceRefundCheck refund;
if (oldList != null && !oldList.isEmpty()) {
for (InsuranceExportListVO vo : oldList) {
refund = new InsuranceRefundCheck();
refund.setEmpName(vo.getEmpName());
// 员工姓名 员工身份证号码 保险公司名称 险种名称 购买标准(元) 保单开始日期 保单结束日期
refund.setEmpIdcardNo(vo.getEmpIdcardNo());
refund.setInsuranceCompanyName(vo.getInsuranceCompanyName());
refund.setInsuranceTypeName(vo.getInsuranceTypeName());
refund.setBuyStandard(vo.getBuyStandard());
if (Common.isNotNull(vo.getPolicyStart())) {
refund.setPolicyStart(vo.getPolicyStart().toString());
}
if (Common.isNotNull(vo.getPolicyEnd())) {
refund.setPolicyEnd(vo.getPolicyEnd().toString());
}
insuranceRefundCheckList.add(refund);
}
}
R<List<InsuranceRefundCheck>> a = saveInsuranceRefund(insuranceRefundCheckList, null, newUser);
BaseSearchListVO vo = new BaseSearchListVO();
if (a != null && a.getData() != null) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ErrorMessage errorMessage;
for (InsuranceRefundCheck check : a.getData()) {
errorMessage = new ErrorMessage(CommonConstants.ONE_INT, check.getErrorMessage(), CommonConstants.GREEN, check.getId());
errorMessageList.add(errorMessage);
}
vo.setErrorMessageList(errorMessageList);
}
return vo;
}
/***********************减员办理********************************/ /***********************减员办理********************************/
/** /**
...@@ -4790,8 +4830,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -4790,8 +4830,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* @return {@link R} * @return {@link R}
*/ */
@Override @Override
public R saveInsuranceRefund(List<InsuranceRefundCheck> insuranceRefundCheckList,String orderNo) { public R saveInsuranceRefund(List<InsuranceRefundCheck> insuranceRefundCheckList,String orderNo, YifuUser user) {
YifuUser user = SecurityUtils.getUser(); if (user == null) {
user = SecurityUtils.getUser();
}
if(!Common.isNotEmpty(insuranceRefundCheckList)){ if(!Common.isNotEmpty(insuranceRefundCheckList)){
return R.failed("当前导入的减员信息为空"); return R.failed("当前导入的减员信息为空");
} }
...@@ -7690,7 +7732,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -7690,7 +7732,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if (StringUtils.isBlank(orderNo)) { if (StringUtils.isBlank(orderNo)) {
return R.failed(InsurancesConstants.ORDER_NO_IS_EMPTY); return R.failed(InsurancesConstants.ORDER_NO_IS_EMPTY);
} }
return saveInsuranceRefund(paramList.getData(),paramList.getOrderNo()); return saveInsuranceRefund(paramList.getData(),paramList.getOrderNo(), SecurityUtils.getUser());
} }
/** /**
...@@ -9043,4 +9085,16 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -9043,4 +9085,16 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
} }
return returnVo; return returnVo;
} }
@Override
public BaseSearchVO getInsurancesStatusByClose(BaseSearchVO paramVo) {
BaseSearchVO returnVo = new BaseSearchVO();
if (Common.isNotNull(paramVo) && Common.isNotNull(paramVo.getEmpIdCard()) && Common.isNotNull(paramVo.getDeptNo())) {
// 如果存在不等于3减员退回的,表示未减完成
List<String> idListReduce = baseMapper.getInsuranceDetailListByClose(paramVo.getEmpIdCard(), paramVo.getDeptNo());
if (idListReduce != null && !idListReduce.isEmpty()) {
returnVo.setResultIdOne(CommonConstants.ONE_STRING);
}
}
return returnVo;
}
} }
...@@ -2220,4 +2220,15 @@ ...@@ -2220,4 +2220,15 @@
and a.BUY_HANDLE_STATUS = 3 and a.IS_EFFECT = 0 and a.IS_OVERDUE = 0 and a.BUY_HANDLE_STATUS = 3 and a.IS_EFFECT = 0 and a.IS_OVERDUE = 0
</select> </select>
<select id="getInsuranceDetailListByClose" resultType="java.lang.String">
select
a.id
from
t_insurance_detail a
where a.DELETE_FLAG = 0 and a.REDUCE_HANDLE_STATUS != 4
and a.EMP_IDCARD_NO = #{empIdCard}
and a.DEPT_NO = #{deptNo}
</select>
</mapper> </mapper>
/*
* 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.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class TDispatchReduceListVo implements Serializable {
private YifuUser newUser;
List<TDispatchReduceVo> listParam;
}
...@@ -18,6 +18,7 @@ package com.yifu.cloud.plus.v1.yifu.social.vo; ...@@ -18,6 +18,7 @@ package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle; import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex; import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
...@@ -145,4 +146,8 @@ public class TDispatchReduceVo extends RowIndex implements Serializable { ...@@ -145,4 +146,8 @@ public class TDispatchReduceVo extends RowIndex implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学历") @ExcelProperty(value ="学历")
private String educationName; private String educationName;
// 离职待办ID
@TableField(exist = false)
private String leaveId;
} }
...@@ -508,8 +508,8 @@ public class TDispatchInfoController { ...@@ -508,8 +508,8 @@ public class TDispatchInfoController {
@SysLog("离职调用的派减社保或公积金") @SysLog("离职调用的派减社保或公积金")
@PostMapping("/inner/leaveToReduceSocialAndFund") @PostMapping("/inner/leaveToReduceSocialAndFund")
@Inner @Inner
public R<BaseSearchListVO> leaveToReduceSocialAndFund(@RequestBody List<TDispatchReduceVo> excelVOList) { public R<BaseSearchListVO> leaveToReduceSocialAndFund(@RequestBody TDispatchReduceListVo paramVo) {
return new R<>(tDispatchInfoService.leaveToReduceSocialAndFund(excelVOList)); return new R<>(tDispatchInfoService.leaveToReduceSocialAndFund(paramVo));
} }
/** /**
......
...@@ -282,11 +282,25 @@ public class TSocialFundInfoController { ...@@ -282,11 +282,25 @@ public class TSocialFundInfoController {
* @Date: 2025/11/20 17:15 * @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO * @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/ **/
@Operation(summary = "查询是否存在派增部分失败与成功的的社保、公积金", description = "查询是否存在派增部分失败与成功的的社保") @Operation(summary = "查询是否存在派增部分失败与成功的的社保公积金", description = "查询是否存在派增部分失败与成功的的社保公积金")
@Inner @Inner
@PostMapping("/inner/getSocialAndFundStatus") @PostMapping("/inner/getSocialAndFundStatus")
public BaseSearchVO getSocialAndFundStatus(@RequestBody BaseSearchVO paramVo) { public BaseSearchVO getSocialAndFundStatus(@RequestBody BaseSearchVO paramVo) {
return tSocialFundInfoService.getSocialAndFundStatus(paramVo); return tSocialFundInfoService.getSocialAndFundStatus(paramVo);
} }
/**
* @param paramVo
* @Description: 查询是否存在派增部分失败与成功的的社保
* @Author: hgw
* @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/
@Operation(summary = "查询派减已完结的社保公积金", description = "查询派减已完结的社保公积金")
@Inner
@PostMapping("/inner/getSocialAndFundStatusByClose")
public BaseSearchVO getSocialAndFundStatusByClose(@RequestBody BaseSearchVO paramVo) {
return tSocialFundInfoService.getSocialAndFundStatusByClose(paramVo);
}
} }
...@@ -110,5 +110,9 @@ public interface TSocialFundInfoMapper extends BaseMapper<TSocialFundInfo> { ...@@ -110,5 +110,9 @@ public interface TSocialFundInfoMapper extends BaseMapper<TSocialFundInfo> {
TSocialFundInfo getSocialStatus(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo); TSocialFundInfo getSocialStatus(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
// 离职待办专用,查询公积金ID与状态(主要派增部分失败与成功的) // 离职待办专用,查询公积金ID与状态(主要派增部分失败与成功的)
TSocialFundInfo getFundStatus(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo); TSocialFundInfo getFundStatus(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
// 离职待办专用,查询社保ID与状态(主要派增部分失败与成功的)
String getSocialStatusByClose(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
// 离职待办专用,查询公积金ID与状态(主要派增部分失败与成功的)
String getFundStatusByClose(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
} }
...@@ -74,7 +74,7 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> { ...@@ -74,7 +74,7 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> {
R<List<ErrorMessage>> importReduceDiy(InputStream inputStream, String orderId,String flag); R<List<ErrorMessage>> importReduceDiy(InputStream inputStream, String orderId,String flag);
// 离职待办调用的批量派减社保、公积金 // 离职待办调用的批量派减社保、公积金
BaseSearchListVO leaveToReduceSocialAndFund(List<TDispatchReduceVo> excelVOList); BaseSearchListVO leaveToReduceSocialAndFund(TDispatchReduceListVo paramVo);
@Transactional @Transactional
@ShardingTransactionType(TransactionType.BASE) @ShardingTransactionType(TransactionType.BASE)
......
...@@ -119,5 +119,7 @@ public interface TSocialFundInfoService extends IService<TSocialFundInfo> { ...@@ -119,5 +119,7 @@ public interface TSocialFundInfoService extends IService<TSocialFundInfo> {
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO * @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/ **/
BaseSearchVO getSocialAndFundStatus(BaseSearchVO paramVo); BaseSearchVO getSocialAndFundStatus(BaseSearchVO paramVo);
// 查询派减已完结的社保公积金
BaseSearchVO getSocialAndFundStatusByClose(BaseSearchVO paramVo);
} }
...@@ -3135,39 +3135,38 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -3135,39 +3135,38 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 离职待办调用的批量派减社保、公积金 // 离职待办调用的批量派减社保、公积金
@Override @Override
public BaseSearchListVO leaveToReduceSocialAndFund(List<TDispatchReduceVo> excelVOList) { public BaseSearchListVO leaveToReduceSocialAndFund(TDispatchReduceListVo paramVo) {
List<TDispatchReduceVo> excelVOList = paramVo.getListParam();
BaseSearchListVO returnVo = new BaseSearchListVO(); BaseSearchListVO returnVo = new BaseSearchListVO();
List<ErrorMessage> errorMessageList = new ArrayList<>(); List<ErrorMessage> errorMessageList = new ArrayList<>();
int batchCount = CommonConstants.BATCH_COUNT; int batchCount = CommonConstants.BATCH_COUNT;
List<TDispatchReduceVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(batchCount); List<TDispatchReduceVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(batchCount);
YifuUser userLogin = SecurityUtils.getUser(); Map<Integer, String> rowLeaveMap = new HashMap<>();
String nickName = "自动化自动";
if (userLogin != null && Common.isNotNull(userLogin.getNickname())) {
nickName += "-" + userLogin.getNickname();
}
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
YifuUser user = new YifuUser("2", 1L, "", nickName,
nickName, "0", SecurityConstants.BCRYPT + "123456",
"12345678911", true, true, true,
true,
"1", authorities, "1",
null, null,
null,null);
if (excelVOList != null && !excelVOList.isEmpty()) { if (excelVOList != null && !excelVOList.isEmpty()) {
int i=1; int i=0;
TDispatchReduceVo dispatchVo; String leaveId;
for (TDispatchReduceVo vo : excelVOList) { for (TDispatchReduceVo vo : excelVOList) {
i++; i++;
leaveId = vo.getLeaveId();
vo.setRowIndex(i);
if (Common.isNotNull(leaveId)) {
rowLeaveMap.put(i, leaveId);
}
cachedDataList.add(vo); cachedDataList.add(vo);
if (cachedDataList.size() >= batchCount) { if (cachedDataList.size() >= batchCount) {
batchReduceDispatch(cachedDataList, errorMessageList, user, null, null); batchReduceDispatch(cachedDataList, errorMessageList, paramVo.getNewUser(), null, null);
// 存储完成清理 list // 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(batchCount); cachedDataList = ListUtils.newArrayListWithExpectedSize(batchCount);
} }
} }
} }
if (!errorMessageList.isEmpty()) {
for (ErrorMessage message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
message.setKey(rowLeaveMap.get(message.getLineNum()));
}
}
}
returnVo.setErrorMessageList(errorMessageList); returnVo.setErrorMessageList(errorMessageList);
return returnVo; return returnVo;
} }
...@@ -3318,7 +3317,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -3318,7 +3317,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
infoEntity.setReduceSocialFundId(dispatch.getId()); infoEntity.setReduceSocialFundId(dispatch.getId());
infoEntity.setId(String.valueOf(UUID.randomUUID()).replaceAll("-", "")); infoEntity.setId(String.valueOf(UUID.randomUUID()).replaceAll("-", ""));
infoService.save(infoEntity); infoService.save(infoEntity);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS, CommonConstants.GREEN)); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS, CommonConstants.GREEN, dispatch.getId(), excel.getLeaveId()));
} catch (Exception e) { } catch (Exception e) {
log.error("批量派减异常:", e); log.error("批量派减异常:", e);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_FAILED)); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_FAILED));
......
...@@ -1000,6 +1000,18 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe ...@@ -1000,6 +1000,18 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
return returnVo; return returnVo;
} }
@Override
public BaseSearchVO getSocialAndFundStatusByClose(BaseSearchVO paramVo) {
BaseSearchVO returnVo = new BaseSearchVO();
if (Common.isNotNull(paramVo) && Common.isNotNull(paramVo.getEmpIdCard()) && Common.isNotNull(paramVo.getDeptNo())) {
String socialDispatchId = baseMapper.getSocialStatusByClose(paramVo.getEmpIdCard(), paramVo.getDeptNo());
returnVo.setResultIdOne(socialDispatchId);
String fundDispatchId = baseMapper.getFundStatusByClose(paramVo.getEmpIdCard(), paramVo.getDeptNo());
returnVo.setResultIdTwo(fundDispatchId);
}
return returnVo;
}
/** /**
* @Author fxj * @Author fxj
* @Description 查询是否存在正常或者在途的公积金 * @Description 查询是否存在正常或者在途的公积金
......
...@@ -1301,6 +1301,7 @@ ...@@ -1301,6 +1301,7 @@
where a.EMP_IDCARD = #{empIdCard} where a.EMP_IDCARD = #{empIdCard}
and a.SETTLE_DOMAIN_CODE = #{deptNo} and a.SETTLE_DOMAIN_CODE = #{deptNo}
and a.SOCIAL_STATUS in ('3','4') and a.SOCIAL_STATUS in ('3','4')
limit 1
</select> </select>
<select id="getFundStatus" resultMap="tSocialFundInfoMap"> <select id="getFundStatus" resultMap="tSocialFundInfoMap">
...@@ -1309,7 +1310,28 @@ ...@@ -1309,7 +1310,28 @@
LEFT JOIN t_dispatch_info d on d.FUND_ID = a.FUND_ID LEFT JOIN t_dispatch_info d on d.FUND_ID = a.FUND_ID
where a.EMP_IDCARD = #{empIdCard} where a.EMP_IDCARD = #{empIdCard}
and a.SETTLE_DOMAIN_CODE_FUND = #{deptNo} and a.SETTLE_DOMAIN_CODE_FUND = #{deptNo}
and a.FUND_STATUS in ('3','4') and a.FUND_STATUS = '3'
limit 1
</select>
<select id="getSocialStatusByClose" resultType="java.lang.String">
SELECT d.id DISPATCH_ID
FROM t_social_fund_info a
LEFT JOIN t_dispatch_info d on d.SOCIAL_ID = a.SOCIAL_ID
where a.EMP_IDCARD = #{empIdCard}
and a.SETTLE_DOMAIN_CODE = #{deptNo}
and a.SOCIAL_STATUS = '8'
limit 1
</select>
<select id="getFundStatusByClose" resultType="java.lang.String">
SELECT d.id DISPATCH_ID
FROM t_social_fund_info a
LEFT JOIN t_dispatch_info d on d.FUND_ID = a.FUND_ID
where a.EMP_IDCARD = #{empIdCard}
and a.SETTLE_DOMAIN_CODE_FUND = #{deptNo}
and a.FUND_STATUS = '7'
limit 1
</select> </select>
</mapper> </mapper>
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