Commit 62122141 authored by hongguangwu's avatar hongguangwu

Merge branch 'develop'

# Conflicts:
#	yifu-common/yifu-common-ldap/src/main/resources/application.properties
parents b1d71c3d 3c5d3ea4
......@@ -184,9 +184,9 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty("档案柜号")
private String fileCabinetNo;
/**
* 离职日期
* 离职日期 fxj 2025-05-08 优化线上邮件报错 isDate = true
*/
@ExcelAttribute(name = "离职日期")
@ExcelAttribute(name = "离职日期",isDate = true)
@Schema(description = "离职日期")
@ExcelProperty("离职日期")
private String leaveDate;
......
......@@ -48,6 +48,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
......@@ -568,4 +569,41 @@ public class TEmployeeInfoController {
tEmployeeInfoService.exportEmployeeFile(id, response);
}
/**
* @param empName 姓名
* @param empIdCard 身份证
* @Description: 按姓名身份证查询档案-包括离职库
* @Author: hgw
* @Date: 2025-4-23 15:34:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "按姓名身份证查询档案-包括离职库", description = "按姓名身份证查询档案-包括离职库")
@SysLog("按姓名身份证查询档案-包括离职库")
@GetMapping("/getByEmpNameAndCard")
public R<TEmployeeInfo> getByEmpNameAndCard(@RequestParam String empName, @RequestParam String empIdCard) {
return tEmployeeInfoService.getByEmpNameAndCard(empName, empIdCard);
}
/**
* @param empPhoneOld 手机号-原先
* @param empPhoneNew 手机号-新
* @Description: 更新档案手机号-包括离职库
* @Author: hgw
* @Date: 2025-4-23 15:34:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "更新档案手机号-包括离职库", description = "更新档案手机号-包括离职库")
@SysLog("更新档案手机号-包括离职库")
@GetMapping("/updateEmpPhone")
public R<String> updateEmpPhone(@RequestParam String id, @RequestParam String empPhoneOld, @RequestParam String empPhoneNew) {
return tEmployeeInfoService.updateEmpPhone(id, empPhoneOld, empPhoneNew);
}
/**
* 远程接口获取非在职档案(无档案或已离职)
*/
@Inner
@PostMapping("/inner/getEmpOnlineMap")
public Set<String> getCustomerUserMap(@RequestBody List<String> empIdCardList) {
return tEmployeeInfoService.getEmpOnlineMap(empIdCardList);
}
}
......@@ -26,6 +26,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* 人员档案表
......@@ -143,4 +144,6 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
List<HcmEmployeeInfoVO> getHcmEmpInfoList(@Param("idCardList") List<String> idCardList);
void updateEmployeeAgeTask();
Set<String> getEmpOnlineMap(@Param("empIdCardList")List<String> empIdCardList);
}
......@@ -31,6 +31,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 人员档案表
......@@ -271,4 +272,25 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
List<TEmployeeInfo> getListByDeptIdByLimit(String deptId, Integer limit1, Integer limit2);
/**
* @param empPhoneOld 手机号-原先
* @param empPhoneNew 手机号-新
* @Description: 更新档案手机号-包括离职库
* @Author: hgw
* @Date: 2025-4-23 15:34:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> updateEmpPhone(String id, String empPhoneOld, String empPhoneNew);
/**
* @param empName
* @param empIdCard
* @Description: 按姓名身份证查询档案
* @Author: hgw
* @Date: 2025/4/23 16:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
R<TEmployeeInfo> getByEmpNameAndCard(String empName, String empIdCard);
Set<String> getEmpOnlineMap(List<String> empIdCardList);
}
......@@ -26,6 +26,7 @@ import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.lock.annotation.Lock4j;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -2859,7 +2860,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
TEmployeeInfo tEmployeeInfo = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getEmpIdcard, project.getEmpIdcard())
.eq(TEmployeeInfo::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(TEmployeeInfo::getFileStatus, CommonConstants.ZERO_INT));
.eq(TEmployeeInfo::getFileStatus, CommonConstants.ZERO_INT).last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(tEmployeeInfo)) {
TEmployeeInfo tEmployeeInfoCompare = baseMapper.selectById(tEmployeeInfo.getId());
if (Common.isNotNull(tEmployeeInfo.getProjectNum())) {
......@@ -4214,4 +4215,85 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
tEmpDisabilityInfoService.saveBatch(disabilityRecordList);
}
}
/**
* @param empPhoneOld 手机号-原先
* @param empPhoneNew 手机号-新
* @Description: 更新档案手机号-包括离职库
* @Author: hgw
* @Date: 2025-4-23 15:34:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public R<String> updateEmpPhone(String id, String empPhoneOld, String empPhoneNew) {
if (empPhoneOld.equals(empPhoneNew)) {
return R.failed("手机号未发生变化");
}
// 1:判断姓名、身份证是否存在
// 2:如果不存在,返回提示语:无该员工信息
// 3:如果存在,判断手机号old对不对,不对则返回提示语:旧手机号错误
// 4:如果手机号old对,判断手机号new对不对,不对则返回提示语:新手机号校验不通过
// 5:如果手机号new校验通过,判断手机号new是否已存在,存在则返回提示语:手机号已被其他身份证使用
// 6:如果手机号new未被使用,则更新手机号,并返回提示语:更新成功
TEmployeeInfo emp = this.getById(id);
if (emp != null) {
if (!emp.getEmpPhone().equals(empPhoneOld)) {
return R.failed("旧手机号发生变化,请重新获取档案信息!");
}
TEmployeeInfo empExist = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getEmpPhone, empPhoneNew).last(CommonConstants.LAST_ONE_SQL));
if (empExist != null) {
return R.failed("手机号已被使用");
}
TCheckMobile checkMobile = new TCheckMobile();
checkMobile.setMobile(empPhoneNew);
R<TCheckMobile> a = HttpDaprUtil.invokeMethodPost(daprCheckProperties.getAppUrl(), daprCheckProperties.getAppId()
, "/tcheckmobile/inner/checkOneMobile", checkMobile, TCheckMobile.class, SecurityConstants.FROM_IN);
if (a != null && a.getData() != null) {
checkMobile = a.getData();
if (checkMobile != null && Common.isNotNull(checkMobile.getStatus())) {
// 校验服务判断了1、4、5都返回为1,因此仅判断1即可
if (!CommonConstants.ONE_STRING.equals(checkMobile.getStatus())) {
return R.failed("手机号校验失败:" + checkMobile.getMessage());
}
} else {
return R.failed(EmployeeConstants.CHECK_ERROR);
}
} else {
return R.failed(EmployeeConstants.CHECK_ERROR);
}
// 可以更新:
emp.setEmpPhone(empPhoneNew);
baseMapper.updateById(emp);
return R.ok("更新成功!");
} else {
return R.failed("无该人员信息,不可修改手机号!");
}
}
@Override
public R<TEmployeeInfo> getByEmpNameAndCard(String empName, String empIdCard) {
TEmployeeInfo emp = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getEmpIdcard, empIdCard).last(CommonConstants.LAST_ONE_SQL));
if (emp != null) {
if (empName.equals(emp.getEmpName())) {
return new R<>(emp);
} else {
return R.failed("姓名与身份证不匹配!");
}
} else {
return R.failed("无该人员信息,不可修改手机号");
}
}
/**
* 远程接口获取非在职档案(无档案或已离职)
*/
@Override
public Set<String> getEmpOnlineMap(List<String> empIdCardList) {
if (empIdCardList == null || empIdCardList.isEmpty()) {
return null; // 返回空
}
return baseMapper.getEmpOnlineMap(empIdCardList);
}
}
......@@ -1400,4 +1400,17 @@
<update id="updateEmployeeAgeTask">
update t_employee_info set EMP_AGE = YEAR(CURRENT_DATE())-YEAR(STR_TO_DATE(SUBSTRING(EMP_IDCARD,7,4),'%Y')) where EMP_IDCARD is not null and DELETE_FLAG='0' and SUBSTRING(EMP_IDCARD,7,1) in ('1','2')
</update>
<select id="getEmpOnlineMap" resultType="java.lang.String">
SELECT EMP_IDCARD
FROM t_employee_info
WHERE EMP_IDCARD IN
<foreach item="idCard" index="index" collection="empIdCardList"
open="(" separator="," close=")">
#{idCard}
</foreach>
and FILE_STATUS = '1' <!-- 已减档 -->
and DELETE_FLAG ='0' <!-- 未删除 -->
</select>
</mapper>
......@@ -655,6 +655,7 @@
where id = #{i.id}
</foreach>
</update>
<insert id="insertExcelEmpProject" parameterType="java.util.List">
insert into t_employee_project
(ID,EMP_ID,EMP_NATRUE,EMP_NAME,EMP_IDCARD,STATUS,PROJECT_STATUS,EMP_CODE,DEPT_NO,CONTRACT_TYPE,POST,
......
......@@ -159,4 +159,10 @@ public class ExcelAttributeConstants {
public static final String SOCIAL_DISPATCH_HANDLE_REASON = "social-conduct-add-reason";
// 公积金办理失败类型
public static final String FUND_DISPATCH_HANDLE_REASON = "fund-conduct-add-reason";
//社保派增委托备注
public static final String TRUST_REMARK_REDUCE = "trustRemarkReduce";
//社保派减委托备注
public static final String TRUST_REMARK_ADD = "trustRemark";
}
......@@ -40,6 +40,22 @@ public class Common {
public static boolean isEmpty(String str) {
return null == str || "".equals(str.trim()) || "null".equals(str.trim()) || "undefinded".equals(str.trim());
}
/**
* @Author fxj
* @Description 字符串空 转换为0 异常转换为0
* @Date 15:17 2025/4/24
**/
public static int isEmptyToZero(String str) {
if (isEmpty(str)){
return 0;
}
try {
return Integer.parseInt(str);
}catch (Exception e){
return 0;
}
}
/**
* 截取startStr和endStr中间的字符串(开区间)
*
......
/**
* Copyright © 2017yifu. All rights reserved.
*
* @Title: NumberToCN.java
* @Prject: wanxin_hr
* @Package: com.yifu.util
* @Description: TODO
* @author: Administrator
* @date: 2017年5月8日 下午6:45:01
* @version: V1.0
*/
package com.yifu.cloud.plus.v1.yifu.common.core.util;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
/**
* @Author: wangan-hgw
* @Date: 2019/8/9-2025-4-21 15:32:18
* @Description: Excel样式, 从老hr复制过
* @return:
**/
public class EasyExcelStyle {
// 私有构造函数,防止实例化
private EasyExcelStyle() {
throw new UnsupportedOperationException("工具类不能被实例化");
}
/**
* @param
* @Description: 设置倩倩审美下的excel样式
* @Author: hgw
* @Date: 2024/7/9 20:30
* @return: com.alibaba.excel.write.style.HorizontalCellStyleStrategy
**/
public static HorizontalCellStyleStrategy getBaseStyle () {
// 表头——单元格样式对象
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
headWriteCellStyle.setWrapped(false);
// 背景设置为白色,也可设置为其他颜色
headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
// 设置表头字体
WriteFont headWriteFont = new WriteFont();
// 设置字体大小为12
headWriteFont.setFontHeightInPoints((short)12);
// 设置加粗
headWriteFont.setBold(true);
// 把字体对象设置到单元格样式对象中
headWriteCellStyle.setWriteFont(headWriteFont);
//设置表头居中
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 内容——单元格样式对象
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setWrapped(false);
// 背景设置为白色,也可设置为其他颜色
contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
// 设置表头字体
WriteFont contentWriteFont = new WriteFont();
// 设置字体大小为12
contentWriteFont.setFontHeightInPoints((short)11);
// 把字体对象设置到单元格样式对象中
contentWriteCellStyle.setWriteFont(contentWriteFont);
//设置表头居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
return horizontalCellStyleStrategy;
}
}
......@@ -22,6 +22,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @Author fxj
......@@ -574,4 +575,18 @@ public class ArchivesDaprUtil {
}
return res;
}
/**
* @Author fxj
* @Description 远程接口获取非在职档案(无档案或已离职)
* @Date 10:51 2025/4/24
**/
public R<Set<String>> getEmpOnlineMap(List<String> empIdCardList){
R<Set> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/inner/getEmpOnlineMap" , JSON.toJSONString(empIdCardList), Set.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取档案派单信息失败!");
}
Set<String> map = JSON.parseObject(JSON.toJSONString(res.getData()),new TypeReference<Set<String>>(){});
return R.ok(map);
}
}
spring.ldap.urls=ldap://192.168.0.240:389
spring.ldap.username=cn=admin,dc=worfu,dc=com
spring.ldap.password=Yifu123456!
spring.ldap.base=dc=worfu,dc=com
\ No newline at end of file
spring.ldap.base=dc=worfu,dc=com
#ldap\u6D4B\u8BD5\u73AF\u5883\u914D\u7F6E-hgw-2025-04-23
#spring.ldap.urls=ldap://192.168.1.65:389
#spring.ldap.password=yifu123456!
\ No newline at end of file
......@@ -1042,7 +1042,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
int port = 8001;
String username = "wxrl";
// String privateKeyPath = "/path/to/your/private_key"; // 替换为你的私钥路径
String privateKeyPath = "D:/icbcFile/id_rsa"; // 替换为你的私钥路径
String privateKeyPath = "D:/icbcFile/icbc"; // 替换为你的私钥路径
String remoteDir = "/JFTStatementDownload/download";
String localPath = "D:/icbcFile/pdfFile"; // 替换为本地保存路径
......@@ -1051,7 +1051,8 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
try {
JSch jsch = new JSch();
// // 如果有密码,添加密码参数
// jsch.addIdentity(privateKeyPath, "root@yfmaster1");
// 添加私钥(注意:需要是没有密码保护的私钥)
jsch.addIdentity(privateKeyPath);
......@@ -1074,6 +1075,8 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
Vector<ChannelSftp.LsEntry> files = channelSftp.ls("*");
log.info("找到文件数量: " + files.size());
//ESC 字符:在 Java 中,ESC 字符可以用 \u001B 表示。
//如果输入字符串中可能包含连续的 ESC 字符(如 \u001B\u001B),split("\u001B") 会在结果数组中生成空字符串("")。如果需要过滤掉空字符串,可以使用 split("\u001B", -1) 或后续处理。
// 下载所有文件
for (ChannelSftp.LsEntry entry : files) {
if (!entry.getAttrs().isDir()) {
......
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TBusinessOperate;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestBody;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author fxj
* @Description 批量备注接受对象
* @Date 17:00 2025/4/24
**/
@Data
@Schema(description = "批量备注接受对象")
public class BatchIgnoreVo implements Serializable {
private static final long serialVersionUID = 628032758008497542L;
/**
* 更新主键集合ids
*/
@Schema(description = "更新主键集合ids")
private List<String> ids;
/**
* 忽略备注
*/
@Schema(description = "忽略备注")
private String remark;
}
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import java.io.Serializable;
/**
* @Author fxj
* @Description 企业微信推送商险到期提醒
* @Date 19:13 2025/4/23
* @Param
* @return
**/
@Data
@Tag(name = "企业微信推送商险待办信息")
public class InsuranceAlertWx implements Serializable {
private static final long serialVersionUID = -2689686777914935788L;
/**
* 项目编码
*/
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String projectName;
/**
* 临期
*/
@Schema(description = "临期")
private String lq;
/**
* 过期
*/
@Schema(description = "过期")
private String gq;
}
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import java.io.Serializable;
/**
* @Author fxj
* @Description 企业微信推送商险到期提醒组装信息
* @Date 19:13 2025/4/23
* @Param
* @return
**/
@Data
@Tag(name = "企业微信推送商险待办信息组装信息")
public class InsuranceAlertWxVo implements Serializable {
private static final long serialVersionUID = -2689686777914935788L;
/**
* 项目数
*/
@Schema(description = "项目数")
private int domainNum;
/**
* 临期数
*/
@Schema(description = "临期数")
private int lqNum;
/**
* 过期数
*/
@Schema(description = "过期数")
private int gqNum;
}
......@@ -2,12 +2,14 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceDetailService;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceWarnService;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.BatchIgnoreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceSearchVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo;
import io.swagger.v3.oas.annotations.Operation;
......@@ -112,8 +114,11 @@ public class TInsurancesWarnController {
@SysLog("到期提醒批量忽略")
@PutMapping("/batchexpireIgnore")
@PreAuthorize("@pms.hasPermission('wxhr:insurance_expireignore')")
public R<Object> batchexpireIgnore(@RequestBody List<String> ids) {
return insuranceDetailService.batchexpireIgnore(ids);
public R<Object> batchexpireIgnore(@RequestBody BatchIgnoreVo vo) {
if (null == vo || vo.getIds() == null || vo.getIds().size() == 0){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
return insuranceDetailService.batchexpireIgnore(vo.getIds(),vo.getRemark());
}
/**
......@@ -139,4 +144,17 @@ public class TInsurancesWarnController {
public void createInsuranceAlert() {
insuranceWarnService.createInsuranceAlert();
}
/**
* @Author fxj
* @Description 每日09:00推送一条整合的待办数据——只推送前端客服,详情去HRO处理——消息待定:项目名称-项目编码、商险临期人数:**;商险过期人数:**;
* ——项目数:***、商险临期人数:***、商险过期人数:***,请及时至HRO系统进行处理,以免人员脱保!;
* @Date 18:55 2025/4/23
**/
@Operation(description = "每天9:00推送整合后的待办商险数据给对应项目的前端客服信息")
@Inner
@PostMapping("/inner/pushInsuranceAlertToWx")
public void pushInsuranceAlertToWx() {
insuranceWarnService.pushInsuranceAlertToWx();
}
}
......@@ -318,9 +318,9 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
int noPageCountDiy(@Param("param")InsuranceSearchVo searchVo);
void batchexpireIgnore(@Param("idList")List<String> idList);
void batchexpireIgnore(@Param("idList")List<String> idList,@Param("remark")String remark);
void batchexpireAlertIgnore(@Param("idList")List<String> idList);
void batchexpireAlertIgnore(@Param("idList")List<String> idList,@Param("remark")String remark);
void updateExpireAlert(@Param("id") String id,@Param("expireFlag") String expireFlag,@Param("remark") String remark);
......
......@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWx;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
......@@ -22,4 +23,7 @@ public interface TInsuranceWarnMapper extends BaseMapper<TInsuranceAlert> {
* @return {@link List < TInsuranceAlert >}
*/
List<TInsuranceAlert> selectInsuranceAlert();
List<InsuranceAlertWx> getInsuranceAlertToWx();
}
......@@ -533,7 +533,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
R<Integer> getUserInsuranceMessageWarnCount(String userName);
R<Object> batchexpireIgnore(List<String> ids);
R<Object> batchexpireIgnore(List<String> ids,String remark);
R<Object> expireIgnore(TBusinessInsuranceVo vo);
......
......@@ -12,4 +12,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert;
public interface TInsuranceWarnService extends IService<TInsuranceAlert> {
void createInsuranceAlert();
void pushInsuranceAlertToWx();
}
......@@ -2989,6 +2989,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
listResult.add(param);
continue;
}
//兼容处理,结算月为空时赋值null huych
if(Common.isEmpty(param.getSettleMonth())){
param.setSettleMonth(null);
}
//记录查重校验:姓名 + 身份证号 + 保险公司 + 险种 + 保单开始日期~保单结束日期 + 购买标准 是唯一(剔除退回、过期状态的记录)
//待投保、投保中、已投保(有效、未过期)
......@@ -3357,6 +3361,10 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
listResult.add(param);
continue;
}
//兼容处理,结算月为空时赋值null huych
if(Common.isEmpty(param.getSettleMonth())){
param.setSettleMonth(null);
}
//记录查重校验:姓名 + 身份证号 + 保单号 + 保险公司 + 险种 + 购买标准
//待投保、投保中、已投保(有效、未过期)
......@@ -7911,13 +7919,13 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
@Override
public R<Object> batchexpireIgnore(List<String> ids) {
if (Common.isEmpty(ids)){
public R<Object> batchexpireIgnore(List<String> ids,String remark) {
if (Common.isEmpty(ids) || Common.isEmpty(remark)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
baseMapper.batchexpireIgnore(ids);
baseMapper.batchexpireIgnore(ids,remark);
//更新商险到期提醒表
baseMapper.batchexpireAlertIgnore(ids);
baseMapper.batchexpireAlertIgnore(ids,remark);
return R.ok();
}
......@@ -7997,14 +8005,15 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
@Override
public R<Object> expireIgnore(TBusinessInsuranceVo vo) {
if (Common.isEmpty(vo.getId())) {
return R.failed(InsurancesConstants.UPLOAD_PARAM_CHECK_FAIL);
if (Common.isEmpty(vo.getId()) || Common.isEmpty(vo.getExpireRemark())) {
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
TInsuranceDetail entity = baseMapper.selectById(vo.getId());
if (entity == null) {
return R.failed("未查询到相关商险订单");
}
entity.setExpireIgnoreFlag(CommonConstants.ZERO_STRING);
entity.setExpireRemark(vo.getExpireRemark());
baseMapper.updateById(entity);
baseMapper.updateExpireAlert(entity.getId(),CommonConstants.ZERO_STRING,null);
return R.ok();
......
......@@ -2046,7 +2046,7 @@
<update id="batchexpireIgnore">
<if test="idList != null and idList.size() > 0">
update t_insurance_detail a
set a.EXPIRE_IGNORE_FLAG = '0'
set a.EXPIRE_IGNORE_FLAG = '0',a.EXPIRE_REMARK=#{remark}
where
a.id in
<foreach collection="idList" item="param" index="index" open="(" close=")" separator=",">
......@@ -2058,7 +2058,7 @@
<update id="batchexpireAlertIgnore">
<if test="idList != null and idList.size() > 0">
update t_insurance_alert a
set a.EXPIRE_IGNORE_FLAG = '0'
set a.EXPIRE_IGNORE_FLAG = '0',a.EXPIRE_REMARK=#{remark}
where
a.id in
<foreach collection="idList" item="param" index="index" open="(" close=")" separator=",">
......
......@@ -144,4 +144,16 @@
AND ll.endTime = a.POLICY_END
where a.DELETE_FLAG = '0'
</select>
<resultMap id="PushWxResultMap" type="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWx">
<result property="projectName" column="DEPT_NAME" jdbcType="VARCHAR"/>
<result property="deptNo" column="DEPT_NO" jdbcType="VARCHAR"/>
<result property="lq" column="lq" jdbcType="VARCHAR"/>
<result property="gq" column="gq" jdbcType="VARCHAR"/>
</resultMap>
<select id="getInsuranceAlertToWx" resultMap="PushWxResultMap">
select a.DEPT_NAME,a.DEPT_NO,
SUM(case when a.IS_OVERDUE='0' THEN 1 ELSE 0 END) as 'lq',
SUM(CASE WHEN a.IS_OVERDUE='1' THEN 1 ELSE 0 END) as 'gq'
from t_insurance_alert a GROUP BY a.DEPT_NO
</select>
</mapper>
......@@ -98,4 +98,16 @@ public class UpdateOverdueTask {
"/temployeeinsurancepre/inner/pushDisConfrimInsurances","", Void.class, SecurityConstants.FROM_IN);
log.info("-------------每天三点二十推送商险待确认信息-定时任务开始------------");
}
/**
* @Author fxj
* @Description 每天刷新商险待办信息到微信
* @Date 20:22 2025/4/23
**/
public void everyDaypushInsuranceAlertToWx() {
log.info("-------------每天刷新商险待办信息到微信-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(), daprInsurancesProperties.getAppId(),
"/insuranceWarn/inner/pushInsuranceAlertToWx","", Void.class, SecurityConstants.FROM_IN);
log.info("-------------每天刷新商险待办信息到微信-定时任务结束------------");
}
}
......@@ -22,4 +22,6 @@ public class TAuditExportStandardVo {
private String businessPrimaryTyp;
private String businessSecondType;
private String businessThirdType;
//新增薪酬申请编号 fxj v1.7.10
private String applyNo;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 工资条导出-特殊的列-详情
*
* @author hgw
* @date 2019-07-30 15:00:05
*/
@Data
public class TSalaryAccountExportSpecialItemVo implements Serializable {
private static final long serialVersionUID = 1L;
private String cnName;
private String textValue;
private String accountId;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 工资条导出-特殊的列
*
* @author hgw
* @date 2019-07-30 15:00:05
*/
@Data
public class TSalaryAccountExportSpecialVo implements Serializable {
private static final long serialVersionUID = 1L;
// 工资月份,发放状态,结算月份,项目名称,员工姓名,银行卡号,开户行,身份证号,工资发放方式,社保扣缴月份" +
// ",公积金扣缴月份,社保优先级,公积金优先级,年终奖扣税方案,是否扣除社保,是否扣除公积金
@ExcelProperty("工资月份")
private String export1;
@ExcelProperty("发放状态")
private String export2;
@ExcelProperty("结算月份")
private String export3;
@ExcelProperty("项目名称")
private String export4;
@ExcelProperty("员工姓名")
private String export5;
@ExcelProperty("银行卡号")
private String export6;
@ExcelProperty("开户行")
private String export7;
@ExcelProperty("身份证号")
private String export8;
@ExcelProperty("工资发放方式")
private String export9;
@ExcelProperty("社保扣缴月份")
private String export10;
@ExcelProperty("公积金扣缴月份")
private String export11;
@ExcelProperty("社保优先级")
private String export12;
@ExcelProperty("公积金优先级")
private String export13;
@ExcelProperty("年终奖扣税方案")
private String export14;
@ExcelProperty("是否扣除社保")
private String export15;
@ExcelProperty("是否扣除公积金")
private String export16;
@ExcelProperty("工资表主键")
private String accountId;
}
......@@ -132,6 +132,9 @@ public class TSalaryAccountExportVo {
@ExcelProperty("薪酬状态")
private String status;
//新增薪酬申请编号 fxj v1.7.10 2025-04-25
@ExcelProperty("薪酬申请单号")
private String applyNo;
}
......@@ -17,7 +17,6 @@
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainListVo;
......@@ -37,13 +36,11 @@ import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpSocialViewVo;
import com.yifu.cloud.plus.v1.yifu.salary.constants.SalaryConstants;
import com.yifu.cloud.plus.v1.yifu.salary.entity.THaveSalaryNosocial;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccountItem;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryAccountItemService;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryAccountService;
import com.yifu.cloud.plus.v1.yifu.salary.util.SalaryCommonUtil;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryAccountSearchVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryAccountSumVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryDetailVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.WageProofDto;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -53,9 +50,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
......@@ -227,6 +222,32 @@ public class TSalaryAccountController {
tSalaryAccountService.exportAsso(response, searchVo,CommonConstants.ONE_INT);
}
/**
* 获取工资条导出
* @author hgw
* @date 2025-4-21 09:30:56
**/
@Operation(description = "获取工资条导出")
@PostMapping("/getEmpAccountExport")
@SysLog("获取工资条导出")
public void getEmpAccountExport(HttpServletResponse response, @RequestBody TSalaryAccountSearchVo searchVo) {
String empIdCard = searchVo.getEmpIdcard();
String settleDepartId = searchVo.getDeptId();
String settlementMonth = searchVo.getSettlementMonth();
String deptNo = searchVo.getDeptNo();
String empName = searchVo.getEmpName();
if (Common.isEmpty(empIdCard) && Common.isEmpty(settleDepartId) && Common.isEmpty(settlementMonth)
&& Common.isEmpty(deptNo) && Common.isEmpty(empName)) {
tSalaryAccountService.exportError(response, "请输入查询条件");
} else if (Common.isNotNull(settlementMonth) && Common.isEmpty(empIdCard) && Common.isEmpty(settleDepartId)
&& Common.isEmpty(deptNo) && Common.isEmpty(empName)) {
tSalaryAccountService.exportError(response, "结算月需配合其他查询条件一起使用,请输入其他查询条件!");
} else {
tSalaryAccountService.exportAsso(response, searchVo, CommonConstants.TWO_INT);
}
}
/**
* @Author fxj
* @Description 获取工资条
......@@ -236,68 +257,22 @@ public class TSalaryAccountController {
**/
@Operation(description = "获取工资条")
@GetMapping("/getEmpAccount")
public R<TSalaryDetailVo> getEmpAccount(String empIdcard, String settleDepartId, String settlementMonth
, String deptNo, String deptName, String empName) {
TSalaryDetailVo salaryDetailVo = new TSalaryDetailVo();
if (Common.isEmpty(empIdcard) && Common.isEmpty(settleDepartId) && Common.isEmpty(settlementMonth)
&& Common.isEmpty(deptNo) && Common.isEmpty(deptName) && Common.isEmpty(empName)) {
public R<IPage<TSalaryAccount>> getEmpAccount(Page<TSalaryAccount> page, TSalaryAccountSearchVo searchVo) {
String empIdCard = searchVo.getEmpIdcard();
String settleDepartId = searchVo.getDeptId();
String settlementMonth = searchVo.getSettlementMonth();
String deptNo = searchVo.getDeptNo();
String empName = searchVo.getEmpName();
if (Common.isEmpty(empIdCard) && Common.isEmpty(settleDepartId) && Common.isEmpty(settlementMonth)
&& Common.isEmpty(deptNo) && Common.isEmpty(empName)) {
return R.failed("请输入查询条件");
}
if (Common.isNotNull(settlementMonth) && Common.isEmpty(empIdcard) && Common.isEmpty(settleDepartId)
&& Common.isEmpty(deptNo) && Common.isEmpty(deptName) && Common.isEmpty(empName)) {
if (Common.isNotNull(settlementMonth) && Common.isEmpty(empIdCard) && Common.isEmpty(settleDepartId)
&& Common.isEmpty(deptNo) && Common.isEmpty(empName)) {
return R.failed("结算月需配合其他查询条件一起使用,请输入其他查询条件!");
}
//报账表
TSalaryAccount salaryAccount = new TSalaryAccount();
salaryAccount.setDeleteFlag(SalaryConstants.NOT_DELETE);
if (Common.isNotNull(empIdcard)) {
salaryAccount.setEmpIdcard(empIdcard);
}
if (Common.isNotNull(settleDepartId)) {
salaryAccount.setDeptId(settleDepartId);
}
if (Common.isNotNull(settlementMonth) && settlementMonth.length() == 6) {
salaryAccount.setSettlementMonth(settlementMonth);
}
QueryWrapper<TSalaryAccount> queryWrapperSa = new QueryWrapper<>();
queryWrapperSa.setEntity(salaryAccount);
if (Common.isNotNull(empName)) {
queryWrapperSa.eq("EMP_NAME", empName);
}
if (Common.isNotNull(deptNo)) {
queryWrapperSa.eq("DEPT_NO", deptNo);
}
if (Common.isNotNull(settleDepartId)) {
queryWrapperSa.eq("DEPT_ID", settleDepartId);
}
if (Common.isNotNull(settlementMonth) && settlementMonth.length() < 6) {
queryWrapperSa.eq("SETTLEMENT_MONTH", settlementMonth);
}
queryWrapperSa.orderByAsc("SETTLEMENT_MONTH");
List<TSalaryAccount> salaryAccountList = tSalaryAccountService.list(queryWrapperSa);
Map<String, String> accountTitle = new HashMap<>();
if (salaryAccountList != null && salaryAccountList.size() > CommonConstants.ZERO_INT) {
//报账表明细
TSalaryAccountItem item;
QueryWrapper<TSalaryAccountItem> queryWrapperAi;
List<TSalaryAccountItem> itemList;
for (TSalaryAccount a : salaryAccountList) {
item = new TSalaryAccountItem();
item.setSalaryAccountId(a.getId());
queryWrapperAi = new QueryWrapper<>();
queryWrapperAi.setEntity(item);
itemList = tSalaryAccountItemService.list(queryWrapperAi);
if (itemList != null && itemList.size() > CommonConstants.ZERO_INT) {
for (TSalaryAccountItem items : itemList) {
accountTitle.put(items.getCnName(), items.getJavaFiedName());
}
}
a.setSaiList(itemList);
}
}
salaryDetailVo.setSalaryAccountList(salaryAccountList);
salaryDetailVo.setAccountTitle(accountTitle);
return new R<>(salaryDetailVo);
return new R<>(tSalaryAccountService.getEmpAccountPage(page, searchVo));
}
......
......@@ -47,6 +47,16 @@ public interface TSalaryAccountMapper extends BaseMapper<TSalaryAccount> {
@Param("tSalaryAccount") TSalaryAccount tSalaryAccount,
@Param("deptNos") List<String> deptNos);
IPage<TSalaryAccount> getEmpAccountPage(Page<TSalaryAccount> page, @Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
int getEmpAccountCount(@Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
List<TSalaryAccountExportSpecialVo> getEmpAccountExport(@Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
List<String> getItemAllTitle(@Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
List<TSalaryAccountExportSpecialItemVo> getEmpAccountItemExport(@Param("settlementMonth") String settlementMonth, @Param("ids") List<String> ids);
List<TSalaryAccount> getTSalaryAccountPageDataByIds(@Param("tSalaryAccount") TSalaryAccount tSalaryAccount,
@Param("ids") List<String> ids);
......
......@@ -44,6 +44,15 @@ public interface TSalaryAccountService extends IService<TSalaryAccount> {
* @return
*/
IPage<TSalaryAccount> getTSalaryAccountPage(Page<TSalaryAccount> page, TSalaryAccountSearchVo tSalaryAccount);
/**
* @Description: 项目薪酬查询-工资条查询
* @Author: hgw
* @Date: 2025/4/18 14:58
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount>
**/
IPage<TSalaryAccount> getEmpAccountPage(Page<TSalaryAccount> page, TSalaryAccountSearchVo searchVo);
/**
* @Author fxj
* @Description 薪资报账导出统一导出限制
......
......@@ -27,6 +27,7 @@ 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.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.EasyExcelStyle;
import com.yifu.cloud.plus.v1.yifu.ekp.vo.EkpSalaryParamVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpSocialViewVo;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TDeptSee;
......@@ -39,6 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryAccountService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -102,11 +104,22 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
}
/**
* @Description: 项目薪酬查询-工资条查询
* @Author: hgw
* @Date: 2025/4/18 16:01
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount>
**/
@Override
public IPage<TSalaryAccount> getEmpAccountPage(Page<TSalaryAccount> page, TSalaryAccountSearchVo searchVo) {
return baseMapper.getEmpAccountPage(page, searchVo);
}
/**
* @Author fxj
* @Description
* @Date 15:27 2024/10/23
* @Param type 0 报账批量导出 1 报账审核人导出
* @Param type 0 报账批量导出 1 报账审核人导出 2: 项目薪酬查询-工资条查询导出
* @return
**/
@Override
......@@ -118,6 +131,8 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
listExport(response, searchVo);
}else if (CommonConstants.ONE_INT == type){
auditExport(response, searchVo);
} else if (CommonConstants.TWO_INT == type){
getEmpAccountExport(response, searchVo);
}
}catch (Exception e){
log.error("导出异常:",e);
......@@ -328,6 +343,7 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
standardItems.clear();
}
}
//封装信息
initResult(list, itemExportVoMap,itemStandardMap,itemAnnualBonusMap,itemPersionTaxMap,itemAnnuityMap,itemSubsidyMap,itemCarNoTaxMap);
if (i%CommonConstants.EXCEL_EXPORT_LIMIT==0){
......@@ -362,6 +378,167 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
}
}
/**
* @Description: 项目薪酬查询-工资条查询导出
* @Author: hgw
* @Date: 2025-4-21 09:45:46
* @return: void
**/
private void getEmpAccountExport(HttpServletResponse response, TSalaryAccountSearchVo searchVo) {
String fileName = "工资条查询导出" + DateUtil.getThisTime() + CommonConstants.XLSX;
//获取要导出的列表
List<TSalaryAccountExportSpecialVo> list = new ArrayList<>();
long count = baseMapper.getEmpAccountCount(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, "UTF-8"));
//非管理员导出 大于10W 提示“导出量过大,请选择更多查询条件!如果确定要导出这些数据请联系系统管理员操作”
if (count > 100000) {
out.write(CommonConstants.SOCIAL_EXPORT_LIMIT.getBytes("GBK"));
out.close();
return;
}
List<String> titleAllList = baseMapper.getItemAllTitle(searchVo);
List<List<String>> headList = Lists.newArrayList();
String title = "工资月份,发放状态,结算月份,项目名称,员工姓名,银行卡号,开户行,身份证号,工资发放方式,社保扣缴月份" +
",公积金扣缴月份,社保优先级,公积金优先级,年终奖扣税方案,是否扣除社保,是否扣除公积金";
if (titleAllList != null && !titleAllList.isEmpty()) {
for (String temp : titleAllList) {
title += "," + temp;
}
}
String[] strTemp = title.split(",");
List<String> titleList;
for (String temp : strTemp) {
titleList = new ArrayList<>();
titleList.add(temp);
headList.add(titleList);
}
ExcelWriter excelWriter = EasyExcelFactory.write(out).registerWriteHandler(EasyExcelStyle.getBaseStyle())
.head(headList).build();
int index = 0;
WriteSheet writeSheet = null;
if (count > CommonConstants.ZERO_INT) {
// 每次数据库查询条数
int limit = 1000;
int sheetIndex = 0;
// 循环几次重新生成sheet(这里是循环10次,也就是10000条房一个sheet里)
int cyclesNum = 10;
// 固定的报账表列表
List<TSalaryAccountExportSpecialVo> baseList;
// 导出的全量内容列表
List<List<String>> listContent = null;
// 每一行的内容列表
List<String> contentList = null;
// 明细表总mvp
Map<String, Map<String, String>> itemMap = null;
// 每一行的mvp
Map<String, String> tempMap;
// 浮动的明细表
List<TSalaryAccountExportSpecialItemVo> itemList = null;
for (int i = 0; i < count; i += limit) {
searchVo.setLimitStart(i);
searchVo.setLimitEnd(limit);
baseList = baseMapper.getEmpAccountExport(searchVo);
listContent = new ArrayList<>();
contentList = new ArrayList<>();
if (baseList != null && !baseList.isEmpty()) {
for (TSalaryAccountExportSpecialVo a : baseList) {
contentList.add(a.getAccountId());
}
itemMap = new HashMap<>();
tempMap = new HashMap<>();
if (titleAllList != null && !titleAllList.isEmpty()) {
itemList = baseMapper.getEmpAccountItemExport(searchVo.getSettlementMonth(), contentList);
for (TSalaryAccountExportSpecialItemVo itemVo : itemList) {
tempMap = itemMap.get(itemVo.getAccountId());
if (tempMap == null) {
tempMap = new HashMap<>();
}
tempMap.put(itemVo.getCnName(), itemVo.getTextValue());
itemMap.put(itemVo.getAccountId(), tempMap);
}
}
for (TSalaryAccountExportSpecialVo a : baseList) {
contentList = new ArrayList<>();
contentList.add(a.getExport1());
contentList.add(a.getExport2());
contentList.add(a.getExport3());
contentList.add(a.getExport4());
contentList.add(a.getExport5());
contentList.add(a.getExport6());
contentList.add(a.getExport7());
contentList.add(a.getExport8());
contentList.add(a.getExport9());
contentList.add(a.getExport10());
contentList.add(a.getExport11());
contentList.add(a.getExport12());
contentList.add(a.getExport13());
contentList.add(a.getExport14());
contentList.add(a.getExport15());
contentList.add(a.getExport16());
if (titleAllList != null && !titleAllList.isEmpty()) {
tempMap = itemMap.get(a.getAccountId());
for (String temp : titleAllList) {
if (tempMap != null) {
if (tempMap.get(temp) != null) {
contentList.add(tempMap.get(temp));
} else {
contentList.add("");
}
} else {
contentList.add("");
}
}
}
listContent.add(contentList);
}
}
if (sheetIndex++ % cyclesNum == 0) {
writeSheet = EasyExcelFactory.writerSheet("工资条" + index++).build();
}
excelWriter.write(listContent, writeSheet);
}
if (Common.isNotNull(listContent)) {
listContent.clear();
}
if (Common.isNotNull(contentList)) {
contentList.clear();
}
if (Common.isNotNull(itemMap)) {
itemMap.clear();
}
if (Common.isNotNull(itemList)) {
itemList.clear();
}
} else {
writeSheet = EasyExcelFactory.writerSheet("工资条" + index).build();
excelWriter.write(list, writeSheet);
}
if (Common.isNotNull(list)) {
list.clear();
}
out.flush();
excelWriter.finish();
} catch (Exception e) {
log.error("执行异常", e);
} finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
private void clearMap(Map<String, TSalaryAccountItemExportVo> itemExportVoMap, List<String> idList, List<String> idStandardList, Map<String, TAuditExportStandardVo> itemStandardMap, Map<String, TAuditExportItemVo> itemAnnualBonusMap, Map<String, TAuditExportItemVo> itemPersionTaxMap, Map<String, TAuditExportItemVo> itemAnnuityMap, Map<String, TAuditExportItemVo> itemSubsidyMap) {
if (Common.isNotNull(idList)){
idList.clear();
......@@ -412,6 +589,8 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
vo.setBusinessPrimaryType(standardVo.getBusinessPrimaryTyp());
vo.setBusinessSecondType(standardVo.getBusinessSecondType());
vo.setBusinessThirdType(standardVo.getBusinessThirdType());
//新增薪酬申请编号 fxj v1.7.10 2025-04-25
vo.setApplyNo(standardVo.getApplyNo());
}
itemVo = itemAnnualBonusMap.get(vo.getId());
if (Common.isNotNull(itemVo)){
......
......@@ -568,6 +568,107 @@
</where>
order by a.CREATE_TIME desc
</select>
<!--项目薪酬查询-工资条查询-导出条数-->
<select id="getEmpAccountCount" resultType="java.lang.Integer">
SELECT
count(1)
FROM
<if test="tSalaryAccount.settlementMonth == null or tSalaryAccount.settlementMonth.trim() >= '202201' ">
t_salary_account a
</if>
<if test="tSalaryAccount.settlementMonth != null and tSalaryAccount.settlementMonth.trim() &lt; '202201' ">
t_salary_account_hro_2021 a
</if>
where a.DELETE_FLAG = 0
<include refid="tSalaryAccount_where"/>
</select>
<!--项目薪酬查询-工资条查询-导出-->
<select id="getEmpAccountExport" resultType="com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryAccountExportSpecialVo">
SELECT
a.SALARY_MONTH export1,
if(a.PAY_SETTLE_FLAG='0','已发放',if(a.PAY_SETTLE_FLAG='1','发放中','未发放')) export2,
a.SETTLEMENT_MONTH export3,
a.DEPT_NAME export4,
a.EMP_NAME export5,
a.BANK_NO export6,
a.BANK_NAME export7,
a.EMP_IDCARD export8,
if(a.SALARY_STYLE='0','现金',if(a.SALARY_STYLE='1','转账','线下')) export9,
a.DEDU_SOCIAL_MONTH export10,
a.DEDU_PROVIDENT_MONTH export11,
if(a.SOCIAL_PRIORITY='0','生成','缴纳') export12,
if(a.FUND_PRIORITY='0','生成','缴纳') export13,
if(a.ANNUAL_BONUS_TYPE='0','合并','单独') export14,
if(a.IS_DEDUCT_SOCIAL='0','否','是') export15,
if(a.IS_DEDUCT_FUND='0','否','是') export16,
a.id accountId
FROM
<if test="tSalaryAccount.settlementMonth == null or tSalaryAccount.settlementMonth.trim() >= '202201' ">
t_salary_account a
</if>
<if test="tSalaryAccount.settlementMonth != null and tSalaryAccount.settlementMonth.trim() &lt; '202201' ">
t_salary_account_hro_2021 a
</if>
where a.DELETE_FLAG = 0
<include refid="tSalaryAccount_where"/>
<if test="tSalaryAccount != null">
<if test="tSalaryAccount.limitStart != null">
limit #{tSalaryAccount.limitStart},#{tSalaryAccount.limitEnd}
</if>
</if>
</select>
<!--项目薪酬查询-工资条查询-导出-->
<select id="getItemAllTitle" resultType="java.lang.String">
SELECT
i.CN_NAME
FROM
<if test="tSalaryAccount.settlementMonth == null or tSalaryAccount.settlementMonth.trim() >= '202201' ">
t_salary_account_item i
LEFT JOIN t_salary_account a on i.SALARY_ACCOUNT_ID=a.id
</if>
<if test="tSalaryAccount.settlementMonth != null and tSalaryAccount.settlementMonth.trim() &lt; '202201' ">
t_salary_account_item_hro_2021 i
LEFT JOIN t_salary_account_hro_2021 a on i.SALARY_ACCOUNT_ID=a.id
</if>
where a.DELETE_FLAG = 0
<include refid="tSalaryAccount_where"/>
GROUP BY i.CN_NAME
</select>
<!--项目薪酬查询-工资条查询-导出-->
<select id="getEmpAccountItemExport" resultType="com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryAccountExportSpecialItemVo">
SELECT
a.CN_NAME cnName,ifnull(a.TEXT_VALUE,a.SALARY_MONEY) textValue,a.SALARY_ACCOUNT_ID accountId
FROM
<if test="settlementMonth == null or settlementMonth.trim() >= '202201' ">
t_salary_account_item a
</if>
<if test="settlementMonth != null and settlementMonth.trim() &lt; '202201' ">
t_salary_account_item_hro_2021 a
</if>
where a.SALARY_ACCOUNT_ID in
<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!--项目薪酬查询-工资条查询-->
<select id="getEmpAccountPage" resultMap="tSalaryAccountMap">
SELECT
<include refid="Base_Column_List"/>
FROM
<if test="tSalaryAccount.settleMonthStart == null or tSalaryAccount.settleMonthStart.trim() >= '202201' ">
t_salary_account a
</if>
<if test="tSalaryAccount.settleMonthStart != null and tSalaryAccount.settleMonthStart.trim() &lt; '202201' ">
t_salary_account_hro_2021 a
</if>
where a.DELETE_FLAG = 0
<include refid="tSalaryAccount_where"/>
</select>
<!--tSalaryAccount简单分页查询-->
<select id="getTSalaryAccountPageDataByIds" resultMap="tSalaryAccountMap">
SELECT
......@@ -1929,6 +2030,7 @@
,s.BUSINESS_PRIMARY_TYPE as businessPrimaryType
,s.BUSINESS_SECOND_TYPE as businessSecondType
,s.BUSINESS_THIRD_TYPE as businessThirdType
,s.APPLY_NO applyNo
FROM
t_salary_standard s
where
......
......@@ -34,6 +34,7 @@ public class DispatchConstants {
public static final String DISPATCH_SOCIAL_REDUCE = "社保派减";
public static final String SOCIAL_RECORD_ROSTER_EXPORT = "社保花名册导出";
public static final String SOCIAL_SOLDIER_EXPORT = "自动化办理导出";
public static final String SOCIAL_SOLDIER_EXPORT_ALL = "自动化办理查询导出";
public static final String SOCIAL_RECORD_EXPORT = "公积金变更清册导出";
public static final String SOCIAL_MEDICAL_EXPORT = "社保-医疗";
public static final String SOCIAL_PERSION_EXPORT = "社保-养老三险";
......
......@@ -278,6 +278,15 @@ public class SysHouseHoldInfo extends BaseEntity {
@ExcelProperty("医保-单位编号")
private String customerNoYsd;
/**
* 是否单个接口 0否1是(税友接口走单个还是批量,审核是否立即推送税友)
*/
@ExcelAttribute(name = "是否单个接口" )
@Schema(description ="是否单个接口")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否单个接口")
private String isSingle;
/**
* 审核人部门
*/
......
......@@ -57,13 +57,11 @@ public class TAttaInfo extends BaseEntity {
@Schema(description = "资源类型")
private String attaType;
/**
* 关系类型(0客户附件1联系人附件2跟进记录附件3合同附件4合同归档附件5报价单6招投标7业务评估8二维码9身份证 10 户口本
* ;21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件);0(最高教育经历);2(执业资格证书);24 身份证国徽
* 25 户口本本人页26学信27预入职其他附件28户配置
* 1户配置的章;2:派单审核附件,税友单个使用
*/
@NotBlank(message = "关系类型不能为空")
@Length(max = 2, message = "关系类型不能超过2个字符")
@Schema(description = "关系类型(0客户附件1联系人附件2跟进记录附件3合同附件4合同归档附件5报价单6招投标7业务评估8二维码9身份证 10 户口本;21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件);0(最高教育经历);2(执业资格证书);24 身份证国徽 25 户口本本人页26学信28户配置)")
@Schema(description = "关系类型(1户配置的章;2:派单审核附件,税友单个使用)")
private String relationType;
/**
* 实体id和关系类型共同确定附件所属(9、10、21、22、23、24、25存项目档案id,0、2、26存附属表id)
......
......@@ -827,4 +827,14 @@ public class TDispatchInfo extends BaseEntity {
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保自动化标识" )
private String autoFlag;
/**
* 是否单个接口 0否1是(税友接口走单个还是批量,审核是否立即推送税友)
*/
@ExcelAttribute(name = "是否单个接口" )
@Schema(description ="是否单个接口")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否单个接口")
private String isSingle;
}
......@@ -1073,6 +1073,63 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("医生大税友的任务ID" )
private String ysdRequestId;
// 以下专门为自动化办理查询使用的:(派减,清空派增信息,再次之前,留存派增信息到下面的 add字段里) hgw 2025-4-27 17:43:59
/**
* 减少时留存的增加时的-养工失状态:(0空、1待办理、2自动办理中、3继续办理、4终止办理、5人工处理)
*/
@Length(max = 32, message = "减少时留存的增加时的-养工失状态 不能超过32个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-养工失状态", maxLength = 32)
@Schema(description = "减少时留存的增加时的-养工失状态:(0空、1待办理、2自动办理中、3继续办理、4终止办理、5人工处理、6成功。7提交成功)" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-养工失状态" )
private String addYgsHandleStatus;
/**
* 减少时留存的增加时的-医生大状态:(0空、1待办理、2自动办理中、3继续办理、4终止办理、5人工处理)
*/
@Length(max = 32, message = "减少时留存的增加时的-医生大状态 不能超过32个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-医生大状态", maxLength = 32)
@Schema(description = "减少时留存的增加时的-医生大状态:(0空、1待办理、2自动办理中、3继续办理、4终止办理、5人工处理、6成功。7提交成功)" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-医生大状态" )
private String addYsdHandleStatus;
/**
* 减少时留存的增加时的-养工失反馈
*/
@Length(max = 500, message = "减少时留存的增加时的-养工失反馈 不能超过500个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-养工失反馈", maxLength = 500)
@Schema(description = "减少时留存的增加时的-养工失反馈" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-养工失反馈" )
private String addYgsRemark;
/**
* 减少时留存的增加时的-医生大反馈
*/
@Length(max = 500, message = "减少时留存的增加时的-医生大反馈 不能超过500个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-医生大反馈", maxLength = 500)
@Schema(description = "减少时留存的增加时的-医生大反馈" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-医生大反馈" )
private String addYsdRemark;
/**
* 减少时留存的增加时的-养工失税友的任务ID
*/
@Length(max = 50, message = "减少时留存的增加时的-养工失税友的任务ID 不能超过50个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-养工失税友的任务ID", maxLength = 50)
@Schema(description = "减少时留存的增加时的-养工失税友的任务ID" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-养工失税友的任务ID" )
private String addYgsRequestId;
/**
* 减少时留存的增加时的-医生大税友的任务ID
*/
@Length(max = 50, message = "减少时留存的增加时的-医生大税友的任务ID 不能超过50个字符" )
@ExcelAttribute(name = "减少时留存的增加时的-医生大税友的任务ID", maxLength = 50)
@Schema(description = "减少时留存的增加时的-医生大税友的任务ID" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("减少时留存的增加时的-医生大税友的任务ID" )
private String addYsdRequestId;
// 以上是转为自动化办理查询使用的
// 派单id,社保士兵使用
@TableField(exist = false)
private String dispatchId;
......
......@@ -70,4 +70,12 @@ public class FundImportHandleVo extends RowIndex implements Serializable {
@ExcelProperty("失败类型" )
private String reasonType;
/**
* 派单类型 0 派增 1 派减
*/
@ExcelAttribute(name = "派单类型",isNotEmpty = true,isDataId = true,readConverterExp = "0=派增,1=派减",errorInfo = "派单类型不可为空")
@Schema(description = "派单类型 0 派增 1 派减" )
@ExcelProperty("派单类型" )
private String type;
}
......@@ -114,4 +114,12 @@ public class SocialImportHandleVo extends RowIndex implements Serializable {
@ExcelProperty("失败类型" )
private String reasonType;
/**
* 派单类型 0 派增 1 派减
*/
@ExcelAttribute(name = "派单类型",isNotEmpty = true,isDataId = true,readConverterExp = "0=派增,1=派减",errorInfo = "派单类型不可为空")
@Schema(description = "派单类型 0 派增 1 派减" )
@ExcelProperty("派单类型" )
private String type;
}
......@@ -507,7 +507,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
* 委托备注
*/
@Length(max = 100, message = "委托备注 不能超过100 个字符" )
@ExcelAttribute(name = "委托备注", maxLength = 100)
@ExcelAttribute(name = "委托备注", maxLength = 100,isDataId = true,dataType = ExcelAttributeConstants.TRUST_REMARK_ADD,isConvert = false)
@Schema(description = "委托备注" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("委托备注" )
......
......@@ -104,7 +104,7 @@ public class TDispatchReduceVo extends RowIndex implements Serializable {
/**
* 委托备注
*/
@ExcelAttribute(name = "委托备注" , maxLength = 200)
@ExcelAttribute(name = "委托备注" , maxLength = 200,isDataId = true,dataType = ExcelAttributeConstants.TRUST_REMARK_REDUCE,isConvert = false)
@Schema(description = "委托备注" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("委托备注" )
......
......@@ -52,7 +52,7 @@ public class FileUploadController {
@Operation(description = "OSS文件上传接口" +
"@ApiImplicitParam(name = \"file\", value = \"Form文件上传\", required = true, dataType = \"__file\", paramType = \"form\"),\n" +
"\t\t\t@ApiImplicitParam(name = \"filePath\", value = \"文件上传路径\", required = false, dataType = \"String\", paramType = \"form\"),\n" +
"\t\t\t@ApiImplicitParam(name = \"type\", value = \"关系类型(0员工附件-学历 1 员工附件-伤残 2.员工附件-职业 3.员工附件-不良记录 4.员工附件-合同;5收入证明)\", required = true, dataType = \"int\", paramType = \"form\"),\n" +
"\t\t\t@ApiImplicitParam(name = \"type\", value = \"关系类型(1户配置的章;2:派单审核附件,税友单个使用)\", required = true, dataType = \"int\", paramType = \"form\"),\n" +
"\t\t\t@ApiImplicitParam(name = \"domain\", value = \"实体id(传入就插入对应关系,用于编辑)\", required = false, paramType = \"form\")\n" +
"\t")
/*@ApiImplicitParams({
......@@ -161,4 +161,32 @@ public class FileUploadController {
}
return R.ok(voList);
}
/**
* @param domainId 关联id
* @param type 类型
* @Description: 获取社保服务的附件信息
* @Author: hgw
* @Date: 2025/4/28 14:12
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryAttaVo>>
**/
@Operation(summary = "获取社保服务的附件信息", description = "获取社保服务的附件信息")
@SysLog("获取社保服务的附件信息")
@GetMapping("/getAttaListByIdAndType")
public R<List<TAttaInfo>> getAttaListByIdAndType(@RequestParam String domainId, @RequestParam String type) {
List<TAttaInfo> attaList = tAttaInfoService.list(Wrappers.<TAttaInfo>query().lambda()
.eq(TAttaInfo::getRelationType, type)
.eq(TAttaInfo::getDomainId, domainId));
if (attaList != null && !attaList.isEmpty()) {
URL url;
for (TAttaInfo a : attaList) {
url = ossUtil.getObjectUrl(null, a.getAttaSrc());
if (url != null) {
a.setAttaUrl(url.toString());
}
}
}
return R.ok(attaList);
}
}
......@@ -257,4 +257,25 @@ public class SysHouseHoldInfoController {
sysHouseHoldInfoService.listExport(response,sysHouseHoldInfo);
}
/**
* @param type 0社保/1公积金
* @param name 户名
* @Description: 根据户名与户类型,返回户信息 type 0社保/1公积金 name 户名
* @Author: hgw
* @Date: 2025/4/28 10:08
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo>
**/
@GetMapping("/getHuByTypeAndName")
@Operation(summary = "获取所有的户名", description = "获取所有的户名")
public R<SysHouseHoldInfo> getHuByTypeAndName(@RequestParam String type, @RequestParam String name) {
SysHouseHoldInfo houseHold;
LambdaQueryWrapper<SysHouseHoldInfo> wrapper = Wrappers.lambdaQuery();
wrapper.eq(SysHouseHoldInfo::getDelFlag, CommonConstants.ZERO_STRING);
wrapper.eq(SysHouseHoldInfo::getType, type);
wrapper.eq(SysHouseHoldInfo::getName, name);
wrapper.last(CommonConstants.LAST_ONE_SQL);
houseHold = sysHouseHoldInfoService.getOne(wrapper);
return R.ok(houseHold);
}
}
......@@ -216,7 +216,7 @@ public class TDispatchInfoController {
* @Date: 2024/5/9 20:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.baomidou.mybatisplus.core.metadata.IPage < com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo>>
**/
@Operation(description = "简单分页查询--社保士兵列表")
@Operation(description = "简单分页查询--社保士兵办理列表")
@GetMapping("/pageSocialSoldier")
public R<IPage<TSocialSoldierPageVo>> pageSocialSoldier(Page<TSocialSoldierPageVo> page, SocialHandleSearchVo tDispatchInfo) {
tDispatchInfo.setDeleteFlag(CommonConstants.ZERO_STRING);
......@@ -229,6 +229,24 @@ public class TDispatchInfoController {
return new R<>(tDispatchInfoService.getTSocialSoldierHandlePage(page,tDispatchInfo));
}
/**
* @Description: 简单分页查询--自动化办理查询
* @Author: hgw
* @Date: 2025-4-27 17:58:29
**/
@Operation(description = "简单分页查询--自动化办理查询-按派单维度")
@GetMapping("/getPageSocialSoldierAll")
public R<IPage<TSocialSoldierPageVo>> getPageSocialSoldierAll(Page<TSocialSoldierPageVo> page, SocialHandleSearchVo tDispatchInfo) {
tDispatchInfo.setDeleteFlag(CommonConstants.ZERO_STRING);
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, tDispatchInfo);
if (Common.isNotNull(tDispatchInfo.getAuthSql()) && tDispatchInfo.getAuthSql().contains(CommonConstants.A_DEPT_ID)) {
tDispatchInfo.setAuthSql(tDispatchInfo.getAuthSql().replace(CommonConstants.A_DEPT_ID, "a.SETTLE_DOMAIN"));
}
tDispatchInfo.setCreateBy(user.getId());
return new R<>(tDispatchInfoService.getPageSocialSoldierAll(page,tDispatchInfo));
}
/**
* 简单分页查询--社保办理列表
* @param page 分页对象
......@@ -496,7 +514,8 @@ public class TDispatchInfoController {
public R<List<ErrorMessage>> addApplyAudit(@RequestBody List<String> idList,
@RequestParam(name = "auditStatus", required = true) String auditStatus,
@RequestParam(name = "auditRemark", required = false) String auditRemark,
@RequestParam(name = "remark", required = false) String remark) {
@RequestParam(name = "remark", required = false) String remark,
@RequestParam(name = "isSingleAudit", required = false) String isSingleAudit) {
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
return R.failed(CommonConstants.USER_FAIL);
......@@ -625,6 +644,27 @@ public class TDispatchInfoController {
tDispatchInfoService.doExportSocialSoldier(response,searchVo,searchVo.getIdStr(),null);
}
/**
* @Author hgw
* @Description 自动化办理查询导出
* @Date 2025-4-25 18:23:59
* @Param
**/
@PostMapping("/doExportSocialSoldierAll")
@Operation(description = "自动化办理查询导出")
@SysLog("自动化办理查询导出")
public void doExportSocialSoldierAll(HttpServletResponse response, HttpServletRequest request,
@RequestBody SocialHandleSearchVo searchVo) {
searchVo.setDeleteFlag(CommonConstants.ZERO_STRING);
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, searchVo);
if (Common.isNotNull(searchVo.getAuthSql()) && searchVo.getAuthSql().contains(CommonConstants.A_DEPT_ID)) {
searchVo.setAuthSql(searchVo.getAuthSql().replace(CommonConstants.A_DEPT_ID, "a.SETTLE_DOMAIN"));
}
searchVo.setCreateBy(user.getId());
tDispatchInfoService.doExportSocialSoldierAll(response,searchVo,searchVo.getIdStr(),null);
}
/**
* @Author fxj
* @Description 导出 社保花名册
......
......@@ -59,7 +59,7 @@ public class TSocialInfoController {
private final TSocialSoldierService tSocialSoldierService;
/**
* 简单分页查询
* @param page 分页对象
......@@ -189,7 +189,7 @@ public class TSocialInfoController {
/**
* @param id
* @param isSocial 1 社保 2 医保
* @param isSocial 1 社保 2 医保 3 全部
* @Description:
* @Author: hgw
* @Date: 2024/8/1 18:12
......@@ -202,39 +202,61 @@ public class TSocialInfoController {
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
TSocialInfo socialInfo = tSocialInfoService.getById(id);
if (socialInfo == null || Common.isEmpty(socialInfo.getId())) {
return R.failed("未找到社保");
return tSocialInfoService.doRenGong(id, isSocial, user);
}
/**
* @param idList
* @param isSocial 1 社保 2 医保 3 全部
* @Description: 转人工-批量
* @Author: hgw
* @Date: 2024/8/1 18:12
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "转人工-批量", description = "转人工-批量")
@PostMapping("/doRenGongBatch" )
public R<String> doRenGongBatch(@RequestBody List<String> idList, @RequestParam String isSocial) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
String handleRemark;
if (CommonConstants.ZERO_STRING.equals(socialInfo.getDispatchType())) {
handleRemark = "派增";
} else {
handleRemark = "派减";
return tSocialInfoService.doRenGongBatch(idList, isSocial, user);
}
/**
* @param id
* @param isSocial 1 社保 2 医保 3 全部
* @Description:
* @Author: hgw
* @Date: 2024/8/1 18:12
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "转自动化", description = "转自动化")
@GetMapping("/doAuto" )
public R<String> doAuto(@RequestParam String id, @RequestParam String isSocial) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
if (CommonConstants.ONE_STRING.equals(isSocial) && Common.isNotNull(socialInfo.getYgsHandleStatus())) {
if (CommonConstants.ZERO_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.SIX_STRING.equals(socialInfo.getYgsHandleStatus())) {
return R.failed("当前养老工伤失业-办理状态不可以转人工!");
}
socialInfo.setYgsHandleStatus(CommonConstants.FIVE_STRING);
tSocialInfoService.updateById(socialInfo);
handleRemark += "养老、工伤、失业手动转人工";
} else if (CommonConstants.TWO_STRING.equals(isSocial) && Common.isNotNull(socialInfo.getYsdHandleStatus())) {
if (CommonConstants.ZERO_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.SIX_STRING.equals(socialInfo.getYsdHandleStatus())) {
return R.failed("当前医疗生育大病-办理状态不可以转人工!");
}
socialInfo.setYsdHandleStatus(CommonConstants.FIVE_STRING);
tSocialInfoService.updateById(socialInfo);
handleRemark += "医疗、生育、大病手动转人工";
return tSocialInfoService.doAuto(id, isSocial, user);
}
/**
* @param idList
* @param isSocial 1 社保 2 医保 3 全部
* @Description: 转人工-批量
* @Author: hgw
* @Date: 2024/8/1 18:12
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "转自动化-批量", description = "转自动化-批量")
@PostMapping("/doAutoBatch" )
public R<String> doAutoBatch(@RequestBody List<String> idList, @RequestParam String isSocial) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
// 加记录
tSocialSoldierService.doSocialTAuditInfo(socialInfo, handleRemark, handleRemark, handleRemark, user);
return R.ok("成功!");
return tSocialInfoService.doAutoBatch(idList, isSocial, user);
}
}
......@@ -105,6 +105,17 @@ public interface TDispatchInfoMapper extends BaseMapper<TDispatchInfo> {
int getSocialSoldierCount(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("idsStr") List<String> idsStr);
/**
* 自动化办理查询导出
**/
List<SocialSoldierExportVo> getSocialSoldierAllList(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("idsStr") List<String> idsStr);
/**
* 导出社保士兵count
**/
int getSocialSoldierAllCount(@Param("tDispatchInfo") SocialHandleSearchVo dispatchInfo,
@Param("idsStr") List<String> idsStr);
/**
* @Description: 社保士兵列表查询
* @Author: hgw
......@@ -115,6 +126,16 @@ public interface TDispatchInfoMapper extends BaseMapper<TDispatchInfo> {
@Param("tDispatchInfo") SocialHandleSearchVo tDispatchInfo,
@Param("idsStr") List<String> idsStr);
/**
* @Description: 社保士兵列表查询
* @Author: hgw
* @Date: 2024/5/10 11:50
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo>
**/
IPage<TSocialSoldierPageVo> getPageSocialSoldierAll(Page<TSocialSoldierPageVo> page,
@Param("tDispatchInfo") SocialHandleSearchVo tDispatchInfo,
@Param("idsStr") List<String> idsStr);
/**
* 社保页面查询
* @Author fxj
......
......@@ -22,7 +22,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.social.entity.TAuditInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TAuditInfoSearchVo;
import javax.servlet.http.HttpServletResponse;
......@@ -48,4 +50,13 @@ public interface TAuditInfoService extends IService<TAuditInfo> {
void listExport(HttpServletResponse response, TAuditInfoSearchVo searchVo);
List<TAuditInfo> noPageDiy(TAuditInfoSearchVo searchVo);
/**
* @Description: 加审核日志
* @Author: hgw
* @Date: 2025/4/27 10:49
* @return: void
**/
void doSaveAuditInfo(TSocialInfo social, String title, String handleRemark, String remark, YifuUser user, String auditStatus);
}
......@@ -97,16 +97,33 @@ public interface TDispatchInfoService extends IService<TDispatchInfo> {
* @return: void
**/
void doExportSocialSoldier(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields);
/**
* @Description: 自动化办理查询导出
* @Author: hgw
* @Date: 2025/4/25 18:28
* @return: void
**/
void doExportSocialSoldierAll(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields);
void doexportSocialRecordRoster(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields);
/**
* @Description: 社保士兵列表查询
* @Description: 社保士兵办理列表查询
* @Author: hgw
* @Date: 2024/5/10 11:51
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo>
**/
IPage<TSocialSoldierPageVo> getTSocialSoldierHandlePage(Page<TSocialSoldierPageVo> page, SocialHandleSearchVo tDispatchInfo);
/**
* @param page
* @param tDispatchInfo
* @Description: 社保士兵查询列表——按派单维度
* @Author: hgw
* @Date: 2025/4/25 18:07
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.social.vo.TSocialSoldierPageVo>
**/
IPage<TSocialSoldierPageVo> getPageSocialSoldierAll(Page<TSocialSoldierPageVo> page, SocialHandleSearchVo tDispatchInfo);
IPage<TDispatchInfo> getTDispatchSocialHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo);
IPage<TDispatchInfo> getTDispatchFundHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo);
......
......@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.SocialAddAndReduceVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialInfoSearchVo;
......@@ -87,4 +88,48 @@ public interface TSocialInfoService extends IService<TSocialInfo> {
**/
List<TSocialInfo> getSocialSoldierByAddId(String addId);
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 批量转人工
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> doRenGongBatch(List<String> idList, String isSocial, YifuUser user);
/**
* @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 转人工
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> doRenGong(String id, String isSocial, YifuUser user);
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 批量转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> doAutoBatch(List<String> idList, String isSocial, YifuUser user);
/**
* @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> doAuto(String id, String isSocial, YifuUser user);
}
......@@ -32,7 +32,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.social.entity.TAuditInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TAuditInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TAuditInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TAuditInfoSearchVo;
......@@ -46,6 +48,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -243,4 +246,29 @@ public class TAuditInfoServiceImpl extends ServiceImpl<TAuditInfoMapper, TAuditI
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
/**
* @Description: 加审核日志
* @Author: hgw
* @Date: 2025/4/27 10:49
* @return: void
**/
@Override
public void doSaveAuditInfo(TSocialInfo social, String title, String handleRemark, String remark, YifuUser user, String auditStatus) {
TAuditInfo auditInfo = new TAuditInfo();
auditInfo.setType(CommonConstants.ONE_STRING);
auditInfo.setId(null);
auditInfo.setAuditStatus(auditStatus);
auditInfo.setAuditRemark(handleRemark);
auditInfo.setTitle(title);
auditInfo.setOrganName(user.getDeptName());
auditInfo.setAuditUser(user.getNickname());
auditInfo.setAuditTime(new Date());
auditInfo.setRemark(remark);
auditInfo.setIsCommision(CommonConstants.ONE_STRING);
auditInfo.setDispatchInfoId(social.getDispatchId());
auditInfo.setEmpIdcard(social.getEmpIdcard());
auditInfo.setSocialId(social.getId());
this.save(auditInfo);
}
}
......@@ -3593,6 +3593,14 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
//自动化处理,如果未配置还是人工处理
if (CommonConstants.THREE_STRING.equals(auditStatus)){
// 初始化之前,保留原状态给 自动化办理查询使用 hgw 2025-4-27 17:37:09
socialInfo.setAddYgsHandleStatus(socialInfo.getYgsHandleStatus());
socialInfo.setAddYsdHandleStatus(socialInfo.getYsdHandleStatus());
socialInfo.setAddYgsRequestId(socialInfo.getYgsRequestId());
socialInfo.setAddYsdRequestId(socialInfo.getYsdRequestId());
socialInfo.setAddYgsRemark(socialInfo.getYgsRemark());
socialInfo.setAddYsdRemark(socialInfo.getYsdRemark());
if ((CommonConstants.ZERO_STRING.equals(socialInfo.getPensionHandle())
||CommonConstants.FIVE_STRING.equals(socialInfo.getPensionHandle())
||CommonConstants.ZERO_STRING.equals(socialInfo.getWorkInjuryHandle())
......@@ -5272,6 +5280,31 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
/**
* @Author hgw
* @Description 自动化办理查询导出 count
* @Date 2024-5-13 11:30:12
* @Param
* @return
**/
private int getSocialSoldierAllCount(SocialHandleSearchVo searchVo, String idStr) {
List<String> ids = new ArrayList<>();
if (Common.isNotNull(idStr)){
ids = Common.initStrToList(idStr,CommonConstants.COMMA_STRING);
}
return baseMapper.getSocialSoldierAllCount(searchVo,ids);
}
/**
* @Description: 自动化办理查询导出
* @Author: hgw
* @Date: 2025/4/25 18:33
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.social.vo.SocialSoldierExportVo>
**/
private List<SocialSoldierExportVo> getSocialSoldierAllList(SocialHandleSearchVo searchVo, String idStr) {
return baseMapper.getSocialSoldierAllList(searchVo,Common.getList(idStr));
}
/**
* @Author hgw
* @Description 社保士兵导出 count
......@@ -5335,7 +5368,74 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(list)){
list.clear();
}
updateSocialRecords(searchVo,idStr);
}
excelWriter.finish();
}else {
WriteSheet writeSheet = EasyExcelFactory.writerSheet(DispatchConstants.SOCIAL_SOLDIER_EXPORT+index).build();
excelWriter.write(list,writeSheet);
excelWriter.finish();
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
/**
* @Author hgw
* @Description 自动化办理查询导出
* @Date 2025-4-25 18:29:18
* @Param
* @return
**/
@Override
public void doExportSocialSoldierAll(HttpServletResponse response, SocialHandleSearchVo searchVo, String idStr, String[] exportFields) {
String fileName = DispatchConstants.SOCIAL_SOLDIER_EXPORT_ALL + DateUtil.getThisTime() + CommonConstants.XLSX;
//获取要导出的列表
List<SocialSoldierExportVo> list = new ArrayList<>();
long count = getSocialSoldierAllCount(searchVo,idStr);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcelFactory.write(out, SocialSoldierExportVo.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
WriteSheet writeSheet;
ExcelUtil<SocialSoldierExportVo> util;
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = getSocialSoldierAllList(searchVo,idStr);
if (Common.isNotNull(list)){
util = new ExcelUtil<>(SocialSoldierExportVo.class);
for (SocialSoldierExportVo vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
writeSheet = EasyExcelFactory.writerSheet(DispatchConstants.SOCIAL_SOLDIER_EXPORT+index).build();
excelWriter.write(list,writeSheet);
index++;
i += CommonConstants.EXCEL_EXPORT_LIMIT;
}
if (Common.isNotNull(list)){
list.clear();
}
}
excelWriter.finish();
}else {
......@@ -5464,6 +5564,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return baseMapper.getTSocialSoldierHandlePage(page,tDispatchInfo,null);
}
@Override
public IPage<TSocialSoldierPageVo> getPageSocialSoldierAll(Page<TSocialSoldierPageVo> page, SocialHandleSearchVo tDispatchInfo) {
return baseMapper.getPageSocialSoldierAll(page,tDispatchInfo,null);
}
@Override
public IPage<TDispatchInfo> getTDispatchSocialHandlePage(Page<TDispatchInfo> page, SocialHandleSearchVo tDispatchInfo) {
return baseMapper.getTDispatchSocialHandlePage(page,tDispatchInfo,null);
......@@ -6202,7 +6307,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
handleStatus = CommonConstants.TWO_STRING;
}
dispatch = dispatchMap.get(excel.getEmpIdcard());
if (Common.isEmpty(dispatch)) {
//批量办理增加派单类型 fxj 2025-04-24 V1.7.10
if (Common.isEmpty(dispatch) || !excel.getType().equals(dispatch.getType())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.FUND_IMPORT_HANDLE_NOT_EXITS),excel));
continue;
}
......@@ -6368,7 +6474,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
dispatch = dispatchMap.get(excel.getEmpIdcard());
if (Common.isEmpty(dispatch)) {
//批量办理增加派单类型 fxj 2025-04-24 V1.7.10
if (Common.isEmpty(dispatch) || !excel.getType().equals(dispatch.getType())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.SOCIAL_IMPORT_HANDLE_NOT_EXITS), excel));
continue;
}
......
......@@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
......@@ -39,6 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.mapper.SysHouseHoldInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TDispatchInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TAuditInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.SocialAddAndReduceVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialInfoSearchVo;
......@@ -69,6 +71,8 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
private final SysHouseHoldInfoMapper sysHouseHoldInfoMapper;
private final TAuditInfoService tAuditInfoService;
/**
* 社保明细表简单分页查询
* @param tSocialInfo 社保明细表
......@@ -503,4 +507,204 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
return baseMapper.getSocialSoldierByAddId(addId);
}
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 批量转人工
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public R<String> doRenGongBatch(List<String> idList, String isSocial, YifuUser user) {
for (String id : idList) {
doRenGong(id, isSocial, user);
}
return R.ok("成功!");
}
/**
* @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 转人工
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public R<String> doRenGong(String id, String isSocial, YifuUser user) {
TSocialInfo socialInfo = this.getById(id);
if (socialInfo == null || Common.isEmpty(socialInfo.getId())) {
return R.failed("未找到社保");
} else {
TDispatchInfo disExist = dispatchInfoMapper.selectOne(Wrappers.<TDispatchInfo>query().lambda()
.eq(TDispatchInfo::getSocialId, id)
.eq(TDispatchInfo::getStatus, CommonConstants.TWO_STRING)
.orderByDesc(TDispatchInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
String handleRemark = "派增";
// 有可以转的项目,则可以转
boolean canUpdate = false;
if (disExist != null && CommonConstants.ONE_STRING.equals(disExist.getType())) {
handleRemark = "派减";
}
// 判断养工失转人工
if ((CommonConstants.ONE_STRING.equals(isSocial) || CommonConstants.THREE_STRING.equals(isSocial))
&& Common.isNotNull(socialInfo.getYgsHandleStatus())) {
if (CommonConstants.ZERO_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getYgsHandleStatus())
|| CommonConstants.SIX_STRING.equals(socialInfo.getYgsHandleStatus())) {
// 全部的,不反馈某一个失败
if (!CommonConstants.THREE_STRING.equals(isSocial)) {
return R.failed("当前养老工伤失业-办理状态不可以转人工!");
}
} else {
socialInfo.setYgsHandleStatus(CommonConstants.FIVE_STRING);
handleRemark += "养老、工伤、失业手动转人工;";
canUpdate = true;
}
}
// 判断医生大转人工
if ((CommonConstants.TWO_STRING.equals(isSocial) || CommonConstants.THREE_STRING.equals(isSocial))
&& Common.isNotNull(socialInfo.getYsdHandleStatus())) {
if (CommonConstants.ZERO_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.FOUR_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getYsdHandleStatus())
|| CommonConstants.SIX_STRING.equals(socialInfo.getYsdHandleStatus())) {
// 全部的,不反馈某一个失败
if (!CommonConstants.THREE_STRING.equals(isSocial)) {
return R.failed("当前医疗生育大病-办理状态不可以转人工!");
}
} else {
socialInfo.setYsdHandleStatus(CommonConstants.FIVE_STRING);
handleRemark += "医疗、生育、大病手动转人工";
canUpdate = true;
}
}
// 更新社保和加日志
return doUpdateCoreAndLog(user, socialInfo, handleRemark, canUpdate, disExist);
}
}
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 批量转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public R<String> doAutoBatch(List<String> idList, String isSocial, YifuUser user) {
for (String id : idList) {
doAuto(id, isSocial, user);
}
return R.ok("成功!");
}
/**
* @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部
* @param user 当前登录人
* @Description: 转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public R<String> doAuto(String id, String isSocial, YifuUser user) {
TSocialInfo socialInfo = this.getById(id);
if (socialInfo == null || Common.isEmpty(socialInfo.getId())) {
return R.failed("未找到社保");
} else {
TDispatchInfo disExist = dispatchInfoMapper.selectOne(Wrappers.<TDispatchInfo>query().lambda()
.eq(TDispatchInfo::getSocialId, id)
.eq(TDispatchInfo::getStatus, CommonConstants.TWO_STRING)
.orderByDesc(TDispatchInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
String handleRemark = "派增";
// 有可以转的项目,则可以转
boolean canUpdate = false;
if (disExist != null && CommonConstants.ONE_STRING.equals(disExist.getType())) {
handleRemark = "派减";
}
// 判断养工失转自动化
if ((CommonConstants.ONE_STRING.equals(isSocial) || CommonConstants.THREE_STRING.equals(isSocial))
&& Common.isNotNull(socialInfo.getYgsHandleStatus())
&& CommonConstants.FIVE_STRING.equals(socialInfo.getYgsHandleStatus())) {
// 养工失状态为待办理或派减待办理
if (CommonConstants.ZERO_STRING.equals(socialInfo.getPensionHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getPensionHandle())
|| CommonConstants.ZERO_STRING.equals(socialInfo.getWorkInjuryHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getWorkInjuryHandle())
|| CommonConstants.ZERO_STRING.equals(socialInfo.getUnemployHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getUnemployHandle())) {
socialInfo.setYgsHandleStatus(CommonConstants.ONE_STRING);
handleRemark += "养老、工伤、失业手动转自动化;";
canUpdate = true;
} else if (!CommonConstants.THREE_STRING.equals(isSocial)) {
// 全部的,不反馈某一个失败
return R.failed("当前养老工伤失业-办理状态不可以转自动化!");
}
}
// 判断医生大转自动化
if ((CommonConstants.TWO_STRING.equals(isSocial) || CommonConstants.THREE_STRING.equals(isSocial))
&& Common.isNotNull(socialInfo.getYsdHandleStatus())
&& CommonConstants.FIVE_STRING.equals(socialInfo.getYsdHandleStatus())) {
// 医生大状态为待办理或派减待办理
if (CommonConstants.ZERO_STRING.equals(socialInfo.getMedicalHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getMedicalHandle())
|| CommonConstants.ZERO_STRING.equals(socialInfo.getBirthHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getBirthHandle())
|| CommonConstants.ZERO_STRING.equals(socialInfo.getBigailmentHandle())
|| CommonConstants.FIVE_STRING.equals(socialInfo.getBigailmentHandle())) {
socialInfo.setYsdHandleStatus(CommonConstants.ONE_STRING);
handleRemark += "医疗、生育、大病手动转自动化";
canUpdate = true;
} else if (!CommonConstants.THREE_STRING.equals(isSocial)) {
// 全部的,不反馈某一个失败
return R.failed("当前医疗生育大病-办理状态不可以转自动化!");
}
}
// 更新社保和加日志
return doUpdateCoreAndLog(user, socialInfo, handleRemark, canUpdate, disExist);
}
}
/**
* @param user 当前登录人
* @param socialInfo 社保信息
* @param handleRemark 操作备注
* @param canUpdate 是否可以更新
* @Description: 更新社保和加日志
* @Author: hgw
* @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
private R<String> doUpdateCoreAndLog(YifuUser user, TSocialInfo socialInfo, String handleRemark
, boolean canUpdate, TDispatchInfo disExist) {
if (canUpdate) {
this.updateById(socialInfo);
if (disExist != null) {
socialInfo.setDispatchId(disExist.getId());
}
// 加流程进展明细
tAuditInfoService.doSaveAuditInfo(socialInfo, handleRemark, handleRemark, handleRemark, user
, CommonConstants.ONE_STRING);
return R.ok("成功");
} else {
if (Common.isNotNull(handleRemark) && handleRemark.length() > 2) {
return R.failed("【"+handleRemark+"】状态未变更,请刷新后查看列表状态!");
} else {
return R.failed("状态未变更,请刷新后查看列表状态!");
}
}
}
}
......@@ -56,6 +56,7 @@
<result property="mediclPassword" column="MEDICL_PASSWORD"/>
<result property="isSign" column="IS_SIGN"/>
<result property="customerNoYsd" column="CUSTOMER_NO_YSD"/>
<result property="isSingle" column="IS_SINGLE"/>
</resultMap>
<resultMap id="sysHouseHoldSingleInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo">
......@@ -97,7 +98,8 @@
a.SOCIAL_PASSWORD,
a.MEDICL_PASSWORD,
a.IS_SIGN,
a.CUSTOMER_NO_YSD
a.CUSTOMER_NO_YSD,
a.IS_SINGLE
</sql>
<sql id="sysHouseHoldInfo_where">
<if test="sysHouseHoldInfo != null">
......
......@@ -104,7 +104,7 @@
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
<result property="graduationTime" column="GRADUATION_TIME"/>
<result property="autoFlag" column="AUTO_FLAG"/>
<result property="isSingle" column="IS_SINGLE"/>
</resultMap>
<resultMap id="dispatchPageMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoPageVo" extends="tDispatchInfoMap">
......@@ -434,7 +434,7 @@
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME,
a.GRADUATION_TIME,a.AUTO_FLAG
a.GRADUATION_TIME,a.AUTO_FLAG,a.IS_SINGLE
</sql>
<sql id="tDispatchInfo_where">
<if test="tDispatchInfo != null">
......@@ -1358,6 +1358,75 @@
order by a.AUDIT_TIME desc
</select>
<!--tDispatchInfo 自动化办理查询导出-->
<select id="getSocialSoldierAllList" resultMap="socialSoldierExportMap">
SELECT
a.TYPE,
a.SOCIAL_HANDLE_STATUS,
if(ifnull(h.id,0) != '0',h.PENSION_HANDLE,s.PENSION_HANDLE) PENSION_HANDLE,
if(ifnull(h.id,0) != '0',h.MEDICAL_HANDLE,s.MEDICAL_HANDLE) MEDICAL_HANDLE,
if(ifnull(h.id,0) != '0',h.UNEMPLOY_HANDLE,s.UNEMPLOY_HANDLE) UNEMPLOY_HANDLE,
if(ifnull(h.id,0) != '0',h.WORK_INJURY_HANDLE,s.WORK_INJURY_HANDLE) WORK_INJURY_HANDLE,
if(ifnull(h.id,0) != '0',h.BIRTH_HANDLE,s.BIRTH_HANDLE) BIRTH_HANDLE,
if(ifnull(h.id,0) != '0',h.BIGAILMENT_HANDLE,s.BIGAILMENT_HANDLE) BIGAILMENT_HANDLE,
a.EMP_NAME,
a.EMP_IDCARD,
a.EDUCATION_NAME,
a.BELONG_UNIT_NAME,
a.SETTLE_DOMAIN_NAME,
a.EMP_TYPE,
a.POST,
a.EMP_MOBILE,
a.ID_CARD_ADDRESS,
a.EMP_REGIS_TYPE,
a.EMP_NATIONAL,
a.WORKING_HOURS,
a.CONTRACT_TERM,
a.CONTRACT_START,
a.CONTRACT_END,
a.CREATE_NAME,
a.CONTACT_ADDRESS,
s.RECORD_BASE,
s.PAYMENT_TYPE,
a.SOCIAL_HOUSEHOLD_NAME,
if(ifnull(h.id,0) != '0',h.SOCIAL_PROVINCE,s.SOCIAL_PROVINCE) SOCIAL_PROVINCE,
if(ifnull(h.id,0) != '0',h.SOCIAL_CITY,s.SOCIAL_CITY) SOCIAL_CITY,
if(ifnull(h.id,0) != '0',h.SOCIAL_TOWN,s.SOCIAL_TOWN) SOCIAL_TOWN,
if(ifnull(h.id,0) != '0',h.PENSION_START,s.PENSION_START) PENSION_START,
if(ifnull(h.id,0) != '0',h.UNIT_PENSION_CARDINAL,s.UNIT_PENSION_CARDINAL) UNIT_PENSION_CARDINAL,
if(ifnull(h.id,0) != '0',h.MEDICAL_START,s.MEDICAL_START) MEDICAL_START,
if(ifnull(h.id,0) != '0',h.UNIT_MEDICAL_CARDINAL,s.UNIT_MEDICAL_CARDINAL) UNIT_MEDICAL_CARDINAL,
if(ifnull(h.id,0) != '0',h.UNEMPLOY_START,s.UNEMPLOY_START) UNEMPLOY_START,
if(ifnull(h.id,0) != '0',h.UNIT_UNEMPLOYMENT_CARDINAL,s.UNIT_UNEMPLOYMENT_CARDINAL) UNIT_UNEMPLOYMENT_CARDINAL,
if(ifnull(h.id,0) != '0',h.WORK_INJURY_START,s.WORK_INJURY_START) WORK_INJURY_START,
if(ifnull(h.id,0) != '0',h.UNIT_WORK_INJURY_CARDINAL,s.UNIT_WORK_INJURY_CARDINAL) UNIT_WORK_INJURY_CARDINAL,
if(ifnull(h.id,0) != '0',h.BIRTH_START,s.BIRTH_START) BIRTH_START,
if(ifnull(h.id,0) != '0',h.UNIT_BIRTH_CARDINAL,s.UNIT_BIRTH_CARDINAL) UNIT_BIRTH_CARDINAL,
if(ifnull(h.id,0) != '0',h.BIGAILMENT_START,s.BIGAILMENT_START) BIGAILMENT_START,
if(ifnull(h.id,0) != '0',h.UNIT_BIGAILMENT_CARDINAL,s.UNIT_BIGAILMENT_CARDINAL) UNIT_BIGAILMENT_CARDINAL,
if(ifnull(h.id,0) != '0',h.UNIT_BIGAILMENT_MONEY,s.UNIT_BIGAILMENT_MONEY) UNIT_BIGAILMENT_MONEY,
if(ifnull(h.id,0) != '0',h.PERSONAL_BIGAILMENT_MONEY,s.PERSONAL_BIGAILMENT_MONEY) PERSONAL_BIGAILMENT_MONEY,
a.TRUST_REMARK,
a.REDUCE_REASON,
'1' as EXPORT_SOCIAL_FLAG,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME,
a.GRADUATION_TIME,
IF(a.LEAVE_DATE is not null,DATE_FORMAT(a.LEAVE_DATE,"%Y-%m-%d"),"") as "LEAVE_DATE"
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_ygs_Handle_Status, s.ygs_Handle_Status) ygs_Handle_Status
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_ysd_Handle_Status, s.ysd_Handle_Status) ysd_Handle_Status
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_YGS_REMARK, s.YGS_REMARK) YGS_REMARK
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_YSD_REMARK, s.YSD_REMARK) YSD_REMARK
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_YGS_REQUEST_ID, s.YGS_REQUEST_ID) YGS_REQUEST_ID
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_YSD_REQUEST_ID, s.YSD_REQUEST_ID) YSD_REQUEST_ID
FROM t_dispatch_info a
left join t_social_info s on a.SOCIAL_ID = s.id
left join t_dispatch_social_fund_info h on a.id = h.REDUCE_SOCIAL_FUND_ID
<include refid="where_getSocialSoldier"/>
order by a.AUDIT_TIME desc
</select>
<update id="updateSocialRecords">
update
t_dispatch_info a
......@@ -1395,6 +1464,20 @@
) a
</select>
<!-- 导出社保士兵count -->
<select id="getSocialSoldierAllCount" resultType="java.lang.Integer">
SELECT
count(1)
from (
SELECT
1
FROM t_dispatch_info a
left join t_social_info s on a.SOCIAL_ID = s.id
left join t_dispatch_social_fund_info h on a.id = h.REDUCE_SOCIAL_FUND_ID
<include refid="where_getSocialSoldier"/>
) a
</select>
<resultMap id="socialSoldierPageMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TSocialSoldierPageVo" extends="tDispatchInfoMap">
<result property="socialHouseholdName" column="SOCIAL_HOUSEHOLD_NAME"/>
<result property="ygsHandleStatus" column="YGS_HANDLE_STATUS"/>
......@@ -1499,6 +1582,102 @@
order by a.AUDIT_TIME desc
</select>
<!-- hgw 2025-4-25 18:09:12 自动化办理查询——派单维度 -->
<select id="getPageSocialSoldierAll" resultMap="socialSoldierPageMap">
SELECT
a.ID,
a.EMP_ID,
a.EMP_NAME,
a.EMP_NO,
a.EMP_IDCARD,
a.EMP_TYPE,
a.EMP_MOBILE,
a.EMP_NATIONAL,
a.STATUS,
a.TYPE,
a.SOCIAL_ID,
a.FUND_ID,
a.TYPE_SUB,
a.PROCESS_INST_ID,
a.SETTLE_DOMAIN,
a.DELETE_FLAG,
a.SOCIAL_REDUCE_DATE,
a.FUND_REDUCE_DATE,
a.LEAVE_DATE,
a.REDUCE_REASON,
a.REDUCE_REMARK,
a.BELONG_UNIT,
a.CURRENT_OPERATOR,
a.DISPATCH_ID_BAK,
a.CONTRACT_START,
a.CONTRACT_END,
a.CONTRACT_TERM,
a.EMP_REGIS_TYPE,
a.ENJOIN_DATE,
a.FILE_ADDR,
a.POST,
a.TRUST_REMARK,
a.FILE_PROVINCE,
a.FILE_CITY,
a.FILE_TOWN,
a.CONTRACT_TYPE,
a.SOCIAL_HANDLE_STATUS,
a.FUND_HANDLE_STATUS,
a.HANDLE_REMARK,
a.AUDIT_REMARK,
a.FUND_HANDLE_REMARK,
a.SOCIAL_HANDLE_REMARK,
a.SOCIAL_PROVINCE,
a.SOCIAL_CITY,
a.SOCIAL_TOWN,
a.FUND_PROVINCE,
a.FUND_CITY,
a.FUND_TOWN,
a.AUDIT_USER,
a.AUDIT_USER_NAME,
a.AUDIT_TIME,
a.WORKING_HOURS,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_TIME,
a.ORGAN_NAME,
a.DISPATCH_ITEM,
a.SETTLE_DOMAIN_NAME,
a.BELONG_UNIT_NAME,
a.DISPATCH_CODE,
a.AGAIN_DISPATCH_CODE,
a.SETTLE_DOMAIN_CODE,
a.CONTRACT_SUB_NAME,
a.CONTRACT_ID,
a.EDUCATION_NAME,
a.TRY_PERIOD,
a.ID_CARD_PROVINCE,
a.ID_CARD_CITY,
a.ID_CARD_TOWN,
a.ID_CARD_ADDRESS,
a.APPLY_NO,
a.ORDER_ID,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME,
a.GRADUATION_TIME,a.AUTO_FLAG
,a.SOCIAL_HOUSEHOLD_NAME
,s.YGS_REMARK_OLD,s.YSD_REMARK_OLD
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_ygs_Handle_Status, s.ygs_Handle_Status) ygs_Handle_Status
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_ysd_Handle_Status, s.ysd_Handle_Status) ysd_Handle_Status
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_YGS_REMARK, s.YGS_REMARK) YGS_REMARK
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_YSD_REMARK, s.YSD_REMARK) YSD_REMARK
,if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_YGS_REQUEST_ID, s.YGS_REQUEST_ID) YGS_REQUEST_ID
,if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_YSD_REQUEST_ID, s.YSD_REQUEST_ID) YSD_REQUEST_ID
FROM t_dispatch_info a
left join t_social_info s on a.SOCIAL_ID = s.id
left join t_dispatch_social_fund_info h on a.id = h.REDUCE_SOCIAL_FUND_ID
<include refid="where_getSocialSoldier"/>
order by a.AUDIT_TIME desc
</select>
<!--tDispatchInfo 社保办理数据查询-->
<select id="getTDispatchSocialHandlePage" resultMap="dispatchPageMap">
SELECT
......@@ -1951,6 +2130,9 @@
</foreach>
</if>
<if test="tDispatchInfo != null">
<if test="tDispatchInfo.trustRemark != null and tDispatchInfo.trustRemark.trim() != ''">
AND a.TRUST_REMARK = #{tDispatchInfo.trustRemark}
</if>
<if test="tDispatchInfo.empTypeList != null and tDispatchInfo.empTypeList.length>0">
AND a.EMP_TYPE IN
<foreach collection="tDispatchInfo.empTypeList" item="item" index="index" open="(" separator="," close=")">
......@@ -2058,6 +2240,9 @@
</foreach>
</if>
<if test="tDispatchInfo != null">
<if test="tDispatchInfo.trustRemark != null and tDispatchInfo.trustRemark.trim() != ''">
AND a.TRUST_REMARK = #{tDispatchInfo.trustRemark}
</if>
<if test="tDispatchInfo.dispatchItems != null and tDispatchInfo.dispatchItems.size >0">
AND
<foreach item="item" index="index" collection="tDispatchInfo.dispatchItems" open="(" separator="or" close=")">
......@@ -2181,6 +2366,9 @@
<if test="tDispatchInfo != null">
<if test="tDispatchInfo.trustRemark != null and tDispatchInfo.trustRemark.trim() != ''">
AND a.TRUST_REMARK = #{tDispatchInfo.trustRemark}
</if>
<if test="tDispatchInfo.dispatchItems != null and tDispatchInfo.dispatchItems.size >0">
AND
<foreach item="item" index="index" collection="tDispatchInfo.dispatchItems" open="(" separator="or" close=")">
......
......@@ -528,8 +528,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
List<String> list2 = list.stream().map(PersonVo::getUid).collect(Collectors.toList());
List<String> collect = list1.stream().filter(s -> !list2.contains(s)
).collect(Collectors.toList());
log.error("要重置为不可用的用户列表:" + collect);
if (!collect.isEmpty()) {
log.error("要重置为不可用的用户列表:" + collect);
LambdaUpdateWrapper<SysUser> settleUpdate = new LambdaUpdateWrapper<>();
settleUpdate.in(SysUser::getUsername, collect)
.set(SysUser::getDelFlag, CommonConstants.ONE_STRING);
......
......@@ -26,7 +26,8 @@ mybatis-plus:
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
# 放开日志-hgw-2025-04-23
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# spring security 配置
security:
oauth2:
......
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