调整导出, 新增推送金蝶
This commit is contained in:
parent
d61d08fcbc
commit
4e3a045a42
@ -214,6 +214,15 @@
|
||||
<artifactId>nashorn-core</artifactId>
|
||||
<version>15.4</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 金蝶 -->
|
||||
<dependency>
|
||||
<groupId>com.kingdee.bos</groupId>
|
||||
<artifactId>k3cloud-webapi-sdk-java11</artifactId>
|
||||
<version>v8.2.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/resources/lib/k3cloud-webapi-sdk-java11-v8.2.0.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -5,9 +5,11 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.evo.common.utils.poi.handler.ExcelFieldHandlerAdapter;
|
||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import com.evo.common.utils.poi.ExcelHandlerAdapter;
|
||||
import com.evo.common.utils.poi.handler.ExcelHandlerAdapter;
|
||||
|
||||
/**
|
||||
* 自定义导出Excel数据注解
|
||||
@ -148,6 +150,15 @@ public @interface Excel
|
||||
*/
|
||||
public Class<?> handler() default ExcelHandlerAdapter.class;
|
||||
|
||||
/**
|
||||
* 自定义数据处理器
|
||||
*/
|
||||
public boolean customExcelField() default false;
|
||||
/**
|
||||
* 自定义数据处理器
|
||||
*/
|
||||
public Class<?> excelFieldHandler() default ExcelFieldHandlerAdapter.class;
|
||||
|
||||
/**
|
||||
* 自定义数据处理器参数
|
||||
*/
|
||||
|
||||
@ -284,7 +284,7 @@ public class ParamUtils {
|
||||
* @return
|
||||
*/
|
||||
public static List<Long> getFullPaidLeave(){
|
||||
RzSysParam param= paramService.getRzSysParam("全薪发放的假期", "full_paid_leave","54,56,58,59,60","全薪发放的假期; 54-年休假,56-婚假,58-陪产假,59-丧假,60-工伤假");
|
||||
RzSysParam param= paramService.getRzSysParam("全薪发放的假期", "full_paid_leave","54,56,57,58,59,60","全薪发放的假期; 54-年休假, 56-婚假,57-产假,58-陪产假,59-丧假,60-工伤假 (55-调休假 这是个特殊的假期, 加班会自动抵扣)");
|
||||
return Collections.asList(param.getParamValue().split(",")).stream().filter(StringUtils::isNotEmpty).map(Long::valueOf).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
@ -24,6 +24,8 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.evo.common.utils.poi.handler.ExcelHandlerAdapter;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.RegExUtils;
|
||||
import org.apache.commons.lang3.reflect.FieldUtils;
|
||||
|
||||
1889
evo-admin/src/main/java/com/evo/common/utils/poi/ExcelUtil1.java
Normal file
1889
evo-admin/src/main/java/com/evo/common/utils/poi/ExcelUtil1.java
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,20 @@
|
||||
package com.evo.common.utils.poi.handler;
|
||||
|
||||
import com.evo.common.annotation.Excel;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 特殊出具处理接口
|
||||
*
|
||||
* @ClassName:ExcelFieldHandlerAdapter
|
||||
* @date: 2025年07月12日 10:40
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface ExcelFieldHandlerAdapter {
|
||||
|
||||
List<String> buildExcel();
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.evo.common.utils.poi;
|
||||
package com.evo.common.utils.poi.handler;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
@ -0,0 +1,30 @@
|
||||
package com.evo.common.utils.poi.handler.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.evo.common.constant.Constants;
|
||||
import com.evo.common.utils.Collections;
|
||||
import com.evo.common.utils.poi.handler.ExcelFieldHandlerAdapter;
|
||||
import com.evo.common.utils.spring.SpringUtils;
|
||||
import com.evo.personnelMatters.domain.RzSubsidyInfo;
|
||||
import com.evo.personnelMatters.mapper.RzSubsidyInfoMapper;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:SysStaffExcelFieldHandlerAdapter
|
||||
* @date: 2025年07月12日 10:42
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
|
||||
public class SysStaffExcelFieldHandlerAdapter implements ExcelFieldHandlerAdapter {
|
||||
@Override
|
||||
public List<String> buildExcel() {
|
||||
return SpringUtils.getBean(RzSubsidyInfoMapper.class).selectList(new LambdaQueryWrapper<RzSubsidyInfo>().eq(RzSubsidyInfo::getDelFlag, Constants.DELETE_FLAG_0)).stream().map(RzSubsidyInfo::getName).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,109 @@
|
||||
package com.evo.kingdeeUtils;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.evo.common.utils.DateUtils;
|
||||
import com.evo.common.utils.spring.SpringUtils;
|
||||
import com.evo.kingdeeUtils.exception.KingdeeException;
|
||||
import com.evo.kingdeeUtils.kenum.BaseEnum;
|
||||
import com.evo.kingdeeUtils.kenum.KingdeeParamsEnum;
|
||||
import com.evo.kingdeeUtils.mapper.LogKingDeeMapper;
|
||||
import com.evo.kingdeeUtils.vo.LogKingDee;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:KingdeeRequestUtils
|
||||
* @date: 2025年07月11日 9:33
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
public class KingdeeRequestUtils {
|
||||
|
||||
/***
|
||||
* 员工保存接口
|
||||
* @param params
|
||||
* 参数说明对照关系: key-value
|
||||
* FName-员工姓名
|
||||
* FStaffNumber-员工编号
|
||||
* FNumber-岗位编号
|
||||
* FPostDept_FNumber_岗位所属部门编号
|
||||
*/
|
||||
public static void employeeSave(Map<String, String> params){
|
||||
// request(params, KingdeeParamsEnum.Employee.SAVE);
|
||||
}
|
||||
|
||||
/***
|
||||
* 员工禁用接口
|
||||
* @param params
|
||||
* 参数说明对照关系: key-value
|
||||
* Numbers-员工编码 (多个使用,分割, 即: 001,002,003)
|
||||
*/
|
||||
public static void employeeDisabled(Map<String, String> params){
|
||||
// request(params, KingdeeParamsEnum.Employee.DISABLED);
|
||||
}
|
||||
|
||||
/***
|
||||
* 岗位调整
|
||||
* @param params
|
||||
* 参数说明对照关系: key-value
|
||||
* NeedUpDateFields-更新字段 (多个使用,分割, 如:FDept_FNumber,FPosition_FNumber )
|
||||
* FNumber-员工编号
|
||||
* FDept_FNumber-部门编号
|
||||
* FPosition_FNumber-岗位编号
|
||||
*/
|
||||
public static void updateJobInfo(Map<String, String> params){
|
||||
// request(params, KingdeeParamsEnum.JobInfo.UPDATE);
|
||||
}
|
||||
|
||||
private static void request(Map<String, String> params, BaseEnum paramEnum){
|
||||
log.error("{}====> 接口调用, 参数为:{} ", paramEnum.getDes(), JSON.toJSONString(params));
|
||||
List<String> keyList = params.entrySet().stream().map(Map.Entry<String, String>::getKey).collect(Collectors.toList());
|
||||
Map<String,String> requiredParams = paramEnum.getRequiredParams();
|
||||
for (String key : requiredParams.keySet()){
|
||||
if(!keyList.contains(key)){
|
||||
throw new KingdeeException(requiredParams.get(key));
|
||||
}
|
||||
}
|
||||
String requestParam = paramEnum.getParamJson();
|
||||
for (String key : params.keySet()){
|
||||
requestParam = requestParam.replaceAll(key+ KingdeeParamsEnum.REQUEST_PARAM_SUFFIX, params.get(key));
|
||||
}
|
||||
//更新时间
|
||||
requestParam = requestParam.replaceAll("date"+KingdeeParamsEnum.REQUEST_PARAM_SUFFIX, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", new Date()));
|
||||
String resultJson = "";
|
||||
try {
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
resultJson = client.save(paramEnum.getFromId(), requestParam);
|
||||
log.info("{}====>接口返回结果: {}", paramEnum.getDes(), resultJson);
|
||||
|
||||
} catch (Exception e) {
|
||||
resultJson = e.getMessage();
|
||||
log.error("{}====>请求错误: {}", paramEnum.getDes(), e.getMessage());
|
||||
}finally {
|
||||
//记录日志
|
||||
instLog(paramEnum, params, requestParam, resultJson);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static void instLog(BaseEnum paramEnum, Map<String, String> params, String requestInfo, String response){
|
||||
LogKingDee logKingDee = new LogKingDee();
|
||||
logKingDee.setRequestTime(new Date());
|
||||
logKingDee.setType(paramEnum.getDes());
|
||||
logKingDee.setRequestParams(JSON.toJSONString(params));
|
||||
logKingDee.setRequestInfo(requestInfo);
|
||||
logKingDee.setResponse(response);
|
||||
SpringUtils.getBean(LogKingDeeMapper.class).insert(logKingDee);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.evo.kingdeeUtils.exception;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:KingdeeException
|
||||
* @date: 2025年07月11日 10:02
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class KingdeeException extends RuntimeException{
|
||||
|
||||
public KingdeeException(String message){
|
||||
super(message);
|
||||
log.error("推送金蝶出现错误---->>>>>>>{}", message);
|
||||
}
|
||||
|
||||
|
||||
public KingdeeException(String message, Throwable e)
|
||||
{
|
||||
super(message, e);
|
||||
log.error("推送金蝶出现错误---->>>>>>>错误信息{}, 异常信息:{}", message, e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.evo.kingdeeUtils.kenum;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 枚举
|
||||
* @ClassName:BaseEnum
|
||||
* @date: 2025年07月11日 10:26
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface BaseEnum {
|
||||
|
||||
|
||||
|
||||
abstract Map<String,String> getRequiredParams();
|
||||
|
||||
abstract String getParamJson();
|
||||
|
||||
abstract String getFromId();
|
||||
|
||||
abstract String getDes();
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
package com.evo.kingdeeUtils.kenum;
|
||||
|
||||
import com.evo.common.utils.Collections;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 金蝶请求的参数类枚举
|
||||
*
|
||||
* @ClassName:KingdeeRequest
|
||||
* @date: 2025年07月11日 8:59
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public enum KingdeeParamsEnum {
|
||||
|
||||
;
|
||||
|
||||
Enum paramEnum;
|
||||
|
||||
|
||||
KingdeeParamsEnum() {
|
||||
}
|
||||
|
||||
KingdeeParamsEnum(Enum paramEnum) {
|
||||
this.paramEnum = paramEnum;
|
||||
}
|
||||
|
||||
public static final String REQUEST_PARAM_SUFFIX="_param";
|
||||
|
||||
public enum JobInfo implements BaseEnum{
|
||||
UPDATE("岗位信息修改", "BD_NEWSTAFF", Collections.asMap("FNumber","员工编号不能为空","FDept_FNumber","部门编号不能为空","FPosition_FNumber","岗位编号不能为空"),"{\"NeedUpDateFields\":[NeedUpDateFields"+REQUEST_PARAM_SUFFIX+"],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"true\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"true\",\"ValidateFlag\":\"true\",\"NumberSearch\":\"true\",\"IsAutoAdjustField\":\"true\",\"InterationFlags\":\"\",\"IgnoreInterationFlag\":\"\",\"IsControlPrecision\":\"false\",\"ValidateRepeatJson\":\"false\",\"Model\":{\"FSTAFFID\":0,\"FNumber\":\"FNumber"+REQUEST_PARAM_SUFFIX+"\",\"FPerson\":{\"FNumber\":\"FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FDept\":{\"FNumber\":\"FDept_FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FPosition\":{\"FNumber\":\"FPosition_FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FStartDate\":\"date"+REQUEST_PARAM_SUFFIX+"\",\"FEmpInfoId\":{\"FNumber\":\"FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FPOSTBILLEntity\":{\"FIsFirstPost\":false},\"FOtherEntity\":{},\"FSHRMapEntity\":{}}}"),
|
||||
;
|
||||
String des;
|
||||
String fromId;
|
||||
Map<String,String> requiredParams;
|
||||
String paramJson;
|
||||
JobInfo(String des, String fromId, Map<String,String> requiredParams, String paramJson) {
|
||||
this.des = des;
|
||||
this.fromId = fromId;
|
||||
this.requiredParams = requiredParams;
|
||||
this.paramJson = paramJson;
|
||||
}
|
||||
@Override
|
||||
public Map<String, String> getRequiredParams() {
|
||||
return this.requiredParams;
|
||||
}
|
||||
@Override
|
||||
public String getParamJson() {
|
||||
return this.paramJson;
|
||||
}
|
||||
@Override
|
||||
public String getFromId() {
|
||||
return this.fromId;
|
||||
}
|
||||
@Override
|
||||
public String getDes() {
|
||||
return this.des;
|
||||
}
|
||||
}
|
||||
/***
|
||||
* 金蝶请求参数, 员工
|
||||
*/
|
||||
public enum Employee implements BaseEnum {
|
||||
SAVE("员工保存", "BD_Empinfo", Collections.asMap("FName","员工姓名不能为空","FStaffNumber","员工编号不能为空","FNumber","岗位编号不能为空"),"{\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"true\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"true\",\"ValidateFlag\":\"true\",\"NumberSearch\":\"true\",\"IsAutoAdjustField\":\"true\",\"InterationFlags\":\"\",\"IgnoreInterationFlag\":\"\",\"IsControlPrecision\":\"false\",\"ValidateRepeatJson\":\"false\",\"Model\":{\"FID\":0,\"FName\":\"FName"+REQUEST_PARAM_SUFFIX+"\",\"FStaffNumber\":\"FStaffNumber"+REQUEST_PARAM_SUFFIX+"\",\"FCreateSaler\":false,\"FCreateUser\":false,\"FCreateCashier\":false,\"FJoinDate\":\"date"+REQUEST_PARAM_SUFFIX+"\",\"FSHRMapEntity\":{},\"FPostEntity\":[{\"FPostDept\":{\"FNumber\":\"FPostDept_FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FPost\":{\"FNumber\":\"FNumber"+REQUEST_PARAM_SUFFIX+"\"},\"FStaffStartDate\":\"date"+REQUEST_PARAM_SUFFIX+"\",\"FIsFirstPost\":true,\"FStaffDetails\":0}]}}"),
|
||||
DISABLED("员工禁用","BD_Empinfo", Collections.asMap("Numbers","员工编码不能为空"),"{\"Numbers\":[Numbers"+REQUEST_PARAM_SUFFIX+"],\"Ids\":\"\",\"PkEntryIds\":[],\"UseOrgId\":0,\"NetworkCtrl\":\"\",\"IgnoreInterationFlag\":\"\"}")
|
||||
;
|
||||
String des;
|
||||
String fromId;
|
||||
Map<String,String> requiredParams;
|
||||
String paramJson;
|
||||
Employee(String des, String fromId, Map<String,String> requiredParams, String paramJson) {
|
||||
this.des = des;
|
||||
this.fromId = fromId;
|
||||
this.requiredParams = requiredParams;
|
||||
this.paramJson = paramJson;
|
||||
}
|
||||
@Override
|
||||
public Map<String, String> getRequiredParams() {
|
||||
return this.requiredParams;
|
||||
}
|
||||
@Override
|
||||
public String getParamJson() {
|
||||
return this.paramJson;
|
||||
}
|
||||
@Override
|
||||
public String getFromId() {
|
||||
return this.fromId;
|
||||
}
|
||||
@Override
|
||||
public String getDes() {
|
||||
return this.des;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.evo.kingdeeUtils.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.evo.kingdeeUtils.vo.LogKingDee;
|
||||
|
||||
/**
|
||||
* 金蝶日志请求接口
|
||||
*
|
||||
* @ClassName:LogKingDeeMapper
|
||||
* @date: 2025年07月11日 11:18
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface LogKingDeeMapper extends BaseMapper<LogKingDee> {
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
package com.evo.kingdeeUtils.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 请求日志类
|
||||
*
|
||||
* @ClassName:LogKingDee
|
||||
* @date: 2025年07月11日 11:15
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Data
|
||||
@TableName("sys_log_king_dee")
|
||||
public class LogKingDee implements Serializable {
|
||||
|
||||
/** 主键 */
|
||||
@TableId(type= IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private String type;
|
||||
|
||||
private String requestParams;
|
||||
|
||||
private String requestInfo;
|
||||
|
||||
private String response;
|
||||
|
||||
private Date requestTime;
|
||||
|
||||
}
|
||||
@ -6,10 +6,8 @@ import com.evo.common.core.domain.AjaxResult;
|
||||
import com.evo.common.core.page.TableDataInfo;
|
||||
import com.evo.common.enums.BusinessType;
|
||||
import com.evo.common.utils.poi.ExcelUtil;
|
||||
import com.evo.personnelMatters.domain.RzSubsidy;
|
||||
import com.evo.personnelMatters.domain.RzSubsidyInfo;
|
||||
import com.evo.personnelMatters.service.IRzSubsidyInfoService;
|
||||
import com.evo.personnelMatters.service.IRzSubsidyService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.evo.personnelMatters.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.evo.common.annotation.Excel;
|
||||
import com.evo.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
@ -39,6 +41,7 @@ public class RzSubsidyInfo extends BaseEntity
|
||||
private String remarks;
|
||||
|
||||
/** 删除标识 */
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String delFlag;
|
||||
|
||||
@Override
|
||||
|
||||
@ -52,9 +52,9 @@ public class SysStaffController extends BaseController
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, SysStaff sysStaff)
|
||||
{
|
||||
List<SysStaff> list = sysStaffService.selectSysStaffList(sysStaff);
|
||||
ExcelUtil<SysStaff> util = new ExcelUtil<SysStaff>(SysStaff.class);
|
||||
util.exportExcel(response, list, "员工管理数据");
|
||||
sysStaffService.exportInfo(response, sysStaff);
|
||||
// ExcelUtil<SysStaff> util = new ExcelUtil<SysStaff>(SysStaff.class);
|
||||
// util.exportExcel(response, list, "员工管理数据");
|
||||
}
|
||||
/**
|
||||
* 导出员工详情
|
||||
@ -63,9 +63,11 @@ public class SysStaffController extends BaseController
|
||||
@PostMapping("/exportDetail")
|
||||
public void exportDetail(HttpServletResponse response, SysStaff sysStaff)
|
||||
{
|
||||
List<SysStaffVo> list = sysStaffService.selectSysStaffDetailList(sysStaff);
|
||||
ExcelUtil<SysStaffVo> util = new ExcelUtil<SysStaffVo>(SysStaffVo.class);
|
||||
util.exportExcel(response, list, "员工详情数据");
|
||||
|
||||
sysStaffService.exportInfo(response, sysStaff);
|
||||
// List<SysStaffVo> list = sysStaffService.selectSysStaffDetailList(sysStaff);
|
||||
// ExcelUtil<SysStaffVo> util = new ExcelUtil<SysStaffVo>(SysStaffVo.class);
|
||||
// util.exportExcel(response, list, "员工详情数据");
|
||||
}
|
||||
/**
|
||||
* 获取员工管理详细信息
|
||||
|
||||
@ -47,6 +47,8 @@ public class SysStaff extends BaseEntity
|
||||
@TableField(exist = false)
|
||||
private String deptName;
|
||||
|
||||
private String jobCode;
|
||||
|
||||
/** 身份证号 */
|
||||
@Excel(name = "身份证号")
|
||||
private String idCard;
|
||||
|
||||
@ -1,769 +1,125 @@
|
||||
package com.evo.system.domain.vo;
|
||||
|
||||
import com.evo.common.annotation.Excel;
|
||||
import com.evo.common.utils.poi.handler.impl.SysStaffExcelFieldHandlerAdapter;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class SysStaffVo {
|
||||
/** 姓名 */
|
||||
@Excel(name = "* 姓名")
|
||||
private String name;
|
||||
@Excel(name = "* 公司", dictType = "sys_company")
|
||||
private String companyName;
|
||||
@Excel(name = "* 部门")
|
||||
private String deptName;
|
||||
/** 编号 */
|
||||
@Excel(name = "编号")
|
||||
private String code;
|
||||
/** 身份证号 */
|
||||
@Excel(name = "* 身份证号")
|
||||
private String idCard;
|
||||
/** 性别 */
|
||||
@Excel(name = "性别")
|
||||
@Excel(name = "性别", dictType = "sys_user_sex")
|
||||
private String sex;
|
||||
/** 年龄 */
|
||||
@Excel(name = "年龄")
|
||||
private Long age;
|
||||
/** 电话 */
|
||||
@Excel(name = "电话")
|
||||
private String phone;
|
||||
/** 住址 */
|
||||
@Excel(name = "住址")
|
||||
private String address;
|
||||
/** 学历 */
|
||||
@Excel(name = "* 学历")
|
||||
@Excel(name = "* 学历", dictType = "sys_level")
|
||||
private String level;
|
||||
/** 专业 */
|
||||
@Excel(name = "专业")
|
||||
private String major;
|
||||
/** 毕业学校 */
|
||||
@Excel(name = "毕业学校")
|
||||
private String school;
|
||||
/** 银行卡号 */
|
||||
@Excel(name = "银行卡号")
|
||||
private String bankNumber;
|
||||
/** 开户行 */
|
||||
@Excel(name = "专业")
|
||||
private String major;
|
||||
@Excel(name = "开户行")
|
||||
private String bank;
|
||||
/** 入职时间 */
|
||||
@Excel(name = "银行卡号")
|
||||
private String bankNumber;
|
||||
|
||||
@Excel(name = "在职状态", dictType = "sys_worker_status")
|
||||
private String status;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = " * 入职时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date employmentDate;
|
||||
/** 全额工资时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "全额工资时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date wagesRatioDate;
|
||||
/** 履历 */
|
||||
@Excel(name = "履历")
|
||||
private String experience;
|
||||
/** 试用期限 */
|
||||
@Excel(name = "试用期限")
|
||||
private Long workerTerm;
|
||||
/** 转正日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "转正日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date regularDate;
|
||||
/** 离职时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "离职时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date quitDate;
|
||||
/** 合同-起 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "合同-起", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date contractStart;
|
||||
/** 合同-止 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "合同-止", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date contractEnd;
|
||||
/** 合同类型 */
|
||||
@Excel(name = "* 合同期限")
|
||||
private String contractType;
|
||||
@Excel(name = "* 是否新农合")
|
||||
private String socialSubsidy;
|
||||
/** 社保 */
|
||||
@Excel(name = "* 社保")
|
||||
private String socialType;
|
||||
/** 工龄 */
|
||||
@Excel(name = "工龄")
|
||||
private Long seniority;
|
||||
|
||||
/** 是否有加班费 */
|
||||
@Excel(name = "* 加班费")
|
||||
private String isOvertimePay;
|
||||
/** 住宿标识 */
|
||||
@Excel(name = "* 住宿")
|
||||
@Excel(name = "* 是否住宿")
|
||||
private String zsFlag;
|
||||
/** 保密合同 */
|
||||
@Excel(name = "保密合同")
|
||||
private String secrecy;
|
||||
/** 工伤 */
|
||||
@Excel(name = "工伤")
|
||||
@Excel(name = "工伤险")
|
||||
private String injury;
|
||||
/** 雇主险 */
|
||||
@Excel(name = "雇主险")
|
||||
private String insurance;
|
||||
/** 介绍人 */
|
||||
@Excel(name = "介绍人")
|
||||
private String introducer;
|
||||
/** 是否打卡 */
|
||||
@Excel(name = "* 打卡")
|
||||
@Excel(name = "* 是否打卡")
|
||||
private String clockIn;
|
||||
/** 在职状态 */
|
||||
@Excel(name = "在职状态")
|
||||
private String status;
|
||||
@Excel(name = "* 公司")
|
||||
private String companyName;
|
||||
|
||||
|
||||
@Excel(name = "基本工资")
|
||||
private BigDecimal basicSalary;
|
||||
/** 岗位工资 */
|
||||
@Excel(name = "岗位工资")
|
||||
private BigDecimal jobsSalary;
|
||||
/** 日薪 */
|
||||
@Excel(name = "日薪")
|
||||
private BigDecimal dailyWage;
|
||||
/** 时薪 */
|
||||
@Excel(name = "时薪")
|
||||
private BigDecimal hoursSalary;
|
||||
/** 全勤奖 */
|
||||
@Excel(name = "全勤奖")
|
||||
private BigDecimal fullFrequentlySubsidies;
|
||||
/** 学历补助 */
|
||||
@Excel(name = "学历补助")
|
||||
private BigDecimal levelOfEducationSubsidies;
|
||||
/** 合同补助 */
|
||||
@Excel(name = "合同补助")
|
||||
private BigDecimal contractSubsidies;
|
||||
/** 工龄补助 */
|
||||
@Excel(name = "工龄补助")
|
||||
private BigDecimal senioritySubsidies;
|
||||
/** 社保补助 */
|
||||
@Excel(name = "社保补助")
|
||||
private BigDecimal socialSecuritySubsidies;
|
||||
|
||||
@Excel(name = "中班补助")
|
||||
private BigDecimal middleSubsidies;
|
||||
/** 夜班补助 */
|
||||
@Excel(name = "夜班补助")
|
||||
private BigDecimal nightShiftSubsidies;
|
||||
/** 夜餐补助 */
|
||||
@Excel(name = "夜餐补助")
|
||||
private BigDecimal dinnerSubsidies;
|
||||
/** 固定补助 */
|
||||
@Excel(name = "享有补助", customExcelField = true, excelFieldHandler= SysStaffExcelFieldHandlerAdapter.class, defaultValue = "0")
|
||||
private Map<String, Object> subsidyMap;
|
||||
@Excel(name = "固定补助")
|
||||
private BigDecimal fixedAllowance;
|
||||
/** 其他补助 */
|
||||
@Excel(name = "其他补助")
|
||||
private BigDecimal otherSubsidies;
|
||||
/** 早餐消费 */
|
||||
@Excel(name = "早餐消费")
|
||||
private BigDecimal breakfastExpend;
|
||||
/** 午餐消费 */
|
||||
@Excel(name = "午餐消费")
|
||||
private BigDecimal lunchExpend;
|
||||
/** 晚餐消费 */
|
||||
@Excel(name = "晚餐消费")
|
||||
private BigDecimal supperExpend;
|
||||
/** 离职扣款 */
|
||||
@Excel(name = "离职扣款")
|
||||
private BigDecimal subsidyDeductMoney;
|
||||
/** 其他扣款 */
|
||||
@Excel(name = "其他扣款")
|
||||
private BigDecimal deductions;
|
||||
/** 养老保险 */
|
||||
|
||||
@Excel(name = "养老保险")
|
||||
private BigDecimal endowmentInsurance;
|
||||
/** 医疗保险 */
|
||||
@Excel(name = "医疗保险")
|
||||
private BigDecimal medicalInsurance;
|
||||
/** 工伤保险 */
|
||||
@Excel(name = "工伤保险")
|
||||
private BigDecimal employmentInjuryInsurance;
|
||||
/** 生育保险 */
|
||||
@Excel(name = "生育保险")
|
||||
private BigDecimal maternityInsurance;
|
||||
/** 失业保险 */
|
||||
@Excel(name = "失业保险")
|
||||
private BigDecimal unemploymentInsurance;
|
||||
/** 公积金 */
|
||||
@Excel(name = "公积金")
|
||||
private BigDecimal accumulationFund;
|
||||
/** 子女教育 */
|
||||
|
||||
@Excel(name = "子女教育")
|
||||
private BigDecimal childrenEducation;
|
||||
/** 赡养老人 */
|
||||
@Excel(name = "赡养老人")
|
||||
private BigDecimal supportTheOld;
|
||||
/** 住房贷款 */
|
||||
@Excel(name = "住房贷款")
|
||||
private BigDecimal housingLoans;
|
||||
/** 住房租金 */
|
||||
@Excel(name = "住房租金")
|
||||
private BigDecimal housingRents;
|
||||
/** 继续教育 */
|
||||
@Excel(name = "继续教育")
|
||||
private BigDecimal adultEducation;
|
||||
/** 大病医疗 */
|
||||
@Excel(name = "大病医疗")
|
||||
private BigDecimal treatmentForSeriousDisease;
|
||||
/** 本年累计专项附加扣除 */
|
||||
|
||||
@Excel(name = "本年累计专项附加扣除")
|
||||
private BigDecimal specialDeduction;
|
||||
/** 本年累计已发工资 */
|
||||
@Excel(name = "本年累计已发工资")
|
||||
private BigDecimal totalWages;
|
||||
/** 本年累计已缴个税 */
|
||||
@Excel(name = "本年累计已缴个税")
|
||||
private BigDecimal aggregatePersonalIncomeTax;
|
||||
/** 备注 */
|
||||
|
||||
@Excel(name = "备注")
|
||||
private String remarks;
|
||||
|
||||
public String getSocialSubsidy() {
|
||||
return socialSubsidy;
|
||||
}
|
||||
|
||||
public void setSocialSubsidy(String socialSubsidy) {
|
||||
this.socialSubsidy = socialSubsidy;
|
||||
}
|
||||
|
||||
public BigDecimal getMiddleSubsidies() {
|
||||
return middleSubsidies;
|
||||
}
|
||||
|
||||
public void setMiddleSubsidies(BigDecimal middleSubsidies) {
|
||||
this.middleSubsidies = middleSubsidies;
|
||||
}
|
||||
|
||||
public String getCompanyName() {
|
||||
return companyName;
|
||||
}
|
||||
|
||||
public void setCompanyName(String companyName) {
|
||||
this.companyName = companyName;
|
||||
}
|
||||
|
||||
public String getDeptName() {
|
||||
return deptName;
|
||||
}
|
||||
|
||||
public void setDeptName(String deptName) {
|
||||
this.deptName = deptName;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getIdCard() {
|
||||
return idCard;
|
||||
}
|
||||
|
||||
public void setIdCard(String idCard) {
|
||||
this.idCard = idCard;
|
||||
}
|
||||
|
||||
public String getSex() {
|
||||
return sex;
|
||||
}
|
||||
|
||||
public void setSex(String sex) {
|
||||
this.sex = sex;
|
||||
}
|
||||
|
||||
public Long getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(Long age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public String getMajor() {
|
||||
return major;
|
||||
}
|
||||
|
||||
public void setMajor(String major) {
|
||||
this.major = major;
|
||||
}
|
||||
|
||||
public String getSchool() {
|
||||
return school;
|
||||
}
|
||||
|
||||
public void setSchool(String school) {
|
||||
this.school = school;
|
||||
}
|
||||
|
||||
public String getBankNumber() {
|
||||
return bankNumber;
|
||||
}
|
||||
|
||||
public void setBankNumber(String bankNumber) {
|
||||
this.bankNumber = bankNumber;
|
||||
}
|
||||
|
||||
public String getBank() {
|
||||
return bank;
|
||||
}
|
||||
|
||||
public void setBank(String bank) {
|
||||
this.bank = bank;
|
||||
}
|
||||
|
||||
public Date getEmploymentDate() {
|
||||
return employmentDate;
|
||||
}
|
||||
|
||||
public void setEmploymentDate(Date employmentDate) {
|
||||
this.employmentDate = employmentDate;
|
||||
}
|
||||
|
||||
public Date getWagesRatioDate() {
|
||||
return wagesRatioDate;
|
||||
}
|
||||
|
||||
public void setWagesRatioDate(Date wagesRatioDate) {
|
||||
this.wagesRatioDate = wagesRatioDate;
|
||||
}
|
||||
|
||||
public String getExperience() {
|
||||
return experience;
|
||||
}
|
||||
|
||||
public void setExperience(String experience) {
|
||||
this.experience = experience;
|
||||
}
|
||||
|
||||
public Long getWorkerTerm() {
|
||||
return workerTerm;
|
||||
}
|
||||
|
||||
public void setWorkerTerm(Long workerTerm) {
|
||||
this.workerTerm = workerTerm;
|
||||
}
|
||||
|
||||
public Date getRegularDate() {
|
||||
return regularDate;
|
||||
}
|
||||
|
||||
public void setRegularDate(Date regularDate) {
|
||||
this.regularDate = regularDate;
|
||||
}
|
||||
|
||||
public Date getQuitDate() {
|
||||
return quitDate;
|
||||
}
|
||||
|
||||
public void setQuitDate(Date quitDate) {
|
||||
this.quitDate = quitDate;
|
||||
}
|
||||
|
||||
public Date getContractStart() {
|
||||
return contractStart;
|
||||
}
|
||||
|
||||
public void setContractStart(Date contractStart) {
|
||||
this.contractStart = contractStart;
|
||||
}
|
||||
|
||||
public Date getContractEnd() {
|
||||
return contractEnd;
|
||||
}
|
||||
|
||||
public void setContractEnd(Date contractEnd) {
|
||||
this.contractEnd = contractEnd;
|
||||
}
|
||||
|
||||
public String getContractType() {
|
||||
return contractType;
|
||||
}
|
||||
|
||||
public void setContractType(String contractType) {
|
||||
this.contractType = contractType;
|
||||
}
|
||||
|
||||
public String getSocialType() {
|
||||
return socialType;
|
||||
}
|
||||
|
||||
public void setSocialType(String socialType) {
|
||||
this.socialType = socialType;
|
||||
}
|
||||
|
||||
public Long getSeniority() {
|
||||
return seniority;
|
||||
}
|
||||
|
||||
public void setSeniority(Long seniority) {
|
||||
this.seniority = seniority;
|
||||
}
|
||||
|
||||
public String getIsOvertimePay() {
|
||||
return isOvertimePay;
|
||||
}
|
||||
|
||||
public void setIsOvertimePay(String isOvertimePay) {
|
||||
this.isOvertimePay = isOvertimePay;
|
||||
}
|
||||
|
||||
public String getZsFlag() {
|
||||
return zsFlag;
|
||||
}
|
||||
|
||||
public void setZsFlag(String zsFlag) {
|
||||
this.zsFlag = zsFlag;
|
||||
}
|
||||
|
||||
public String getSecrecy() {
|
||||
return secrecy;
|
||||
}
|
||||
|
||||
public void setSecrecy(String secrecy) {
|
||||
this.secrecy = secrecy;
|
||||
}
|
||||
|
||||
public String getInjury() {
|
||||
return injury;
|
||||
}
|
||||
|
||||
public void setInjury(String injury) {
|
||||
this.injury = injury;
|
||||
}
|
||||
|
||||
public String getInsurance() {
|
||||
return insurance;
|
||||
}
|
||||
|
||||
public void setInsurance(String insurance) {
|
||||
this.insurance = insurance;
|
||||
}
|
||||
|
||||
public String getIntroducer() {
|
||||
return introducer;
|
||||
}
|
||||
|
||||
public void setIntroducer(String introducer) {
|
||||
this.introducer = introducer;
|
||||
}
|
||||
|
||||
public String getClockIn() {
|
||||
return clockIn;
|
||||
}
|
||||
|
||||
public void setClockIn(String clockIn) {
|
||||
this.clockIn = clockIn;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public BigDecimal getBasicSalary() {
|
||||
return basicSalary;
|
||||
}
|
||||
|
||||
public void setBasicSalary(BigDecimal basicSalary) {
|
||||
this.basicSalary = basicSalary;
|
||||
}
|
||||
|
||||
public BigDecimal getJobsSalary() {
|
||||
return jobsSalary;
|
||||
}
|
||||
|
||||
public void setJobsSalary(BigDecimal jobsSalary) {
|
||||
this.jobsSalary = jobsSalary;
|
||||
}
|
||||
|
||||
public BigDecimal getDailyWage() {
|
||||
return dailyWage;
|
||||
}
|
||||
|
||||
public void setDailyWage(BigDecimal dailyWage) {
|
||||
this.dailyWage = dailyWage;
|
||||
}
|
||||
|
||||
public BigDecimal getHoursSalary() {
|
||||
return hoursSalary;
|
||||
}
|
||||
|
||||
public void setHoursSalary(BigDecimal hoursSalary) {
|
||||
this.hoursSalary = hoursSalary;
|
||||
}
|
||||
|
||||
public BigDecimal getFullFrequentlySubsidies() {
|
||||
return fullFrequentlySubsidies;
|
||||
}
|
||||
|
||||
public void setFullFrequentlySubsidies(BigDecimal fullFrequentlySubsidies) {
|
||||
this.fullFrequentlySubsidies = fullFrequentlySubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getLevelOfEducationSubsidies() {
|
||||
return levelOfEducationSubsidies;
|
||||
}
|
||||
|
||||
public void setLevelOfEducationSubsidies(BigDecimal levelOfEducationSubsidies) {
|
||||
this.levelOfEducationSubsidies = levelOfEducationSubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getContractSubsidies() {
|
||||
return contractSubsidies;
|
||||
}
|
||||
|
||||
public void setContractSubsidies(BigDecimal contractSubsidies) {
|
||||
this.contractSubsidies = contractSubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getSenioritySubsidies() {
|
||||
return senioritySubsidies;
|
||||
}
|
||||
|
||||
public void setSenioritySubsidies(BigDecimal senioritySubsidies) {
|
||||
this.senioritySubsidies = senioritySubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getSocialSecuritySubsidies() {
|
||||
return socialSecuritySubsidies;
|
||||
}
|
||||
|
||||
public void setSocialSecuritySubsidies(BigDecimal socialSecuritySubsidies) {
|
||||
this.socialSecuritySubsidies = socialSecuritySubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getNightShiftSubsidies() {
|
||||
return nightShiftSubsidies;
|
||||
}
|
||||
|
||||
public void setNightShiftSubsidies(BigDecimal nightShiftSubsidies) {
|
||||
this.nightShiftSubsidies = nightShiftSubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getDinnerSubsidies() {
|
||||
return dinnerSubsidies;
|
||||
}
|
||||
|
||||
public void setDinnerSubsidies(BigDecimal dinnerSubsidies) {
|
||||
this.dinnerSubsidies = dinnerSubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getFixedAllowance() {
|
||||
return fixedAllowance;
|
||||
}
|
||||
|
||||
public void setFixedAllowance(BigDecimal fixedAllowance) {
|
||||
this.fixedAllowance = fixedAllowance;
|
||||
}
|
||||
|
||||
public BigDecimal getOtherSubsidies() {
|
||||
return otherSubsidies;
|
||||
}
|
||||
|
||||
public void setOtherSubsidies(BigDecimal otherSubsidies) {
|
||||
this.otherSubsidies = otherSubsidies;
|
||||
}
|
||||
|
||||
public BigDecimal getBreakfastExpend() {
|
||||
return breakfastExpend;
|
||||
}
|
||||
|
||||
public void setBreakfastExpend(BigDecimal breakfastExpend) {
|
||||
this.breakfastExpend = breakfastExpend;
|
||||
}
|
||||
|
||||
public BigDecimal getLunchExpend() {
|
||||
return lunchExpend;
|
||||
}
|
||||
|
||||
public void setLunchExpend(BigDecimal lunchExpend) {
|
||||
this.lunchExpend = lunchExpend;
|
||||
}
|
||||
|
||||
public BigDecimal getSupperExpend() {
|
||||
return supperExpend;
|
||||
}
|
||||
|
||||
public void setSupperExpend(BigDecimal supperExpend) {
|
||||
this.supperExpend = supperExpend;
|
||||
}
|
||||
|
||||
public BigDecimal getSubsidyDeductMoney() {
|
||||
return subsidyDeductMoney;
|
||||
}
|
||||
|
||||
public void setSubsidyDeductMoney(BigDecimal subsidyDeductMoney) {
|
||||
this.subsidyDeductMoney = subsidyDeductMoney;
|
||||
}
|
||||
|
||||
public BigDecimal getDeductions() {
|
||||
return deductions;
|
||||
}
|
||||
|
||||
public void setDeductions(BigDecimal deductions) {
|
||||
this.deductions = deductions;
|
||||
}
|
||||
|
||||
public BigDecimal getEndowmentInsurance() {
|
||||
return endowmentInsurance;
|
||||
}
|
||||
|
||||
public void setEndowmentInsurance(BigDecimal endowmentInsurance) {
|
||||
this.endowmentInsurance = endowmentInsurance;
|
||||
}
|
||||
|
||||
public BigDecimal getMedicalInsurance() {
|
||||
return medicalInsurance;
|
||||
}
|
||||
|
||||
public void setMedicalInsurance(BigDecimal medicalInsurance) {
|
||||
this.medicalInsurance = medicalInsurance;
|
||||
}
|
||||
|
||||
public BigDecimal getEmploymentInjuryInsurance() {
|
||||
return employmentInjuryInsurance;
|
||||
}
|
||||
|
||||
public void setEmploymentInjuryInsurance(BigDecimal employmentInjuryInsurance) {
|
||||
this.employmentInjuryInsurance = employmentInjuryInsurance;
|
||||
}
|
||||
|
||||
public BigDecimal getMaternityInsurance() {
|
||||
return maternityInsurance;
|
||||
}
|
||||
|
||||
public void setMaternityInsurance(BigDecimal maternityInsurance) {
|
||||
this.maternityInsurance = maternityInsurance;
|
||||
}
|
||||
|
||||
public BigDecimal getUnemploymentInsurance() {
|
||||
return unemploymentInsurance;
|
||||
}
|
||||
|
||||
public void setUnemploymentInsurance(BigDecimal unemploymentInsurance) {
|
||||
this.unemploymentInsurance = unemploymentInsurance;
|
||||
}
|
||||
|
||||
public BigDecimal getAccumulationFund() {
|
||||
return accumulationFund;
|
||||
}
|
||||
|
||||
public void setAccumulationFund(BigDecimal accumulationFund) {
|
||||
this.accumulationFund = accumulationFund;
|
||||
}
|
||||
|
||||
public BigDecimal getChildrenEducation() {
|
||||
return childrenEducation;
|
||||
}
|
||||
|
||||
public void setChildrenEducation(BigDecimal childrenEducation) {
|
||||
this.childrenEducation = childrenEducation;
|
||||
}
|
||||
|
||||
public BigDecimal getSupportTheOld() {
|
||||
return supportTheOld;
|
||||
}
|
||||
|
||||
public void setSupportTheOld(BigDecimal supportTheOld) {
|
||||
this.supportTheOld = supportTheOld;
|
||||
}
|
||||
|
||||
public BigDecimal getHousingLoans() {
|
||||
return housingLoans;
|
||||
}
|
||||
|
||||
public void setHousingLoans(BigDecimal housingLoans) {
|
||||
this.housingLoans = housingLoans;
|
||||
}
|
||||
|
||||
public BigDecimal getHousingRents() {
|
||||
return housingRents;
|
||||
}
|
||||
|
||||
public void setHousingRents(BigDecimal housingRents) {
|
||||
this.housingRents = housingRents;
|
||||
}
|
||||
|
||||
public BigDecimal getAdultEducation() {
|
||||
return adultEducation;
|
||||
}
|
||||
|
||||
public void setAdultEducation(BigDecimal adultEducation) {
|
||||
this.adultEducation = adultEducation;
|
||||
}
|
||||
|
||||
public BigDecimal getTreatmentForSeriousDisease() {
|
||||
return treatmentForSeriousDisease;
|
||||
}
|
||||
|
||||
public void setTreatmentForSeriousDisease(BigDecimal treatmentForSeriousDisease) {
|
||||
this.treatmentForSeriousDisease = treatmentForSeriousDisease;
|
||||
}
|
||||
|
||||
public BigDecimal getSpecialDeduction() {
|
||||
return specialDeduction;
|
||||
}
|
||||
|
||||
public void setSpecialDeduction(BigDecimal specialDeduction) {
|
||||
this.specialDeduction = specialDeduction;
|
||||
}
|
||||
|
||||
public BigDecimal getTotalWages() {
|
||||
return totalWages;
|
||||
}
|
||||
|
||||
public void setTotalWages(BigDecimal totalWages) {
|
||||
this.totalWages = totalWages;
|
||||
}
|
||||
public BigDecimal getAggregatePersonalIncomeTax() {
|
||||
return aggregatePersonalIncomeTax;
|
||||
}
|
||||
|
||||
public void setAggregatePersonalIncomeTax(BigDecimal aggregatePersonalIncomeTax) {
|
||||
this.aggregatePersonalIncomeTax = aggregatePersonalIncomeTax;
|
||||
}
|
||||
public String getRemarks() {
|
||||
return remarks;
|
||||
}
|
||||
|
||||
public void setRemarks(String remarks) {
|
||||
this.remarks = remarks;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import com.evo.system.domain.SysStaff;
|
||||
import com.evo.system.domain.vo.SysStaffVo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -100,4 +101,11 @@ public interface ISysStaffService extends IService<SysStaff>
|
||||
SysStaff selectByDepId(Long deptId);
|
||||
|
||||
AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList);
|
||||
|
||||
/***
|
||||
* 数据导出
|
||||
* @param response
|
||||
* @param sysStaff
|
||||
*/
|
||||
void exportInfo(HttpServletResponse response, SysStaff sysStaff);
|
||||
}
|
||||
|
||||
@ -11,8 +11,14 @@ import com.evo.common.core.domain.entity.RzUpload;
|
||||
import com.evo.common.core.domain.entity.SysDept;
|
||||
import com.evo.common.core.domain.entity.SysDictData;
|
||||
import com.evo.common.utils.*;
|
||||
import com.evo.common.utils.Collections;
|
||||
import com.evo.common.utils.bean.BeanUtils;
|
||||
import com.evo.common.utils.poi.ExcelUtil;
|
||||
import com.evo.common.utils.poi.ExcelUtil1;
|
||||
import com.evo.equipment.service.IEqSnDetailService;
|
||||
import com.evo.kingdeeUtils.KingdeeRequestUtils;
|
||||
import com.evo.personnelMatters.domain.RzSubsidyInfo;
|
||||
import com.evo.personnelMatters.mapper.RzSubsidyInfoMapper;
|
||||
import com.evo.restaurant.service.IRzRestaurantStatisticsService;
|
||||
import com.evo.system.domain.SysStaff;
|
||||
import com.evo.system.domain.SysStaffDetail;
|
||||
@ -23,6 +29,7 @@ import com.evo.system.mapper.SysStaffDetailMapper;
|
||||
import com.evo.system.mapper.SysStaffMapper;
|
||||
import com.evo.system.service.ISysStaffService;
|
||||
import com.evo.system.service.RzUploadService;
|
||||
import com.evo.system.utils.SubsidyCalculationUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -35,14 +42,11 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -69,6 +73,8 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
private RzUploadService rzUploadService;//文件上传
|
||||
@Resource
|
||||
private IEqSnDetailService eqSnDetailService;//设备信息
|
||||
@Resource
|
||||
private RzSubsidyInfoMapper rzSubsidyInfoMapper;
|
||||
/**
|
||||
* 查询员工管理
|
||||
*
|
||||
@ -152,6 +158,9 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
rzRestaurantStatisticsService.createRestaurantStatistics(sysStaff, DateUtils.getNowDate());
|
||||
//处理考勤机相关信息
|
||||
initCheckDevice(sysStaff);
|
||||
//新增员工信息到金蝶
|
||||
KingdeeRequestUtils.employeeSave(Collections.asMap("FName", sysStaff.getName(), "FStaffNumber", sysStaff.getCode(), "FNumber", sysStaff.getJobCode().split("_")[0]));
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ -223,6 +232,8 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
if(i < 1){
|
||||
return AjaxResult.error();
|
||||
}
|
||||
//如果是离职, 推送金蝶禁用
|
||||
KingdeeRequestUtils.employeeDisabled(Collections.asMap("Numbers",sysStaff.getJobCode().split("_")[0]));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
@ -237,6 +248,10 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
}
|
||||
//根据员工ID查询原来的数据信息
|
||||
SysStaff old_staff = getBaseMapper().selectSysStaffByUserId(sysStaff.getUserId());
|
||||
//检查是否修改岗位
|
||||
if(!old_staff.getJobCode().equals(sysStaff.getJobCode())) {
|
||||
KingdeeRequestUtils.updateJobInfo(Collections.asMap("NeedUpDateFields","\"FDept\",\"FPosition\"", "FNumber", sysStaff.getCode(), "FDept_FNumber", sysStaff.getJobCode().split("_")[1], "FPosition_FNumber", sysStaff.getJobCode().split("_")[0]));
|
||||
}
|
||||
//判断员工更换公司
|
||||
if(!old_staff.getCompanyName().equals(sysStaff.getCompanyName())) {
|
||||
SysStaffDetail sysStaffDetail = sysStaffDetailMapper.selectSysStaffDetailByStaffId(sysStaff.getUserId());
|
||||
@ -480,8 +495,8 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
for (SysStaffVo Staffvo : staffList){
|
||||
//判断必填项是否为空,为空执行下一条数据: 身份证号,姓名,部门,是否有加班费,入职日期,学历,打卡,合同,社保
|
||||
if(StringUtils.isEmpty(Staffvo.getIdCard()) || StringUtils.isEmpty(Staffvo.getName()) || StringUtils.isEmpty(Staffvo.getDeptName())
|
||||
|| StringUtils.isEmpty(Staffvo.getIsOvertimePay()) || Staffvo.getEmploymentDate() == null || StringUtils.isEmpty(Staffvo.getLevel())
|
||||
|| StringUtils.isEmpty(Staffvo.getClockIn()) || StringUtils.isEmpty(Staffvo.getContractType()) || StringUtils.isEmpty(Staffvo.getSocialType())
|
||||
|| Staffvo.getEmploymentDate() == null || StringUtils.isEmpty(Staffvo.getLevel())
|
||||
|| StringUtils.isEmpty(Staffvo.getClockIn()) || StringUtils.isEmpty(Staffvo.getSocialType())
|
||||
|| StringUtils.isEmpty(Staffvo.getSocialSubsidy())){
|
||||
continue;
|
||||
}
|
||||
@ -526,12 +541,12 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
}
|
||||
}
|
||||
//合同年限
|
||||
for (SysDictData sysDictData : ht_list) {
|
||||
if(sysDictData.getDictLabel().equals(Staffvo.getContractType())){
|
||||
sysStaff.setContractType(sysDictData.getDictValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
// for (SysDictData sysDictData : ht_list) {
|
||||
// if(sysDictData.getDictLabel().equals(Staffvo.getContractType())){
|
||||
// sysStaff.setContractType(sysDictData.getDictValue());
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//计算性别和年龄
|
||||
if(StringUtils.isNotEmpty(sysStaff.getIdCard())){
|
||||
//根据身份证解析性别和年龄
|
||||
@ -707,5 +722,45 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exportInfo(HttpServletResponse response, SysStaff sysStaff) {
|
||||
List<SysStaffVo> res_list = new ArrayList<SysStaffVo>();
|
||||
//查询员工信息
|
||||
List<SysStaff> yg_list = getBaseMapper().selectSysStaffList(sysStaff);
|
||||
List<Long> userIds = yg_list.stream().map(SysStaff::getUserId).collect(Collectors.toList());
|
||||
Map<Long, SysStaffDetail> detailMap = sysStaffDetailMapper.selectList(new LambdaQueryWrapper<SysStaffDetail>().eq(SysStaffDetail::getDelFlag, Constants.DELETE_FLAG_0).in(SysStaffDetail::getStaffId,userIds)).stream().collect(Collectors.toMap(SysStaffDetail::getStaffId, v->v));
|
||||
List<RzSubsidyInfo> subsidyList = rzSubsidyInfoMapper.selectList(new LambdaQueryWrapper<RzSubsidyInfo>());
|
||||
Map<Long, String> subsidyMap = rzSubsidyInfoMapper.selectList(new LambdaQueryWrapper<RzSubsidyInfo>()).stream().collect(Collectors.toMap(RzSubsidyInfo::getId, RzSubsidyInfo::getName));
|
||||
|
||||
for (SysStaff staff : yg_list) {
|
||||
SysStaffVo sysStaffVo = new SysStaffVo();
|
||||
BeanUtils.copyProperties(staff,sysStaffVo);
|
||||
//根据员工信息查询详情信息
|
||||
SysStaffDetail sysStaffDetail = SubsidyCalculationUtils.subsidyCalculation(staff,detailMap.get(staff.getUserId()), subsidyList);
|
||||
BeanUtils.copyProperties(sysStaffDetail,sysStaffVo);
|
||||
// StringBuilder subsidyInfo = new StringBuilder("");
|
||||
// for (String key : sysStaffDetail.getExtendeds().keySet()){
|
||||
// subsidyInfo.append(key).append("-").append(sysStaffDetail.getExtendeds().get(key)).append("元,");
|
||||
// }
|
||||
// sysStaffVo.setSubsidyInfo(subsidyInfo.toString());
|
||||
sysStaffVo.setSubsidyMap(sysStaffDetail.getExtendeds());
|
||||
res_list.add(sysStaffVo);
|
||||
}
|
||||
ExcelUtil1<SysStaffVo> util = new ExcelUtil1<SysStaffVo>(SysStaffVo.class);
|
||||
util.exportExcel(response, res_list, "员工信息");
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
BufferedReader reader = new BufferedReader(new FileReader(new File("D:\\andy\\文档\\考勤\\岗位任职部门信息.txt")));
|
||||
String line = reader.readLine();
|
||||
while (line != null) {
|
||||
String[] configData = line.split("_");
|
||||
System.out.println("update sys_dict_data set dict_value='"+line+"' where dict_value='"+configData[0]+"';\n");
|
||||
line = reader.readLine();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysStaffVo">
|
||||
select user_id,company_name, dept_id, code, name, id_card,is_leader, sex, age, phone, address, level, major, school, bank_number,social_subsidy, bank, employment_date, experience, worker_term, regular_date, quit_date, contract_start, contract_end, contract_type, social_type, seniority, is_overtime_pay, zs_flag, secrecy, injury, insurance, introducer, clock_in, status, wages_ratio_date, remarks, del_flag, create_by, create_time, update_by, update_time, image_url,time_clock,subsidys from sys_staff
|
||||
select user_id,company_name, dept_id, code, name, id_card,is_leader, sex, age, phone, address, level, major, school, bank_number,social_subsidy, bank, employment_date, experience, worker_term, regular_date, quit_date, contract_start, contract_end, contract_type, social_type, seniority, is_overtime_pay, zs_flag, secrecy, injury, insurance, introducer, clock_in, status, wages_ratio_date, remarks, del_flag, create_by, create_time, update_by, update_time, image_url,time_clock,subsidys, job_code from sys_staff
|
||||
</sql>
|
||||
|
||||
<select id="selectSysStaffList" parameterType="com.evo.system.domain.SysStaff" resultMap="SysStaffResult">
|
||||
@ -131,7 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="imageUrl != null">image_url,</if>
|
||||
<if test="timeClock != null">time_clock,</if>
|
||||
<if test="subsidys != null">subsidys,</if>
|
||||
|
||||
<if test="jobCode != null">job_code,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="companyName != null">#{companyName},</if>
|
||||
@ -178,6 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="imageUrl != null">#{imageUrl},</if>
|
||||
<if test="timeClock != null">#{timeClock},</if>
|
||||
<if test="subsidys != null">#{subsidys},</if>
|
||||
<if test="jobCode != null">#{jobCode},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user