Commit d80cf2ae authored by huyuchen's avatar huyuchen

Merge branch 'MVP1.5.5' into develop

parents a09a352f 616d01d4
......@@ -7,7 +7,7 @@ spec: # 资源规范字段
selector: # 选择器
matchLabels: # 匹配标签
app: yifu-archives
replicas: 2 # 声明副本数目
replicas: 1 # 声明副本数目
#revisionHistoryLimit: 3 # 保留历史版本
#strategy: # 策略
# rollingUpdate: # 滚动更新
......
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("feed_back_detail")
public class FeedBackDetail implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
* 反馈人
*/
@Schema(description ="反馈人")
private String feedbackPerson;
/**
* 反馈时间
*/
@Schema(description ="反馈时间")
private Date feedbackTime;
/**
* 反馈原因
*/
@Schema(description ="反馈原因")
private String feedbackReason;
/**
* 反馈详情
*/
@Schema(description ="反馈详情")
private String feedbackDetail;
/**
* 续签代办表关联主键
*/
@Schema(description ="续签代办表关联主键")
private String contractAlertId;
/**
* 续签代办表关联主键
*/
@Schema(description ="申请编号")
private String applyNo;
@Schema(description ="是否反馈")
private Integer isFeedback;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -269,9 +269,59 @@ public class TEmpContractAlert extends BaseEntity {
private String empPhone;
/**
* 是否反馈
*/
@ExcelAttribute(name = "是否反馈" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否反馈")
@Schema(description = "是否反馈")
private Integer isFeedback;
/**
* 反馈原因
*/
@ExcelAttribute(name = "未续签原因" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("未续签原因")
@Schema(description = "未续签原因")
private String feedbackReason;
/**
* 详情
*/
@ExcelAttribute(name = "具体描述信息" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("具体描述信息")
@Schema(description = "具体描述信息")
private String feedbackDetail;
/**
* 反馈人
*/
@ExcelAttribute(name = "反馈人" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("反馈人")
@Schema(description = "反馈人")
private String feedbackPerson;
/**
* 反馈时间
*/
@ExcelAttribute(name = "反馈时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("反馈时间")
@Schema(description = "反馈时间")
private Date feedbackTime;
/**
* 合同截止日期
*/
@TableField(exist = false)
private Date auditTime;
@Schema(description = "申请编码")
private String applyNo;
}
......@@ -130,6 +130,13 @@ public class TEmployeeContractInfo extends BaseEntity {
@ExcelAttribute(name = "客户名称", maxLength = 128)
@Schema(description = "客户名称", name = "subjectUnit")
private String subjectUnit;
/**
* 0 是 1 否
*/
@Length(max = 1, message = "是否同步终止合同、减项、减档不能超过1个字符")
@ExcelAttribute(name = "是否同步终止合同、减项、减档", maxLength = 1)
@Schema(description = "是否同步终止合同、减项、减档", name = "changeContractAndEmployee")
private String changeContractAndEmployee;
/**
* 签订类型(字典也是汉字
*/
......
......@@ -511,5 +511,14 @@ public class TSettleDomain extends BaseEntity {
@ExcelIgnore
@TableField(exist = false)
private String serviceTeam;
/**
* 条线类型
*/
@Schema(description = "条线类型")
private String lineType;
/**
* BU归属
*/
@Schema(description = "BU归属")
private String buBelong;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
@Data
@TableName("t_work_handler_info")
@EqualsAndHashCode()
@Schema(description = "任务处理清单表")
public class TWorkHandlerInfo {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 32)
@NotBlank(message = "项目编码不能为空")
@Length(max = 32, message = "项目编码不能超过32个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String departNo;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", isNotEmpty = true, errorInfo = "项目名称不能为空", maxLength = 50)
@NotBlank(message = "项目名称不能为空")
@Length(max = 50, message = "项目名称不能超过50个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String departName;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 32)
@Length(max = 32, message = "员工姓名不能超过32个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", maxLength = 32)
@Length(max = 32, message = "员工身份证不能超过32个字符")
@ExcelProperty("员工身份证")
@Schema(description = "员工身份证")
private String empIdcard;
/**
* 是否删除(0否/1是)
*/
@ExcelAttribute(name = "是否删除", isExport = false)
@Schema(description = "是否删除(0否/1是)")
private String deleteFlag;
/**
* 联动端口
*/
@ExcelAttribute(name = "联动端口", maxLength = 8)
@Length(max = 8, message = "联动端口不能超过8个字符")
@ExcelProperty("联动端口")
@Schema(description = "联动端口")
private String infoFrom;
/**
* 操作人
*/
@ExcelAttribute(name = "操作人", maxLength = 32)
@Length(max = 32, message = "操作人不能超过32个字符")
@ExcelProperty("操作人")
@Schema(description = "操作人")
private String operUser;
/**
* 操作时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "操作时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("操作时间")
private LocalDateTime operTime;
/**
* 执行结果
*/
@ExcelAttribute(name = "执行结果", readConverterExp = "0=未执行,1=部分成功,2=全部成功")
@Length(max = 5, message = "执行结果不能超过5个字符")
@ExcelProperty("执行结果")
@Schema(description = "执行结果")
private String operResult;
/**
* 执行详情
*/
@ExcelAttribute(name = "执行详情", maxLength = 255)
@Length(max = 255, message = "执行详情不能超过255个字符")
@ExcelProperty("执行详情")
@Schema(description = "执行详情")
private String operInfo;
/**
* 原因
*/
@ExcelAttribute(name = "原因", maxLength = 255)
@Length(max = 255, message = "原因不能超过255个字符")
@ExcelProperty("原因")
@Schema(description = "原因")
private String reason;
/**
* 明细id
*/
@ExcelAttribute(name = "明细id",isExport = false)
@Schema(description = "明细id")
private String detailId;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Set;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
@Data
public class TWorkHandlerInfoSearchVo extends TWorkHandlerInfo {
@Schema(description = "导出的表头的Set")
private Set<String> exportFields;
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
/**
* 开始日期
*/
@Schema(description = "开始日期")
private String startTime;
/**
* 结束日期
*/
@Schema(description = "结束日期")
private String endTime;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
@Data
public class ChangeFeedBackAllVo {
private String [] ids;
/**
* 是否反馈
*/
private Integer isFeedback;
/**
* 反馈原因
*/
@Schema(description = "未续签原因")
private String feedbackReason;
/**
* 详情
*/
@Schema(description = "具体描述信息")
private String feedbackDetail;
/**
* 反馈人
*/
@Schema(description = "反馈人")
private String feedbackPerson;
/**
* 反馈时间
*/
@Schema(description = "反馈时间")
private Date feedbackTime;
@Schema(description = "申请编号")
private String applyNo;
}
......@@ -198,4 +198,9 @@ public class DispatchEmpVo implements Serializable {
@Schema(description ="项目状态(0正常;1已减项)")
private Integer projectStatus;
/**
* 通信地址
*/
private String contactAddress;
}
......@@ -161,4 +161,11 @@ public class EmpAddDispatchVo extends TEmployeeInfo {
@Schema(description = "是否删除 0否/1是")
private String deleteFlag;
/**
* 通信地址
*/
@Schema(description = "通信地址")
private String contactAddress;
}
......@@ -191,6 +191,18 @@ public class EmployeeContractExportVO implements Serializable {
@Schema(description = "审核状态")
private String auditStatus;
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelAttribute(name = "不通过原因")
@Schema(description = "不通过原因")
@ExcelProperty("不通过原因")
private String noPassReason;
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelAttribute(name = "审核说明")
@Schema(description = "审核说明")
@ExcelProperty("审核说明")
private String remark;
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同状态")
@ExcelAttribute(name = "合同状态", readConverterExp = "0=可用,1=不可用")
......@@ -239,6 +251,11 @@ public class EmployeeContractExportVO implements Serializable {
@ExcelProperty("创建人")
private String createName;
@ExcelAttribute(name = "审核人")
@ExcelProperty("审核人")
@Schema(description = "审核人")
private String auditUserName;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
......@@ -268,4 +285,5 @@ public class EmployeeContractExportVO implements Serializable {
@Schema(description = "导出的表头的Set")
private Set<String> exportFields;
}
......@@ -185,4 +185,12 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelAttribute(name = "备注", maxLength = 200)
@Schema(description = "备注", name = "remark")
private String remark;
/**
* 0 是 1 否
*/
@Length(max = 1, message = "是否同步终止合同、减项、减档不能超过1个字符")
@ExcelAttribute(name = "是否同步终止合同、减项、减档", maxLength = 1,readConverterExp = "0=是,1=否")
@Schema(description = "是否同步终止合同、减项、减档", name = "changeContractAndEmployee")
private String changeContractAndEmployee;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Author huyc
* @Date 2023/6/25
* @Description
*/
@Data
public class InsertWorkHandlerVo implements Serializable {
/**
* 项目编码
*/
String departNo;
/**
* 项目名称
*/
String departName;
/**
* 员工姓名
*/
private String empName;
/**
* 员工身份证
*/
String empIdcard;
/**
* 操作人
*/
String operUser;
/**
* 明细id
*/
String detailId;
}
......@@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author fxj
......@@ -52,5 +53,21 @@ public class TPersonnelRosterSearchVo extends TPersonnelRoster {
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
/**
* @Author fxj
* 业务类型
**/
private List<String> businessTypes;
/**
* @Author fxj
* BU归属
**/
private List<String> buBelongs;
/**
* @Author fxj
* 员工类型
**/
private List<String> empTypes;
}
......@@ -350,20 +350,12 @@ public class TPersonnelRosterVo extends RowIndex implements Serializable {
@ExcelProperty("合同创建时间")
private String contractCreateTime;
/**
* 数据生
* 数据生
*/
@Length(max = 10, message = "数据生月 不能超过10 个字符")
@ExcelAttribute(name = "数据生月", maxLength = 10)
@Schema(description = "数据生月")
@ExcelProperty("数据生月")
@Length(max = 10, message = "数据生月 不能超过10 个字符")
@ExcelAttribute(name = "数据生月", maxLength = 10)
@Schema(description = "数据生月")
@ExcelProperty("数据生月")
private String dataCreateMonth;
/**
* dataCreateMomth
*/
@Length(max = 255, message = "dataCreateMomth 不能超过255 个字符")
@ExcelAttribute(name = "dataCreateMomth", maxLength = 255)
@Schema(description = "dataCreateMomth")
@ExcelProperty("dataCreateMomth")
private String dataCreateMomth;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.DecimalMax;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -440,4 +430,15 @@ public class TSettleDomainEkpVo implements Serializable {
*/
@Schema(description = "EKP的服务团队", name = "serviceTeam")
private String serviceTeam;
/**
* 条线类型
*/
@Schema(description = "条线类型")
private String lineType;
/**
* BU归属
*/
@Schema(description = "BU归属")
private String buBelong;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author fxj
* @Date 2022/6/27
* @Description
* @Version 1.0
*/
@Data
public class TWorkHandlerInfoVo implements Serializable {
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 32)
@NotBlank(message = "项目编码不能为空")
@Length(max = 32, message = "项目编码不能超过32个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String departNo;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", isNotEmpty = true, errorInfo = "项目名称不能为空", maxLength = 50)
@NotBlank(message = "项目名称不能为空")
@Length(max = 50, message = "项目名称不能超过50个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String departName;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 32)
@Length(max = 32, message = "员工姓名不能超过32个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", maxLength = 32)
@Length(max = 32, message = "员工身份证不能超过32个字符")
@ExcelProperty("员工身份证")
@Schema(description = "员工身份证")
private String empIdcard;
/**
* 联动端口
*/
@ExcelAttribute(name = "联动端口", maxLength = 8)
@Length(max = 8, message = "联动端口不能超过8个字符")
@ExcelProperty("联动端口")
@Schema(description = "联动端口")
private String infoFrom;
/**
* 操作人
*/
@ExcelAttribute(name = "操作人", maxLength = 32)
@Length(max = 32, message = "操作人不能超过32个字符")
@ExcelProperty("操作人")
@Schema(description = "操作人")
private String operUser;
/**
* 操作时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "操作时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("操作时间")
private LocalDateTime operTime;
/**
* 执行结果
*/
@ExcelAttribute(name = "执行结果")
@Length(max = 5, message = "执行结果不能超过5个字符")
@ExcelProperty("执行结果")
@Schema(description = "执行结果")
private String operResult;
/**
* 执行详情
*/
@ExcelAttribute(name = "执行详情", maxLength = 255)
@Length(max = 255, message = "执行详情不能超过255个字符")
@ExcelProperty("执行详情")
@Schema(description = "执行详情")
private String operInfo;
/**
* 原因
*/
@ExcelAttribute(name = "原因", maxLength = 255)
@Length(max = 255, message = "原因不能超过255个字符")
@ExcelProperty("原因")
@Schema(description = "原因")
private String reason;
}
......@@ -44,4 +44,13 @@ public class UpProjectSocialFundVo implements Serializable {
String fileTown;
// 档案地-手机号码
String mobile;
//是否同步终止合同、减项、减档 0 是 1 否
String changeContractAndEmployee;
String userName;
String userId;
String empName;
String deptName;
String detailId;
String contactAddress;
String highEducation;
}
......@@ -25,6 +25,8 @@ public class UpdateEmpVo implements Serializable {
// 备注
String remarkTemp;
// 通信地址
String contactAddress;
// type 0 审核通过 2.审核不通过
String type;
......
......@@ -56,9 +56,10 @@ public class EmployeeConstants {
public static final String WORKING_HOURS_EMPTY = "工时制不能为空";
public static final String EXIT_PRIJECT_STATUS = "人员已有该项目信息,禁止重复添加";
public static final String CONTRACT_REDUCE_INFO_NOT_EMPTY = "签订类型为终止时,离职日期和终止原因必填";
public static final String CONTRACT_REDUCE_INFO_NOT_EMPTY = "签订类型为终止时,离职日期、终止原因和是否同步终止合同、减项、减档必填";
public static final String CONTRACT_REDUCE_REASON_NOT_EMPTY = "终止原因为其他时,原因说明必填";
/**
* 对应项目编码已停止合作
*/
......
......@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
......@@ -55,6 +56,7 @@ public class TEmpContractAlertController {
private final TEmpContractAlertService tEmpContractAlertService;
private final MenuUtil menuUtil;
/**
* 分页查询
* @param page 分页对象
......@@ -171,4 +173,33 @@ public class TEmpContractAlertController {
public R taskCreateContractAlert() {
return tEmpContractAlertService.taskCreateContractAlert();
}
/**
* 批量反馈
*
* @author wzb
* @param changeFeedBackAllVo
* @return {@link R}
*/
@Operation(summary = "批量反馈", description = "批量反馈")
@PostMapping("/changeFeedbackAll")
public R<Boolean> changeFeedBackAll(@RequestBody ChangeFeedBackAllVo changeFeedBackAllVo) {
return R.ok(tEmpContractAlertService.changeFeedBackAll(changeFeedBackAllVo));
}
/**
* 获取反馈日志详情
*
* @author wzb
* @param id
* @return {@link R}
*/
@Operation(summary = "获取反馈日志详情", description = "获取反馈日志详情")
@GetMapping("/getFeedbackDetail/{applyNo}" )
public R getFeedbackDetail(@PathVariable("applyNo" ) String applyNo) {
return R.ok(tEmpContractAlertService.getFeedbackDetail(applyNo));
}
}
......@@ -21,9 +21,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster;
import com.yifu.cloud.plus.v1.yifu.archives.service.TPersonnelRosterService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -47,18 +55,28 @@ import java.util.List;
public class TPersonnelRosterController {
private final TPersonnelRosterService tPersonnelRosterService;
private final MenuUtil menuUtil;
/**
* 简单分页查询
* @param page 分页对象
* @param tPersonnelRoster
* @param searchVo
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TPersonnelRoster>> getTPersonnelRosterPage(Page<TPersonnelRoster> page, TPersonnelRosterSearchVo tPersonnelRoster) {
return new R<>(tPersonnelRosterService.getTPersonnelRosterPage(page,tPersonnelRoster));
public R<IPage<TPersonnelRoster>> getTPersonnelRosterPage(Page<TPersonnelRoster> page, TPersonnelRosterSearchVo searchVo) {
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, searchVo);
if (Common.isNotNull(searchVo.getAuthSql())) {
if (searchVo.getAuthSql().contains(CommonConstants.A_DEPT_ID)) {
searchVo.setAuthSql(searchVo.getAuthSql().replace(CommonConstants.A_DEPT_ID, "a.SETTLE_DOMAIN"));
}
if (searchVo.getAuthSql().contains("1=2 EXISTS")) {
searchVo.setAuthSql(searchVo.getAuthSql().replace("1=2 EXISTS", "EXISTS"));
}
}
return new R<>(tPersonnelRosterService.getTPersonnelRosterPage(page,searchVo));
}
/**
* 不分页查询
......@@ -67,7 +85,7 @@ public class TPersonnelRosterController {
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
public R<List<TPersonnelRoster>> getTPersonnelRosterNoPage(@RequestBody TPersonnelRosterSearchVo tPersonnelRoster) {
public R<List<TPersonnelRosterExportVo>> getTPersonnelRosterNoPage(@RequestBody TPersonnelRosterSearchVo tPersonnelRoster) {
return R.ok(tPersonnelRosterService.noPageDiy(tPersonnelRoster));
}
......@@ -129,8 +147,44 @@ public class TPersonnelRosterController {
**/
@Operation(description = "导出 hasPermission('demo_tpersonnelroster-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tpersonnelroster-export')")
public void export(HttpServletResponse response, @RequestBody TPersonnelRosterSearchVo searchVo) {
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, searchVo);
if (Common.isNotNull(searchVo.getAuthSql())) {
if (searchVo.getAuthSql().contains(CommonConstants.A_DEPT_ID)) {
searchVo.setAuthSql(searchVo.getAuthSql().replace(CommonConstants.A_DEPT_ID, "a.SETTLE_DOMAIN"));
}
if (searchVo.getAuthSql().contains("1=2 EXISTS")) {
searchVo.setAuthSql(searchVo.getAuthSql().replace("1=2 EXISTS", "EXISTS"));
}
}
tPersonnelRosterService.listExport(response,searchVo);
}
/**
* @Author fxj
* @Description 每月26号更新人员花名册
* @Date 10:57 2023/6/19
* @Param
* @return
**/
@Operation(summary = "每月26号更新人员花名册", description = "每月26号更新人员花名册")
@Inner
@PostMapping("/inner/everyMonthUpdateRoster")
public void everyMonthUpdateRoster() {
tPersonnelRosterService.everyMonthUpdateRoster();
}
private void setAuth(TPersonnelRosterSearchVo searchVo) {
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, searchVo);
if (Common.isNotNull(searchVo.getAuthSql())) {
if (searchVo.getAuthSql().contains(CommonConstants.A_DEPT_ID)) {
searchVo.setAuthSql(searchVo.getAuthSql().replace(CommonConstants.A_DEPT_ID, "dept_id"));
}
if (searchVo.getAuthSql().contains(CommonConstants.A_CREATE_BY)) {
searchVo.setAuthSql(searchVo.getAuthSql().replace(CommonConstants.A_CREATE_BY, "CREATE_BY"));
}
}
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TWorkHandlerInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.InsertWorkHandlerVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tworkhandlerinfo")
@Tag(name = "任务处理清单表管理")
public class TWorkHandlerInfoController {
private final TWorkHandlerInfoService tWorkHandlerInfoService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tWorkHandlerInfo 任务处理清单表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TWorkHandlerInfo>> getTWorkHandlerInfoPage(Page<TWorkHandlerInfo> page, TWorkHandlerInfoSearchVo tWorkHandlerInfo) {
return new R<>(tWorkHandlerInfoService.getTWorkHandlerInfoPage(page, tWorkHandlerInfo));
}
/**
* 通过id查询任务处理清单表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tworkhandlerinfo_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tworkhandlerinfo_get')")
public R<TWorkHandlerInfo> getById(@PathVariable("id") String id) {
return R.ok(tWorkHandlerInfoService.getById(id));
}
/**
* 任务处理清单表 批量导出
*
* @author huyc
* @date 2023-06-15 12:18:28
**/
@Operation(description = "导出任务处理清单表 hasPermission('archives_tworkhandlerinfo-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('archives_tworkhandlerinfo-export')")
public void export(HttpServletResponse response, @RequestBody TWorkHandlerInfoSearchVo searchVo) {
tWorkHandlerInfoService.listExport(response, searchVo);
}
/**
* 新增任务处理表
* @author huyc
* @date 2023-06-25 12:18:28
**/
@Operation(description = "新增任务处理表)")
@Inner
@PostMapping("/inner/insertWorkHandler")
public Boolean insertWorkHandler(@RequestBody InsertWorkHandlerVo vo) {
return tWorkHandlerInfoService.insertWorkHandler(vo);
}
}
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface FeedBackDetailMapper extends BaseMapper<FeedBackDetail> {
List<FeedBackDetail> getDetail(@Param("applyNo") String applyNo);
List<FeedBackDetail> getAll();
FeedBackDetail findByApplyNo(@Param("applyNo") String applyNo);
}
......@@ -19,7 +19,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 员工合同续签待办
......@@ -31,4 +33,7 @@ import org.apache.ibatis.annotations.Mapper;
public interface TEmpContractAlertMapper extends BaseMapper<TEmpContractAlert> {
void truncate();
boolean changeFeedBackAll(@Param("changeFeedBackAllVo") ChangeFeedBackAllVo changeFeedBackAllVo);
}
......@@ -21,9 +21,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
......@@ -37,5 +41,19 @@ public interface TPersonnelRosterMapper extends BaseMapper<TPersonnelRoster> {
* @param tPersonnelRoster
* @return
*/
IPage<TPersonnelRoster> getTPersonnelRosterPage(Page<TPersonnelRoster> page, @Param("tPersonnelRoster") TPersonnelRoster tPersonnelRoster);
IPage<TPersonnelRoster> getTPersonnelRosterPage(Page<TPersonnelRoster> page, @Param("tPersonnelRoster") TPersonnelRosterSearchVo tPersonnelRoster);
/**
* @Author fxj
* @Description 获取待生成人员花名册数据
* @Date 11:41 2023/6/19
* @Param
* @return
**/
List<TPersonnelRoster> getTPersonnelRoster(@Param("tPersonnelRoster") TPersonnelRoster tPersonnelRoster);
Integer getTPersonnelRosterCount(@Param("tPersonnelRoster") TPersonnelRoster tPersonnelRoster);
int noPageCountDiy(@Param("tPersonnelRoster")TPersonnelRosterSearchVo searchVo);
List<TPersonnelRosterExportVo> noPageDiy(@Param("tPersonnelRoster")TPersonnelRosterSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
@Mapper
public interface TWorkHandlerInfoMapper extends BaseMapper<TWorkHandlerInfo> {
/**
* 任务处理清单表简单分页查询
* @param tWorkHandlerInfo 任务处理清单表
* @return
*/
IPage<TWorkHandlerInfo> getTWorkHandlerInfoPage(Page<TWorkHandlerInfo> page, @Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
Integer noPageCountDiy(@Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
List<TWorkHandlerInfoVo> noPageDiy(@Param("tWorkHandlerInfo") TWorkHandlerInfoSearchVo tWorkHandlerInfo);
}
......@@ -20,7 +20,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -48,4 +50,11 @@ public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
**/
R<Boolean> taskCreateContractAlert();
boolean changeFeedBackAll(ChangeFeedBackAllVo changeFeedBackAllVo);
List<FeedBackDetail> getFeedbackDetail(String applyNo);
}
......@@ -20,6 +20,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
/**
......@@ -56,6 +57,19 @@ public interface TEmployeeLogService extends IService<TEmployeeLog> {
**/
<T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, YifuUser user);
/**
* 生成修改记录
* @Author pwang
* @Date 2022-06-22 11:32
* @param type 类型:0人员档案;1项目档案;2人员和项目档案;3员工合同更新
* @param empId 档案id
* @param projectId 项目id
* @param oldInfo
* @param newInfo
* @return
**/
<T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, UpProjectSocialFundVo vo);
/**
* 生成修改记录
* @Author pwang
......
......@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -45,5 +46,7 @@ public interface TPersonnelRosterService extends IService<TPersonnelRoster> {
void listExport(HttpServletResponse response, TPersonnelRosterSearchVo searchVo);
List<TPersonnelRoster> noPageDiy(TPersonnelRosterSearchVo searchVo);
List<TPersonnelRosterExportVo> noPageDiy(TPersonnelRosterSearchVo searchVo);
void everyMonthUpdateRoster();
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.InsertWorkHandlerVo;
import javax.servlet.http.HttpServletResponse;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
public interface TWorkHandlerInfoService extends IService<TWorkHandlerInfo> {
/**
* 任务处理清单表简单分页查询
* @param tWorkHandlerInfo 任务处理清单表
* @return
*/
IPage<TWorkHandlerInfo> getTWorkHandlerInfoPage(Page<TWorkHandlerInfo> page, TWorkHandlerInfoSearchVo tWorkHandlerInfo);
void listExport(HttpServletResponse response, TWorkHandlerInfoSearchVo searchVo);
Boolean insertWorkHandler(InsertWorkHandlerVo vo);
}
......@@ -16,6 +16,7 @@
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
......@@ -27,15 +28,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeProjectMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.*;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
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.common.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -62,6 +63,8 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final TEmployeeProjectMapper projectMapper;
private final FeedBackDetailMapper feedbackDetailMapper;
@Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
......@@ -246,6 +249,9 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
if (Common.isNotNull(entity.getUnitNo())) {
wrapper.eq(TEmpContractAlert::getUnitNo, entity.getUnitNo());
}
if (Common.isNotNull(entity.getIsFeedback())){
wrapper.eq(TEmpContractAlert::getIsFeedback,entity.getIsFeedback());
}
return wrapper;
}
/**
......@@ -303,6 +309,8 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
return R.ok();
}
private void initExistMap(Map<String, TEmpContractAlert> existMap) {
List<TEmpContractAlert> exists = baseMapper.selectList(Wrappers.<TEmpContractAlert>query());
if (Common.isNotNull(exists)){
......@@ -357,12 +365,26 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
}else {
alert.setFirstAlertTime(new Date());
}
List<FeedBackDetail> list = feedbackDetailMapper.getAll();
for (FeedBackDetail feedBackDetail : list) {
FeedBackDetail feedBackDetail1 = feedbackDetailMapper.findByApplyNo(feedBackDetail.getApplyNo());
if(null!=feedbackDetailMapper.findByApplyNo(contract.getApplyNo())){
alert.setIsFeedback(feedBackDetail1.getIsFeedback());
alert.setFeedbackDetail(feedBackDetail1.getFeedbackDetail());
alert.setFeedbackReason(feedBackDetail1.getFeedbackReason());
alert.setFeedbackPerson(feedBackDetail1.getFeedbackPerson());
alert.setFeedbackTime(feedBackDetail1.getFeedbackTime());
} else {
alert.setIsFeedback(CommonConstants.ZERO_INT);
}
}
alert.setApplyNo(contract.getApplyNo());
// 2023-4-3 09:38:21 hgw 添加
alert.setUnitId(contract.getCustomerId());
alert.setUnitName(contract.getSubjectUnit());
alert.setUnitNo(contract.getUnitNo());
alert.setEmpPhone(employeeInfo.getEmpPhone());
alert.setCreateBy(contract.getCreateBy());
alert.setCreateName(contract.getCreateName());
alert.setContractId(contract.getId());
......@@ -403,4 +425,29 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
alert.setHandleStatus(CommonConstants.ZERO_STRING);
alertMap.put(alert.getEmpIdcard()+CommonConstants.DOWN_LINE_STRING+alert.getProjectNo(),alert);
}
@Override
public boolean changeFeedBackAll(ChangeFeedBackAllVo changeFeedBackAllVo) {
YifuUser user = SecurityUtils.getUser();
for (int i = 0; i < changeFeedBackAllVo.getIds().length; i++) {
FeedBackDetail feedbackDetail = new FeedBackDetail();
feedbackDetail.setFeedbackPerson(user.getNickname());
feedbackDetail.setFeedbackTime(DateTime.now());
feedbackDetail.setApplyNo(changeFeedBackAllVo.getIds()[i]);
feedbackDetail.setFeedbackReason(changeFeedBackAllVo.getFeedbackReason());
feedbackDetail.setFeedbackDetail(changeFeedBackAllVo.getFeedbackDetail());
feedbackDetail.setIsFeedback(CommonConstants.ONE_INT);
feedbackDetailMapper.insert(feedbackDetail);
}
changeFeedBackAllVo.setIsFeedback(CommonConstants.ONE_INTEGER);
changeFeedBackAllVo.setFeedbackPerson(user.getNickname());
changeFeedBackAllVo.setFeedbackTime(DateTime.now());
return baseMapper.changeFeedBackAll(changeFeedBackAllVo);
}
@Override
public List<FeedBackDetail> getFeedbackDetail(String applyNo) {
return feedbackDetailMapper.getDetail(applyNo);
}
}
......@@ -2211,9 +2211,11 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
employeeInfo = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.eq(TEmployeeInfo::getEmpIdcard,vo.getEmpIdCard())
.eq(TEmployeeInfo::getStatus,CommonConstants.ZERO_INT)
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(employeeInfo)){
if(Common.isNotNull(vo.getContactAddress())) {
employeeInfo.setContactAddress(vo.getContactAddress());
}
employeeInfo.setStatus(CommonConstants.ONE_INT);
baseMapper.updateById(employeeInfo);
}
......@@ -2245,7 +2247,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
contractAudit.setCreateName(vo.getCreateName());
contractAudit.setCreateTime(LocalDateTime.now());
//审核通过
c.setAuditUserName(c.getCreateBy());
c.setAuditUserName(vo.getCreateName());
if (CommonConstants.ZERO_STRING.equals(vo.getType())){
c.setAuditStatus(CommonConstants.TWO_INT);
c.setInUse(CommonConstants.ZERO_STRING);
......@@ -2368,6 +2370,38 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
employeeInfo = new TEmployeeInfo();
BeanUtil.copyProperties(empAdd, employeeInfo);
employeeInfo.setEmpCode(getCode());
employeeInfo.setContactAddress(empAdd.getContactAddress());
if(empAdd.getHignEducation().equals("文盲")) {
employeeInfo.setHignEducation("1");
}
if(empAdd.getHignEducation().equals("小学")) {
employeeInfo.setHignEducation("2");
}
if(empAdd.getHignEducation().equals("初中")) {
employeeInfo.setHignEducation("3");
}
if(empAdd.getHignEducation().equals("高中")) {
employeeInfo.setHignEducation("4");
}
if(empAdd.getHignEducation().equals("大专")) {
employeeInfo.setHignEducation("5");
}
if(empAdd.getHignEducation().equals("本科")) {
employeeInfo.setHignEducation("6");
}
if(empAdd.getHignEducation().equals("硕士")) {
employeeInfo.setHignEducation("7");
}
if(empAdd.getHignEducation().equals("技工")) {
employeeInfo.setHignEducation("9");
}
if(empAdd.getHignEducation().equals("职高")) {
employeeInfo.setHignEducation("10");
}
if(empAdd.getHignEducation().equals("中专")) {
employeeInfo.setHignEducation("11");
}
employeeInfo.setIsCollege(CommonConstants.ONE_INT);
employeeInfo.setStatus(CommonConstants.ZERO_INT);
date = IdCardUtil.getBirthdate(employeeInfo.getEmpIdcard());
if (Common.isNotNull(date)) {
......@@ -2412,6 +2446,19 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
projectAdd.setId(project.getId());
projectAdd.setEmpNo(project.getEmpNo());
projectsMap.put(project.getEmpIdcard() + CommonConstants.DOWN_LINE_STRING + project.getDeptNo(), projectAdd);
//查询人员档案
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));
if (Common.isNotNull(tEmployeeInfo)) {
TEmployeeInfo tEmployeeInfoCompare = baseMapper.selectById(tEmployeeInfo.getId());
tEmployeeInfo.setProjectNum(tEmployeeInfo.getProjectNum() + CommonConstants.ONE_INT);
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[0],
tEmployeeInfoCompare.getId(), "", tEmployeeInfoCompare, tEmployeeInfo);
baseMapper.updateById(tEmployeeInfo);
}
}
} catch (Exception e) {
log.error(projectAdd.getEmpIdcard() + CommonConstants.COLON_STRING + "派单新增项目档案失败",e);
......
......@@ -23,6 +23,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeLogMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeLogService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.equator.HrEquator;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
......@@ -95,6 +96,35 @@ public class TEmployeeLogServiceImpl extends ServiceImpl<TEmployeeLogMapper, TEm
return null;
}
@Override
public <T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, UpProjectSocialFundVo vo) {
try{
//比较记录不影响业务逻辑,用try套住
//比较差异
String differenceKey = HrEquator.comparisonValue(oldInfo, newInfo);
//如果有差异保存差异
if(!Common.isEmpty(differenceKey)){
TEmployeeLog employeeLog = new TEmployeeLog();
employeeLog.setProjectId(projectId);
employeeLog.setType(type);
employeeLog.setEmpId(empId);
employeeLog.setCreateTime(LocalDateTime.now());
if (Common.isNotNull(vo)) {
employeeLog.setCreateBy(vo.getUserId());
employeeLog.setCreateName(vo.getUserName());
}
employeeLog.setOldInfo(JSON.toJSONString(oldInfo,features));
employeeLog.setNewInfo(JSON.toJSONString(newInfo,features));
employeeLog.setDifferenceInfo(differenceKey);
baseMapper.insert(employeeLog);
return employeeLog;
}
}catch (Exception e){
log.error(JSON.toJSON(oldInfo)+"插入修改记录报错>>>",e);
}
return null;
}
@Override
public <T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, FddContractAttachInfo fddContractAttachInfo) {
try{
......
......@@ -17,6 +17,7 @@
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -98,13 +99,15 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
redisUtil.remove(CacheConstants.WXHR_SETTLE_DOMAIN_NOS_BY_USERID +"_"+userId);
redisUtil.remove(CacheConstants.DATA_AUTH_DETAILS +"_0");
redisUtil.remove(CacheConstants.DATA_AUTH_DETAILS +"_1");
// 清空userinfo
Objects.requireNonNull(cacheManager.getCache(CacheConstants.USER_DETAILS)).clear();
if (Common.isNotNull(user)){
redisUtil.remove(CacheConstants.USER_DETAILS +"::"+ user.getUsername());
if( Common.isNotNull(user.getPhone())){
redisUtil.remove(CacheConstants.USER_DETAILS + "_phone::"+ user.getPhone());
}
}
// 清空userinfo
Objects.requireNonNull(cacheManager.getCache(CacheConstants.USER_DETAILS)).clear();
}
} catch (Exception e) {
log.error("清除缓存错误:",e);
}
......@@ -210,6 +213,7 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
// 处理服务团队数据权限 2022-09-19 fxj
initServerTeamPermission(domain);
domain.setDeleteFlag(CommonConstants.ZERO_STRING);
log.error(JSON.toJSONString(vo));
if (Common.isNotNull(tSettleDomainInfo)) {
baseMapper.updateById(domain);
} else {
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TWorkHandlerInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TWorkHandlerInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.InsertWorkHandlerVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* 任务处理清单表
*
* @author huyc
* @date 2023-06-15 12:18:28
*/
@Log4j2
@Service
public class TWorkHandlerInfoServiceImpl extends ServiceImpl<TWorkHandlerInfoMapper, TWorkHandlerInfo> implements TWorkHandlerInfoService {
/**
* 任务处理清单表简单分页查询
* @param tWorkHandlerInfo 任务处理清单表
* @return
*/
@Override
public IPage<TWorkHandlerInfo> getTWorkHandlerInfoPage(Page<TWorkHandlerInfo> page, TWorkHandlerInfoSearchVo tWorkHandlerInfo){
return baseMapper.getTWorkHandlerInfoPage(page,tWorkHandlerInfo);
}
/**
* 任务处理清单表批量导出
* @param searchVo 任务处理清单表
* @return
*/
@Override
public void listExport(HttpServletResponse response, TWorkHandlerInfoSearchVo searchVo){
String fileName = "任务处理清单表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TWorkHandlerInfoVo> list = new ArrayList<>();
Integer count = baseMapper.noPageCountDiy(searchVo);
try (ServletOutputStream out = response.getOutputStream()) {
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out, TWorkHandlerInfoVo.class).includeColumnFieldNames(searchVo.getExportFields()).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; i += CommonConstants.EXCEL_EXPORT_LIMIT) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = baseMapper.noPageDiy(searchVo);
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("任务处理清单表"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("任务处理清单表"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}
}
@Override
public Boolean insertWorkHandler(InsertWorkHandlerVo vo) {
//增加任务处理情况查询表数据
TWorkHandlerInfo handlerInfo = new TWorkHandlerInfo();
handlerInfo.setEmpIdcard(vo.getEmpIdcard());
handlerInfo.setEmpName(null == vo.getEmpName() ? "" : vo.getEmpName());
handlerInfo.setDepartName(null == vo.getDepartName() ? "" : vo.getDepartName());
handlerInfo.setDepartNo(vo.getDepartNo());
handlerInfo.setInfoFrom("社保派减");
handlerInfo.setOperUser(vo.getOperUser());
handlerInfo.setOperTime(LocalDateTime.now());
handlerInfo.setDetailId(vo.getDetailId());
handlerInfo.setOperResult(CommonConstants.ZERO_STRING);
baseMapper.insert(handlerInfo);
return true;
}
}
......@@ -26,7 +26,7 @@ mybatis-plus:
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# spring security 配置
security:
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.FeedBackDetailMapper">
<resultMap id="BaseResultMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="FEEDBACK_PERSON" jdbcType="VARCHAR" property="feedbackPerson" />
<result column="FEEDBACK_TIME" jdbcType="TIMESTAMP" property="feedbackTime" />
<result column="FEEDBACK_REASON" jdbcType="VARCHAR" property="feedbackReason" />
<result column="FEEDBACK_DETAIL" jdbcType="VARCHAR" property="feedbackDetail" />
<result column="APPLY_NO" jdbcType="VARCHAR" property="applyNo" />
<result column="IS_FEEDBACK" jdbcType="VARCHAR" property="isFeedback" />
<result column="CONTRACT_ALERT_ID" jdbcType="VARCHAR" property="contractAlertId" />
</resultMap>
<sql id="Base_Column_List">
id, FEEDBACK_PERSON, FEEDBACK_TIME, FEEDBACK_REASON, FEEDBACK_DETAIL, CONTRACT_ALERT_ID
</sql>
<select id="getDetail" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
where a.APPLY_NO=#{applyNo}
order by FEEDBACK_TIME DESC
</select>
<select id="getAll" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
</select>
<select id="findByApplyNo" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail">
SELECT *
FROM feed_back_detail a
where a.APPLY_NO=#{applyNo}
ORDER BY FEEDBACK_TIME desc LIMIT 1
</select>
</mapper>
......@@ -50,10 +50,26 @@
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="isFeedback" column="IS_FEEDBACK"/>
<result property="feedbackReason" column="FEEDBACK_REASON"/>
<result property="feedbackDetail" column="FEEDBACK_DATAIL"/>
<result property="contractId" column="CONTRACT_ID"/>
<result property="applyNo" column="APPLY_NO"/>
</resultMap>
<update id="truncate">
TRUNCATE t_emp_contract_alert
</update>
<update id="changeFeedBackAll" parameterType="com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo">
update t_emp_contract_alert a
set a.IS_FEEDBACK=#{changeFeedBackAllVo.isFeedback},a.FEEDBACK_REASON=#{changeFeedBackAllVo.feedbackReason},a.FEEDBACK_DETAIL=#{changeFeedBackAllVo.feedbackDetail},
a.FEEDBACK_PERSON=#{changeFeedBackAllVo.feedbackPerson},a.FEEDBACK_TIME=#{changeFeedBackAllVo.feedbackTime}
where a.APPLY_NO in
<foreach item="idStr" index="index" collection="changeFeedBackAllVo.ids" open="(" separator="," close=")">
#{idStr}
</foreach>
</update>
</mapper>
......@@ -83,6 +83,7 @@
<result property="type" column="TYPE"/>
<result property="leaveDate" column="LEAVE_DATE"/>
<result property="reduceReason" column="REDUCE_REASON"/>
<result property="changeContractAndEmployee" column="CHANGE_CONTRACT_AND_EMPLOYEE"/>
</resultMap>
<!-- 合同审核导出 -->
......@@ -139,6 +140,7 @@
<result property="contractNo" column="CONTRACT_NO"/>
<result property="workingHours" column="WORKING_HOURS"/>
<result property="post" column="POST"/>
<result property="remark" column="REMARK"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -200,6 +202,7 @@
a.AUDIT_TIME_LAST,
a.TYPE,
a.LEAVE_DATE,
a.AUDIT_USER_NAME,
a.REDUCE_REASON,a.type
</sql>
......@@ -210,6 +213,7 @@
a.EMP_NO,
a.EMP_NAME,
a.EMP_IDCARD,
a.AUDIT_USER_NAME,
a.CONTRACT_START,
a.CONTRACT_END,
a.FILE_PROVINCE,
......@@ -225,6 +229,7 @@
a.CONTRACT_PARTY,
a.SUBJECT_UNIT,
a.AUDIT_STATUS,
b.REMARK,
a.IN_USE,
if(a.IS_FILE = 0,'有附件','无附件') FILES,
a.IS_FILE,
......@@ -470,6 +475,7 @@
a.EMP_IDCARD,
a.CONTRACT_START,
a.CONTRACT_END,
a.AUDIT_USER_NAME,
a1.AREA_NAME as "FILE_PROVINCE",
a2.AREA_NAME as "FILE_CITY",
a3.AREA_NAME as "FILE_TOWN",
......@@ -503,11 +509,13 @@
WHEN a.type =3 THEN "派减-作废"
WHEN a.type =4 THEN "派减-终止"
ELSE a.type END as "type",
b.REMARK,
a.CREATE_TIME
FROM t_employee_contract_info a
LEFT JOIN sys_area a1 on a1.id=a.FILE_PROVINCE
LEFT JOIN sys_area a2 on a2.id=a.FILE_CITY
LEFT JOIN sys_area a3 on a3.id=a.FILE_TOWN
left join (select REMARK,LINK_ID from t_employee_contract_audit where ROOT_NAME='合同审核') b on a.ID=b.LINK_ID
<where>
a.DELETE_FLAG = 0
<include refid="tEmployeeContractInfo_where"/>
......@@ -644,8 +652,11 @@
a.TYPE,
a.LEAVE_DATE,
a.CONTRACT_NO,
a.REDUCE_REASON
a.REDUCE_REASON,
b.REMARK
FROM t_employee_contract_info a
left join (select REMARK,LINK_ID from t_employee_contract_audit where ROOT_NAME='合同审核') b on a.ID=b.LINK_ID
<where>
a.DELETE_FLAG = 0
<include refid="tEmployeeContractInfo_where"/>
......
......@@ -873,7 +873,7 @@
select
a.ID,a.EMP_CODE,a.EMP_NAME,
a.EMP_IDCARD,a.EMP_NATIONAL,a.EMP_PHONE,a.ID_PROVINCE,a.ID_CITY,
a.ID_TOWN,a.EMP_REGIS_TYPE,a.FILE_PROVINCE,a.FILE_CITY,a.FILE_TOWN,a.HIGN_EDUCATION,a.FILE_STATUS,
a.ID_TOWN,a.EMP_REGIS_TYPE,a.FILE_PROVINCE,a.FILE_CITY,a.FILE_TOWN,a.HIGN_EDUCATION,a.FILE_STATUS,a.CONTACT_ADDRESS,
b.CONTRACT_NAME,b.CONTRACT_TYPE,
b.CONTRACT_START,b.CONTRACT_END,b.CONTRACT_TERM,b.CONTRACT_SUB_NAME,b.CONTRACT_ID,
......@@ -882,7 +882,7 @@
c.UNIT_NO,c.DEPT_ID,c.DEPT_NAME,c.DEPT_NO,c.POST,c.EMP_NO,c.PROJECT_STATUS,c.EMP_NATRUE
from (
select e.ID,e.EMP_CODE,e.EMP_NAME,e.EMP_IDCARD,e.EMP_NATIONAL,e.EMP_PHONE,e.ID_PROVINCE,e.ID_CITY,
e.ID_TOWN,e.EMP_REGIS_TYPE,e.FILE_PROVINCE,e.FILE_CITY,e.FILE_TOWN,e.HIGN_EDUCATION,e.FILE_STATUS
e.ID_TOWN,e.EMP_REGIS_TYPE,e.FILE_PROVINCE,e.FILE_CITY,e.FILE_TOWN,e.HIGN_EDUCATION,e.FILE_STATUS,e.CONTACT_ADDRESS
from t_employee_info e
where 1=1 and e.DELETE_FLAG = '0'
<if test="checkVo != null">
......@@ -1139,6 +1139,9 @@
<if test="tEmployeeInfo.id != null">a.id=a.id,</if>
<if test="tEmployeeInfo.socialStatus != null">SOCIAL_STATUS=#{tEmployeeInfo.socialStatus},</if>
<if test="tEmployeeInfo.fundStatus != null">FUND_STATUS=#{tEmployeeInfo.fundStatus},</if>
<if test="tEmployeeInfo.hignEducation != null">HIGN_EDUCATION=#{tEmployeeInfo.hignEducation},</if>
<if test="tEmployeeInfo.contactAddress != null">CONTACT_ADDRESS=#{tEmployeeInfo.contactAddress},</if>
<if test="tEmployeeInfo.isCollege != null">IS_COLLEGE='1',</if>
<if test="tEmployeeInfo.fileProvince != null">a.FILE_PROVINCE=#{tEmployeeInfo.fileProvince},</if>
<if test="tEmployeeInfo.fileCity != null">a.FILE_CITY=#{tEmployeeInfo.fileCity},</if>
<if test="tEmployeeInfo.fileCity != null">
......
......@@ -90,6 +90,8 @@
<result property="riskServerItem" column="RISK_SERVER_ITEM"/>
<result property="unitSeriousIllnessProp" column="UNIT_SERIOUS_ILLNESS_PROP"/>
<result property="bpoFlag" column="BPO_FLAG"/>
<result property="buBelong" column="BU_BELONG"/>
<result property="lineType" column="LINE_TYPE"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -163,7 +165,9 @@
a.MANAGE_SERVER_ITEM,
a.RISK_SERVER_ITEM,
a.UNIT_SERIOUS_ILLNESS_PROP,
a.BPO_FLAG
a.BPO_FLAG,
a.BU_BELONG,
a.LINE_TYPE
</sql>
<resultMap id="tSettleDomainSelectVoMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo">
......@@ -217,6 +221,12 @@
<if test="tSettleDomain.stopFlag != null and tSettleDomain.stopFlag.trim() != '' and tSettleDomain.stopFlag == 1">
and (a.STOP_FLAG = '1' or a.STOP_FLAG = '2')
</if>
<if test="tSettleDomain.lineType != null and tSettleDomain.lineType.trim() != ''">
and a.LINE_TYPE = #{tSettleDomain.lineType}
</if>
<if test="tSettleDomain.buBelong != null and tSettleDomain.buBelong.trim() != ''">
and a.BU_BELONG = #{tSettleDomain.buBelong}
</if>
</if>
order by CREATE_TIME desc
</select>
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TWorkHandlerInfoMapper">
<resultMap id="tWorkHandlerInfoMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TWorkHandlerInfo">
<id property="id" column="ID"/>
<result property="departNo" column="DEPART_NO"/>
<result property="departName" column="DEPART_NAME"/>
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="deleteFlag" column="DELETE_FLAG"/>
<result property="infoFrom" column="INFO_FROM"/>
<result property="operUser" column="OPER_USER"/>
<result property="operTime" column="OPER_TIME"/>
<result property="operResult" column="OPER_RESULT"/>
<result property="operInfo" column="OPER_INFO"/>
<result property="reason" column="REASON"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.DEPART_NO,
a.DEPART_NAME,
a.EMP_NAME,
a.EMP_IDCARD,
a.DELETE_FLAG,
a.INFO_FROM,
a.OPER_USER,
a.OPER_TIME,
a.OPER_RESULT,
a.OPER_INFO,
a.REASON
</sql>
<resultMap id="tWorkHandlerInfoVoMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.TWorkHandlerInfoVo">
<result property="departNo" column="DEPART_NO"/>
<result property="departName" column="DEPART_NAME"/>
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="infoFrom" column="INFO_FROM"/>
<result property="operUser" column="OPER_USER"/>
<result property="operTime" column="OPER_TIME"/>
<result property="operResult" column="OPER_RESULT"/>
<result property="operInfo" column="OPER_INFO"/>
<result property="reason" column="REASON"/>
</resultMap>
<sql id="tWorkHandlerInfo_where">
<if test="tWorkHandlerInfo != null">
<if test="tWorkHandlerInfo.departNo != null and tWorkHandlerInfo.departNo.trim() != ''">
AND a.DEPART_NO = #{tWorkHandlerInfo.departNo}
</if>
<if test="tWorkHandlerInfo.departName != null and tWorkHandlerInfo.departName.trim() != ''">
AND a.DEPART_NAME = #{tWorkHandlerInfo.departName}
</if>
<if test="tWorkHandlerInfo.empName != null and tWorkHandlerInfo.empName.trim() != ''">
AND a.EMP_NAME like concat('%', #{tWorkHandlerInfo.empName} ,'%')
</if>
<if test="tWorkHandlerInfo.empIdcard != null and tWorkHandlerInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD like concat('%', #{tWorkHandlerInfo.empIdcard} ,'%')
</if>
<if test="tWorkHandlerInfo.infoFrom != null and tWorkHandlerInfo.infoFrom.trim() != ''">
AND a.INFO_FROM = #{tWorkHandlerInfo.infoFrom}
</if>
<if test="tWorkHandlerInfo.operUser != null and tWorkHandlerInfo.operUser.trim() != ''">
AND a.OPER_USER like concat('%', #{tWorkHandlerInfo.operUser} ,'%')
</if>
<if test="tWorkHandlerInfo.startTime != null and tWorkHandlerInfo.startTime.trim() != '' ">
AND a.OPER_TIME <![CDATA[ >= ]]> concat(#{tWorkHandlerInfo.startTime}, ' 00:00:00')
</if>
<if test="tWorkHandlerInfo.endTime != null and tWorkHandlerInfo.endTime.trim() != '' ">
AND a.OPER_TIME <![CDATA[ <= ]]> concat(#{tWorkHandlerInfo.endTime}, ' 23:59:59')
</if>
<if test="tWorkHandlerInfo.operResult != null and tWorkHandlerInfo.operResult.trim() != ''">
AND a.OPER_RESULT = #{tWorkHandlerInfo.operResult}
</if>
</if>
</sql>
<!--tWorkHandlerInfo简单分页查询-->
<select id="getTWorkHandlerInfoPage" resultMap="tWorkHandlerInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_work_handler_info a
<where>
1=1
<include refid="tWorkHandlerInfo_where"/>
</where>
order by a.OPER_TIME desc
</select>
<select id="noPageCountDiy" resultType="java.lang.Integer">
SELECT
count(1)
FROM t_work_handler_info a
<where>
1=1
<include refid="tWorkHandlerInfo_where"/>
</where>
</select>
<select id="noPageDiy" resultMap="tWorkHandlerInfoVoMap">
SELECT
a.DEPART_NO,
a.DEPART_NAME,
a.EMP_NAME,
a.EMP_IDCARD,
a.INFO_FROM,
a.OPER_USER,
a.OPER_TIME,
CASE WHEN a.OPER_RESULT=0 THEN "未执行"
WHEN a.OPER_RESULT =1 THEN "部分成功"
WHEN a.OPER_RESULT =2 THEN "全部成功"
ELSE a.OPER_RESULT END as "OPER_RESULT",
a.OPER_INFO,
a.REASON
FROM t_work_handler_info a
<where>
1=1
<include refid="tWorkHandlerInfo_where"/>
</where>
order by a.OPER_TIME desc
limit #{tWorkHandlerInfo.limitStart},#{tWorkHandlerInfo.limitEnd}
</select>
</mapper>
\ No newline at end of file
......@@ -165,6 +165,11 @@ public interface CommonConstants {
*/
int TEN_THOUSAND_INT = 10000;
/**
* number 1000
*/
int ONE_THOUSAND_INT = 1000;
/**
* number 1
*/
......
......@@ -457,6 +457,30 @@ public interface ErrorCodes {
* 派增异常: 社保派单基数不可小于最低基数且不可大于最高基数
*/
String EMP_DISPATCH_SOCIAL_LIMIT_ERROR = "emp.dispatch.social.limit.error";
/**
* 派增异常: 社保派单养老基数不可小于最低基数且不可大于最高基数
*/
String YL_DISPATCH_SOCIAL_LIMIT_ERROR = "yl.dispatch.social.limit.error";
/**
* 派增异常: 社保派单医疗基数不可小于最低基数且不可大于最高基数
*/
String YB_DISPATCH_SOCIAL_LIMIT_ERROR = "yb.dispatch.social.limit.error";
/**
* 派增异常: 社保派单工伤基数不可小于最低基数且不可大于最高基数
*/
String GS_DISPATCH_SOCIAL_LIMIT_ERROR = "gs.dispatch.social.limit.error";
/**
* 派增异常: 社保派单失业基数不可小于最低基数且不可大于最高基数
*/
String SY_DISPATCH_SOCIAL_LIMIT_ERROR = "sy.dispatch.social.limit.error";
/**
* 派增异常: 社保派单生育基数不可小于最低基数且不可大于最高基数
*/
String BIR_DISPATCH_SOCIAL_LIMIT_ERROR = "bir.dispatch.social.limit.error";
/**
* 派增异常: 社保派单大病基数不可小于最低基数且不可大于最高基数
*/
String DB_DISPATCH_SOCIAL_LIMIT_ERROR = "db.dispatch.social.limit.error";
/**
* 派增异常: 公积金派单基数不可小于最低基数且不可大于最高基数
*/
......@@ -571,4 +595,12 @@ public interface ErrorCodes {
* 社保办理:该数据已处理,请勿重复操作
*/
String SOCIAL_IMPORT_SAME_INFO = "social.import.same.info";
/**
* 单减社保,存在正常/审批中的公积金,禁止“同步终止合同、减项、减档”
*/
String EMP_DISPATCH_FUND_NOT_EMPTY_CHANGE = "emp.dispatch.fund.not.empty.change";
/**
* 派减异常: 单减公积金,是否同步终止合同、减项、减档不能为是
*/
String EMP_DISPATCH_FUND_NOT_EMPTY_SIGNLE = "emp.dispatch.fund.not.empty.signle";
}
......@@ -523,7 +523,7 @@ public class Common {
* @param null
* @return
**/
private static final String insuranceSuffixList = "pdf|png|jpg|doc|docx|xls|xlsx|rar|zip";
private static final String insuranceSuffixList = "pdf|png|jpg|doc|docx|xls|xlsx|rar|zip|txt|jpeg";
/**
* 判断是否为允许的上传文件类型,true表示允许
......
......@@ -166,7 +166,12 @@ emp.dispatch.emp.project.not.used=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5BF9\u5E94\u9
emp.dispatch.emp.not.used=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5BF9\u5E94\u8EAB\u4EFD\u8BC1\u7684\u4EBA\u5458\u6863\u6848\u5DF2\u51CF\u6863\uFF0C\u8BF7\u53BB\u4EBA\u5458\u6863\u6848\u5904\u590D\u6863
emp.dispatch.social.limit.error=\u6D3E\u589E\u5F02\u5E38\uFF1A \u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u6700\u9AD8\u57FA\u6570
yl.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u517B\u8001\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u517B\u8001\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u517B\u8001\u6700\u9AD8\u57FA\u6570
yb.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u533B\u7597\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u533B\u7597\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u533B\u7597\u6700\u9AD8\u57FA\u6570
gs.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5DE5\u4F24\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5DE5\u4F24\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5DE5\u4F24\u6700\u9AD8\u57FA\u6570
sy.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5931\u4E1A\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5931\u4E1A\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5931\u4E1A\u6700\u9AD8\u57FA\u6570
bir.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u751F\u80B2\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u751F\u80B2\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u751F\u80B2\u6700\u9AD8\u57FA\u6570
db.dispatch.social.limit.error=\u793E\u4FDD\u201C\u7F34\u7EB3\u7C7B\u578B\u201D\u4E3A\u201C\u81EA\u5B9A\u4E49\u201D\u65F6\uFF0C\u5927\u75C5\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u793E\u4FDD\u6237\u7684\u5927\u75C5\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u5927\u75C5\u6700\u9AD8\u57FA\u6570
emp.dispatch.fund.limit.error=\u6D3E\u589E\u5F02\u5E38\uFF1A \u516C\u79EF\u91D1\u8D2D\u4E70\u57FA\u6570\u9700\u2265\u8BE5\u516C\u79EF\u91D1\u6237\u7684\u6700\u4F4E\u57FA\u6570\uFF0C\u4E14\u2264\u6700\u9AD8\u57FA\u6570
......@@ -223,6 +228,9 @@ social_import_handle_not_empty=\u793E\u4FDD\u529E\u7406\u5931\u8D25\uFF0C\u5FC5\
social.import.handle.not.exits=\u65E0\u529E\u7406\u6743\u9650\u6216\u65E0\u53EF\u9700\u8981\u529E\u7406\u7684\u793E\u4FDD\u6570\u636E
social.import.same.info=\u8BE5\u6570\u636E\u5DF2\u5904\u7406\uFF0C\u8BF7\u52FF\u91CD\u590D\u64CD\u4F5C
emp.dispatch.fund.not.empty.change=\u5355\u51CF\u793E\u4FDD\uFF0C\u5B58\u5728\u6B63\u5E38/\u5BA1\u6279\u4E2D\u7684\u516C\u79EF\u91D1\uFF0C\u7981\u6B62\u201C\u540C\u6B65\u7EC8\u6B62\u5408\u540C\u3001\u51CF\u9879\u3001\u51CF\u6863\u201D
emp.dispatch.fund.not.empty.signle=\u5355\u51CF\u516C\u79EF\u91D1\uFF0C\u662F\u5426\u540C\u6B65\u7EC8\u6B62\u5408\u540C\u3001\u51CF\u9879\u3001\u51CF\u6863\u4E0D\u80FD\u4E3A\u662F
......
......@@ -281,7 +281,7 @@ public class ArchivesDaprUtil {
* @Param type 0 审核通过 1 审核不通过
* @return
**/
public R<Boolean> updateEmpInfo(String empIdCard, String projectNo, String contractId,String type,String remarkTemp, YifuUser user){
public R<Boolean> updateEmpInfo(String empIdCard,String contactAddress, String projectNo, String contractId,String type,String remarkTemp, YifuUser user){
if (Common.isEmpty(empIdCard)
|| Common.isEmpty(projectNo)
|| Common.isEmpty(type)){
......@@ -295,6 +295,7 @@ public class ArchivesDaprUtil {
vo.setType(type);
vo.setCreateBy(user.getId());
vo.setCreateName(user.getNickname());
vo.setContactAddress(contactAddress);
R<Boolean> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/updateEmpInfo" , JSON.toJSONString(vo), Boolean.class, SecurityConstants.FROM_IN);
......@@ -428,6 +429,21 @@ public class ArchivesDaprUtil {
return res;
}
public R<Boolean> insertWorkHandler(InsertWorkHandlerVo vo){
if (Common.isEmpty(vo.getDetailId())
|| Common.isEmpty(vo.getEmpIdcard())
|| Common.isEmpty(vo.getDepartNo())){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
R<Boolean> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/tworkhandlerinfo/inner/insertWorkHandler" , JSON.toJSONString(vo), Boolean.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("增加任务处理情况查询表数据失败!");
}
return res;
}
/**
* @Description: 更新项目档案的商险状态。商险的status 0无2正常3失效4处理中
* @Author: hgw
......
......@@ -4,16 +4,19 @@ dapr.upms.appId=yifu-upms
#\u6D4B\u8BD5\u73AF\u5883
#dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
#\u672C\u5730
#\u6D4B\u8BD5\u73AF\u5883
dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.check.appId=yifu-check
#\u672C\u5730
#\u6D4B\u8BD5\u73AF\u5883
dapr.archives.appUrl=http://yifu-archives.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.archives.appId=yifu-archives
#\u6D4B\u8BD5\u73AF\u5883
dapr.salary.appUrl=http://yifu-salary.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.salary.appId=yifu-salary
#\u6D4B\u8BD5\u73AF\u5883
dapr.social.appUrl=http://yifu-social.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.social.appId=yifu-social
......
......@@ -60,4 +60,12 @@ public class ArchiveTask {
SecurityConstants.FROM_IN);
log.info("-------------每日凌晨1点人员退休提醒-定时任务开始------------");
}
public void everyMonthUpdateRoster() {
log.info("-------------每月26号更新人员花名册-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(), daprArchivesProperties.getAppId(),
"/tpersonnelroster/inner/everyMonthUpdateRoster", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------每月26号更新人员花名册-定时任务开始------------");
}
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.yifu.order.controller;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.order.constants.OrderConstants;
import com.yifu.cloud.plus.v1.yifu.order.service.TOrderService;
import com.yifu.cloud.plus.v1.yifu.order.util.EkpOrderFileTask;
import com.yifu.cloud.plus.v1.yifu.order.vo.OrderAddVO;
import com.yifu.cloud.plus.v1.yifu.order.vo.OrderAttVo;
import com.yifu.cloud.plus.v1.yifu.order.vo.OrderReplyAddVO;
......@@ -9,13 +13,17 @@ import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
/**
......@@ -31,7 +39,8 @@ import java.io.IOException;
public class EkpOrderController {
@Resource
private TOrderService tOrderService;
@Autowired
private EkpOrderFileTask ekpOrderFileTask;
/**
* 接收处理ekp订单
*
......@@ -43,10 +52,7 @@ public class EkpOrderController {
@Schema(description = "接收处理ekp订单")
@PostMapping(value = "/receiveOrder")
public R receiveOrder(OrderAddVO vo) throws IOException {
log.error("vo.getCreateTime()111="+vo.getCreateTime());
log.error("vo.getCreateTime()222="+vo.getDeptNo());
log.error("vo.getCreateTime()333="+vo.getOrderNo());
return tOrderService.receiveOrder(vo);
return tOrderService.receiveOrder(vo,ekpOrderFileTask);
}
......@@ -61,7 +67,27 @@ public class EkpOrderController {
@Schema(description = "接收处理ekp附件")
@PostMapping(value = "/receiveOrderNew")
public R receiveOrder(OrderAttVo vo) throws IOException {
return tOrderService.receiveOrderNew(vo);
if (Common.isEmpty(vo.getOrderNo())){
return R.failed(OrderConstants.ORDER_NO_IS_EMPTY);
}
if (ArrayUtils.isNotEmpty(vo.getFile())){
if (vo.getFile().length > CommonConstants.TWENTY_INT){
return R.failed(OrderConstants.ENCLOSURE_SIZE_ERROR);
}
String fileName;
for (MultipartFile multipartFile : vo.getFile()) {
if(!Common.checkInsuranceFile(multipartFile.getOriginalFilename())){
return R.failed(OrderConstants.ENCLOSURE_TYPE_IS_ERROR);
}
if (multipartFile.getSize() > (CommonConstants.FIFTY_INT*CommonConstants.BYTE*CommonConstants.BYTE)){
return R.failed(OrderConstants.ENCLOSURE_SIZE_ERROR);
}
fileName = System.currentTimeMillis() + "_" + multipartFile.getOriginalFilename();
ekpOrderFileTask.receiveOrderNew(multipartFile.getInputStream(),vo.getFile1(),vo.getOrderNo(),fileName
,multipartFile.getOriginalFilename());
}
}
return R.ok();
}
/**
......
......@@ -6,10 +6,12 @@ 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.R;
import com.yifu.cloud.plus.v1.yifu.order.entity.TOrder;
import com.yifu.cloud.plus.v1.yifu.order.util.EkpOrderFileTask;
import com.yifu.cloud.plus.v1.yifu.order.vo.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
......@@ -94,32 +96,31 @@ public interface TOrderService extends IService<TOrder> {
*
* @author licancan
* @param vo
* @param ekpOrderFileTask
* @return {@link R}
* @throws IOException
*/
R receiveOrder(OrderAddVO vo) throws IOException;
R receiveOrder(OrderAddVO vo, EkpOrderFileTask ekpOrderFileTask) throws IOException;
/**
* 接收处理ekp附件
* 接收处理ekp订单回复
*
* @author licancan
* @param vo
* @return {@link R}
* @throws IOException
*/
R receiveOrderNew(OrderAttVo vo ) throws IOException;
R receiveOrderReply(OrderReplyAddVO vo) throws IOException;
/**
* 接收处理ekp订单回复
* 接收处理ekp附件
*
* @author licancan
* @param vo
* @return {@link R}
* @throws IOException
*/
R receiveOrderReply(OrderReplyAddVO vo) throws IOException;
void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName) throws IOException;
void receiveOrderFileAsc(InputStream inputStream, String orderNo, String fileName, String originalFileName);
/**
* 订单作废
......
package com.yifu.cloud.plus.v1.yifu.order.util;
import com.yifu.cloud.plus.v1.yifu.order.service.TOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.InputStream;
/**
* @Author fxj
* @Date 2023/6/25
* @Description
* @Version 1.0
*/
@Slf4j
@Component
public class EkpOrderFileTask {
@Autowired
TOrderService orderService;
/**
* @Author fxj
* @Description 订单附件上传
* @Date 15:58 2023/6/25
* @Param
* @return
**/
@Async
public void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName){
synchronized (this){
try {
orderService.receiveOrderNew(inputStream,file1,orderNo,fileName,originalFileName);
} catch (IOException e) {
log.error("订单附件上传异常:",e);
}
}
}
@Async
public void receiveOrderFileAsc(InputStream inputStream,String orderNo, String fileName, String originalFileName){
orderService.receiveOrderFileAsc(inputStream,orderNo,fileName,originalFileName);
}
}
......@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
......@@ -139,4 +140,30 @@ public class TConfigSalary extends BaseEntity implements Serializable {
@ExcelProperty(value="收入月份")
private Integer incomeMonth;
/**
* 月均发薪次数
*/
@NotNull(message = "月均发薪次数不能为空")
@ExcelAttribute(name = "月均发薪次数", isNotEmpty = true,errorInfo = "月均发薪次数不能为空" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value="月均发薪次数")
private Integer salaryNum;
/**
* @Description: 本结算月发薪次数:0:可以提交; 其他:不可提交
* @Author: hgw
* @Date: 2023/6/25 17:45
* @return:
**/
@TableField(exist = false)
private Integer nowMonthSalaryNum = 0;
/**
* @Description: 本结算年未提交的发薪次数:0:可以提交; 其他:提交时二次确认
* @Author: hgw
* @Date: 2023/6/25 17:45
* @return:
**/
@TableField(exist = false)
private Integer nowYearSalaryNum = 0;
}
......@@ -452,6 +452,13 @@ public class TSalaryStandard extends BaseEntity {
@Schema(description = "收入月份")
private String incomeMonth;
@Schema(description = "配置ID")
private String setId;
@Schema(description = "删除人(汉字名)")
private String deleteUser;
@Schema(description = "删除时间")
private Date deleteDate;
/**
* 工资月份-起
*/
......
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author fxj
* @Date 2023/6/26
* @Description
* @Version 1.0
*/
@Data
public class SalaryEmpRosterRes implements Serializable {
private List<TSalaryEmpRosterVo> rosterVos;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author fxj
* @Description 人员花名册 信息
* @Date 11:58 2023/6/19
* @Param
* @return
**/
@Data
public class TSalaryEmpRosterVo implements Serializable {
/**
* 身份证号
*/
private String empIdcard;
/**
* 开户行总行
*/
private String bankName;
/**
* 开户行省
*/
private String bankProvince;
/**
* 开户行市
*/
private String bankCity;
/**
* 开户行支行
*/
private String bankSubName;
/**
* 银行卡号
*/
private String bankNo;
}
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandard;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryStandardMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TConfigSalaryService;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryStandardService;
import com.yifu.cloud.plus.v1.yifu.salary.util.SalaryConstants;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
......@@ -38,6 +46,8 @@ import java.util.List;
public class TConfigSalaryController {
private final TConfigSalaryService tConfigSalaryService;
private final TSalaryStandardService tSalaryStandardService;
private final TSalaryStandardMapper tSalaryStandardMapper;
private final MenuUtil menuUtil;
/**
* @param settleDepart 结算主体id
......@@ -56,6 +66,20 @@ public class TConfigSalaryController {
QueryWrapper<TConfigSalary> queryWrapperCs = new QueryWrapper<>();
queryWrapperCs.setEntity(configSalary);
List<TConfigSalary> configSalaryList = tConfigSalaryService.list(queryWrapperCs);
if (configSalaryList != null && !configSalaryList.isEmpty()) {
String nowMonth = DateUtil.addMonth(0);
String nowYear = DateUtil.getYear(new Date());
// 当前年 未推送或未发放的 发薪次数
int yearCount = tSalaryStandardService.getNum(settleDepart, null,null, nowYear);
int monthCount; // 当前月 发薪次数
for (TConfigSalary cs : configSalaryList) {
monthCount = tSalaryStandardService.getNum(settleDepart, cs.getId(), nowMonth, null);
if (cs.getSalaryNum() <= monthCount) {
cs.setNowMonthSalaryNum(monthCount);
}
cs.setNowYearSalaryNum(yearCount);
}
}
return new R<>(configSalaryList);
}
......
......@@ -26,13 +26,11 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
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.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmployeeService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryEmployeeImportVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeEkpUpdateVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeExportVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeSearchVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -210,5 +208,19 @@ public class TSalaryEmployeeController {
public R updateEmployeeFromEkp(TSalaryEmployeeEkpUpdateVo vo) {
return tSalaryEmployeeService.updateEmployeeFromEkp(vo);
}
/**
* @Author fxj
* @Description 获取员工花名册信息信息
* @Date 10:57 2023/6/19
* @Param
* @return
**/
@Operation(summary = "获取员工花名册信息信息", description = "获取员工花名册信息信息")
@Inner
@PostMapping("/getSalaryEmpRoster")
public SalaryEmpRosterRes getSalaryEmpRoster(@RequestBody List<String> idCardList) {
SalaryEmpRosterRes res = new SalaryEmpRosterRes();
res.setRosterVos(tSalaryEmployeeService.getSalaryEmpRoster(idCardList));
return res;
}
}
......@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmpRosterVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeExportVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmployeeSearchVo;
import org.apache.ibatis.annotations.Mapper;
......@@ -48,4 +49,6 @@ public interface TSalaryEmployeeMapper extends BaseMapper<TSalaryEmployee> {
List<TSalaryEmployee> getListByIdCard(@Param("idCardList") List<String> idCardList);
TSalaryEmployee getByEmpIdCard(@Param("empIdCard") String empIdCard);
List<TSalaryEmpRosterVo> getSalaryEmpRoster(@Param("idCards") List<String> idCardList);
}
......@@ -33,7 +33,7 @@
, round(sum(a.RELAY_SALARY) / ifnull(count(DISTINCT a.SALARY_MONTH), 1), 2) AVERAGE_SALARY
, DATE_FORMAT(now(), '%Y%m') CREATE_MONTH
from t_salary_account a
where a.SALARY_MONTH >= date_format(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y%m')
where a.DELETE_FLAG=0 and a.SALARY_MONTH >= date_format(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y%m')
GROUP BY a.EMP_IDCARD
</insert>
......
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