diff --git a/evo-admin/src/main/java/com/evo/EvoApplication.java b/evo-admin/src/main/java/com/evo/EvoApplication.java index 26f9690..d9284f8 100644 --- a/evo-admin/src/main/java/com/evo/EvoApplication.java +++ b/evo-admin/src/main/java/com/evo/EvoApplication.java @@ -13,7 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) @EnableScheduling -@MapperScan({"com.evo.**.mapper"}) +@MapperScan({"com.evo.**.mapper.**.**"}) public class EvoApplication { public static void main(String[] args) diff --git a/evo-admin/src/main/java/com/evo/common/constant/Constants.java b/evo-admin/src/main/java/com/evo/common/constant/Constants.java index fa46e89..3c0525f 100644 --- a/evo-admin/src/main/java/com/evo/common/constant/Constants.java +++ b/evo-admin/src/main/java/com/evo/common/constant/Constants.java @@ -102,6 +102,7 @@ public class Constants public static final String DELETE_FLAG_0 = "0"; //添加信息 public static final String DELETE_FLAG_1 = "1"; //删除信息 public static final String JOB_STATIS_0 = "0"; //员工 试用 + public static final String JOB_STATIS_1 = "1"; //员工 正式 public static final String SYS_COMPANY = "sys_company"; //公司简称 public static final String SYS_CONTRACT = "sys_contract"; //合同年限 public static final String SYS_LEVEL = "sys_level"; //学历 @@ -111,6 +112,7 @@ public class Constants public static final String SEIZE_A_SEAT_1 = "00"; //占位符 public static final String SEIZE_A_SEAT_2 = "000"; //占位符 public static final String SYS_SENIORITY_SUBSIDIES = "50"; //工龄补助 + public static final Integer SYS_CONTRACT_SUBSIDY = 50; //合同补助的基数 public static final String SYS_CONTRACT_0 = "50"; //一年期合同补助 public static final String SYS_CONTRACT_1 = "150"; //三年期合同补助 public static final String SYS_SOCIAL_SUBSIDIES = "400"; //新农合社保补助 diff --git a/evo-admin/src/main/java/com/evo/common/core/domain/BaseEntity.java b/evo-admin/src/main/java/com/evo/common/core/domain/BaseEntity.java index 48e7d47..ac87b8f 100644 --- a/evo-admin/src/main/java/com/evo/common/core/domain/BaseEntity.java +++ b/evo-admin/src/main/java/com/evo/common/core/domain/BaseEntity.java @@ -7,6 +7,7 @@ import java.util.Map; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; +import com.evo.common.utils.Collections; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @@ -52,6 +53,9 @@ public class BaseEntity implements Serializable @TableField(exist = false) private Map params; + @TableField(exist = false) + private Map extendeds; + public String getSearchValue() { return searchValue; @@ -121,6 +125,14 @@ public class BaseEntity implements Serializable return params; } + public Map getExtendeds() { + if (extendeds == null) + { + extendeds = Collections.emptyMap(); + } + return extendeds; + } + public void setParams(Map params) { this.params = params; diff --git a/evo-admin/src/main/java/com/evo/common/handler/InsertAndUpdateMybatisHandler.java b/evo-admin/src/main/java/com/evo/common/handler/InsertAndUpdateMybatisHandler.java new file mode 100644 index 0000000..a540177 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/common/handler/InsertAndUpdateMybatisHandler.java @@ -0,0 +1,68 @@ +package com.evo.common.handler; + +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.evo.common.constant.Constants; +import com.evo.common.utils.DateUtils; +import com.evo.common.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +/** + * @desc: 修改和新增自定义注解 + * @ClassName:InsertAndUpdateMybatisHandler + * @date: 2025年04月17日 9:03 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Component +@Slf4j +public class InsertAndUpdateMybatisHandler implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + try { + String userName = SecurityUtils.getUsername(); + if(StringUtils.isEmpty(userName)){ + log.info("当前操作未登录, 无需执行"); + return; + } + if(ObjectUtils.isNotEmpty(metaObject)){ + mySetFieldValByName("createBy",SecurityUtils.getUsername(),metaObject); + mySetFieldValByName("createTime",DateUtils.getNowDate(),metaObject); + mySetFieldValByName("delFlag",Constants.DELETE_FLAG_0,metaObject); + } + } catch (Exception e) { + log.error("自动填充拦截器异常=====insert,对象信息:{}, 异常信息:{}", JSONObject.toJSONString(metaObject), e.getMessage()); + } + + } + + private void mySetFieldValByName(String filedName, Object fieldVal, MetaObject metaObject) { + Object createType = getFieldValByName(filedName,metaObject); + if(ObjectUtils.isEmpty(createType)){ + setFieldValByName(filedName,fieldVal,metaObject); + } + } + + + @Override + public void updateFill(MetaObject metaObject) { + try { + String userName = SecurityUtils.getUsername(); + if(StringUtils.isEmpty(userName)){ + log.info("当前操作未登录, 无需执行"); + return; + } + if(ObjectUtils.isNotEmpty(metaObject)){ + mySetFieldValByName("updateBy",userName,metaObject); + mySetFieldValByName("updateTime",DateUtils.getNowDate(),metaObject); + } + } catch (Exception e) { + log.error("自动填充拦截器异常=====update,对象信息:{}, 异常信息:{}", JSONObject.toJSONString(metaObject),e.getMessage()); + } + } +} diff --git a/evo-admin/src/main/java/com/evo/common/utils/Collections.java b/evo-admin/src/main/java/com/evo/common/utils/Collections.java new file mode 100644 index 0000000..d368ce1 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/common/utils/Collections.java @@ -0,0 +1,300 @@ +package com.evo.common.utils; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @DES 集合类型工具类 + * @author andy.shi + * @createDate 2020年12月25日下午2:16:13 + * @typeName Collections + */ +public class Collections implements Serializable{ + + static Logger log = LoggerFactory.getLogger(Collections.class); + + /** + * + */ + private static final long serialVersionUID = -611031509912595162L; + + /** + * + * @param ts + * @return + */ + public static boolean isEmpty(T[] ts) { + return ts == null || ts.length == 0; + } + + /** + * + * @param ts + * @return + */ + public static boolean isNotEmpty(T[] ts) { + return ! isEmpty(ts); + } + +/************************ 以上为公共方法 以下为list ************************************************/ + /** + * @DES 检查集合为空 + * @author andy.shi + * @createDate 2020年12月25日下午2:14:43 + * @methodName Collections.isEmpty + * @param list + * @return + * @returnType boolean + */ + public static boolean isEmpty(Collection list) { + return list == null || list.size() == 0; + } + + /** + * @DES 检查集合不为空 + * @author andy.shi + * @createDate 2020年12月25日下午2:15:07 + * @methodName Collections.isNotEmpty + * @param collection + * @return + * @returnType boolean + */ + public static boolean isNotEmpty(Collection collection) { + return ! (isEmpty(collection)); + } + + /** + * 将list进行分页 + * @author Andy.shi + * @date 2020年9月15日上午9:37:07 + * @param 泛型, 根据传入的对对象类型,返回类型 + * @param list 需要分组的集合 + * @param pageNum 当前页数 + * @param pageSize 每页显示的条数 + * @return + */ + public static List pageList(List list, Integer pageNum, Integer pageSize){ + if(isEmpty(list)) { + log.warn(String.format("[info " + Collections.class.getName() + " 执行信息] : list info: [%s] 为空", new Object[]{list})); + return list; + } + try { + //如果当前页为0, 更改为1 + if(pageNum == 0) + pageNum = 1; + //计算formIndex + Integer fromIndex = ((pageNum-1)*pageSize); + //计算toIndex + Integer toIndex = fromIndex + pageSize; + //防止下标越界 + if(toIndex > list.size()) + toIndex = list.size(); + log.info(String.format("[info " + Collections.class.getName() + " 执行信息] : list info: [%s] and pageNum info:[%s] and pageSize info: [%s]", new Object[]{list, pageNum, pageSize})); + return list.subList(fromIndex, toIndex); + } catch (Exception e) { + // TODO Auto-generated catch block + log.error(String.format("Class {%s}, Method {%s}", new Object[]{Collections.class.getName(), "pageList"}),e); + throw new RuntimeException(String.format("EntityInfo --- " + Collections.class.getName() + " error: list info: [%s] and pageNum info:[%s] and pageSize info: [%s] ", new Object[]{list, pageNum, pageSize}), e); + } + } + + /** + * 创建对象 + * @author Andy.shi + * @date 2020年9月15日上午9:37:07 + * @param + * @return + */ + public static List emptyList() { + return new LinkedList(); + } + + /** + * @DES 数组转对象 + * @author andy.shi + * @createDate 2020年12月25日下午2:09:14 + * @methodName Collections.asList + * @param objs + * @return + * @returnType List + */ + public static List asList(T... objs) { + if (isEmpty(objs)) + return emptyList(); + + List list = emptyList(); + for (T obj : objs) + list.add(obj); + + return list; + } + + /** + * + * @param objs + * @return + */ + public static List asList(Collection objs) { + if (isEmpty(objs)) + return emptyList(); + + List list = emptyList(); + list.addAll(objs); + + return list; + } + + /** + * 去除集合的重复项 + * @author Andy.shi + * @date 2020年9月24日上午9:09:07 + * @param 泛型,字段的类型, 如果是对象, 请重写hashCode() 和 equals() + * @param list1 去重的集合1 + * @param list2 去重的集合2 + * @return list 去重后的对象 + */ + @SuppressWarnings("unchecked") + public static List removeDuplicatesList(List list1, List list2){ + return removeDuplicatesList(new List[] {list1, list2}); + } + + /** + * 去除集合的重复项 + * @author Andy.shi + * @date 2020年9月24日上午9:13:09 + * @param 泛型,字段的类型, 如果是对象, 请重写hashCode() 和 equals() + * @param listArray 去重的集合数组 + * @return list 去重后的对象 + */ + @SuppressWarnings("unchecked") + public static List removeDuplicatesList(List... listArray){ + try { + List listAll = emptyList(); + if(listArray == null || listArray.length == 0) { + log.warn("[info " + Collections.class.getName() + " 执行信息] : 数据集合为空, 返回空对象 "); + return emptyList(); + } + for (List list : listArray) { + if(isNotEmpty(list)) { + listAll.addAll(list); + } + } + return (List) listAll.stream().distinct().collect(Collectors.toList()); + } catch (Exception e) { + // TODO Auto-generated catch block + log.error(String.format("Class {%s}, Method {%s}", new Object[]{Collections.class.getName(), "removeDuplicatesList"}),e); + throw new RuntimeException(String.format("EntityInfo --- " + Collections.class.getName() + " error: listArray info: [%s] 去除重复数据异常; ", new Object[]{listArray}), e); + } + } + + + /** + * 获取重复数据 + * @author Andy.shi + * @date 2020年9月24日上午9:46:03 + * @param 泛型,字段的类型, 如果是对象, 请重写hashCode() 和 equals() + * @param list1 查重的集合1 + * @param list2 查重的集合1 + * @return 并集的数据集合 + */ + @SuppressWarnings("unchecked") + public static List findDuplicatesList(List list1, List list2){ + return findDuplicatesList(new List[] {list1, list2}); + } + /** + * 获取重复数据 + * @author Andy.shi + * @date 2020年9月24日上午9:44:30 + * @param 泛型,字段的类型, 如果是对象, 请重写hashCode() 和 equals() + * @param listArray 需要查重的集合数组 + * @return 并集的数据集合 + */ + public static List findDuplicatesList(List... listArray){ + try { + if(listArray == null || listArray.length == 0) { + log.warn("[info " + Collections.class.getName() + " 执行信息] : 数据集合为空, 返回空对象 "); + return emptyList(); + } + + if(listArray.length == 1) { + log.warn("[info " + Collections.class.getName() + " 执行信息] : 集合数组只有一个, 不存在重复数据 "); + return listArray[0]; + } + List firstList = listArray[0]; + + for (int i = 1; i < listArray.length; i++) { + firstList.retainAll(listArray[i]); + } + return firstList; + } catch (Exception e) { + // TODO Auto-generated catch block + log.error(String.format("Class {%s}, Method {%s}", new Object[]{Collections.class.getName(), "findDuplicatesList"}),e); + throw new RuntimeException(String.format("EntityInfo --- " + Collections.class.getName() + " error: listArray info: [%s] 获取重复数据异常; ", new Object[]{listArray}), e); + } + } + +/********************** 以上操作list 以下操作map **************************************/ + /** + * + * @param map + * @return + */ + public static boolean isNotEmpty(Map map) { + return ! isEmpty(map); + } + + /** + * @param map + * @return + */ + public static boolean isEmpty(Map map) { + return map == null || map.size() == 0; + } + /** + * @DES 创建空的map对象 + * @author andy.shi + * @company 龙腾工作室 + * @createDate 2020年12月25日下午1:36:35 + * @methodName MapLists.emptyMap + * @return + * @returnType Map + */ + public static final Map emptyMap() { + return new LinkedHashMap(); + } + + + /** + * @DES 组装map数据对象 + * @author andy.shi + * @createDate 2020年12月25日下午1:37:05 + * @methodName MapLists.createMap + * @param args + * @return + * @returnType Map + */ + @SuppressWarnings("unchecked") + public static Map asMap(Object... args) { + Map map = emptyMap(); + if (args == null || args.length == 0) { + log.warn(String.format("[info " + Collections.class.getName() + " 执行信息] : params的参数不为偶数; args length: [%s]; args info: [%s] ", new Object[]{args.length, args})); + return map; + } else if (args.length % 2 != 0) { + throw new RuntimeException(String.format("EntityInfo --- " + Collections.class.getName() + " error: args must completely match: even param is key, odd param is value, please check your arguments. args length [%s]; args info: [%s]; ", new Object[]{args.length, args})); + } + for (int i=0; i 10){ - rzSalaryDetail.setSenioritySalary(sysStaffDetail.getSenioritySubsidies().multiply(new BigDecimal("10.0"))); //工龄 - }else{ - rzSalaryDetail.setSenioritySalary(sysStaffDetail.getSenioritySubsidies().multiply(new BigDecimal(years))); //工龄 - } +// if(years > 10){ +// rzSalaryDetail.setSenioritySalary(sysStaffDetail.getSenioritySubsidies().multiply(new BigDecimal("10.0"))); //工龄 +// }else{ +// rzSalaryDetail.setSenioritySalary(sysStaffDetail.getSenioritySubsidies().multiply(new BigDecimal(years))); //工龄 +// } //餐费 RzRestaurantStatistics rzRestaurantStatistics = rzRestaurantStatisticsMapper.selectRzRestaurantStatisticsByUserIdAndDate(sysStaff.getUserId(),rzSalaryDetail.getMonth()); rzSalaryDetail.setMealFee(rzRestaurantStatistics.getPersonalSumConsumption()); //餐费扣除 @@ -389,8 +389,8 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService }else{ sysStaffDetail.setAbsenteeismSubsidies(new BigDecimal("1.00")); } - sysStaffDetail.setNightShiftSubsidies(sysStaffDetail.getNightShiftSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber()))); - sysStaffDetail.setDinnerSubsidies(sysStaffDetail.getDinnerSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber()))); +// sysStaffDetail.setNightShiftSubsidies(sysStaffDetail.getNightShiftSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber()))); +// sysStaffDetail.setDinnerSubsidies(sysStaffDetail.getDinnerSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber()))); //是否打卡 if("否".equals(sysStaff.getClockIn())){ return sysStaffDetail; @@ -423,33 +423,33 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService } sysStaffDetail.setOverWages(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP).multiply(rzAttendanceStatistical.getWorkOvertimeNumber())); sysStaffDetail.setAbsenteeismSalary(new BigDecimal("0.00")); - sysStaffDetail.setMiddleSubsidies(sysStaffDetail.getMiddleSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getMiddleShiftNumber()))); +// sysStaffDetail.setMiddleSubsidies(sysStaffDetail.getMiddleSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getMiddleShiftNumber()))); } //判断是小时工 - if(sysStaffDetail.getHoursSalary().doubleValue() > 0) { - //额薪资日期在工资月下一个月 - calendar.set(Calendar.MONTH,1); - //全额薪资日期在工资月以前 - if(sysStaff.getWagesRatioDate().before(month)) { - sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber()))); - }else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) { - sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD))); - }else { - //根据转正日期,查询员工的打卡信息 - BigDecimal att_work = new BigDecimal("0.0"); - for (RzAttendance rzAttendance : att_list) { - if(rzAttendance.getAttendanceDate().before(sysStaff.getWagesRatioDate())) { - att_work = att_work.add(rzAttendance.getWorkSum()); - } - } - //未转正需要扣除的工资 - BigDecimal work = sysStaffDetail.getHoursSalary().multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1)); - sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work)); - } - sysStaffDetail.setOverWages(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getWorkOvertimeNumber())); - sysStaffDetail.setAbsenteeismSalary(new BigDecimal("0.00")); - sysStaffDetail.setMiddleSubsidies(sysStaffDetail.getMiddleSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getMiddleShiftNumber()))); - } +// if(sysStaffDetail.getHoursSalary().doubleValue() > 0) { +// //额薪资日期在工资月下一个月 +// calendar.set(Calendar.MONTH,1); +// //全额薪资日期在工资月以前 +// if(sysStaff.getWagesRatioDate().before(month)) { +// sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber()))); +// }else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) { +// sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD))); +// }else { +// //根据转正日期,查询员工的打卡信息 +// BigDecimal att_work = new BigDecimal("0.0"); +// for (RzAttendance rzAttendance : att_list) { +// if(rzAttendance.getAttendanceDate().before(sysStaff.getWagesRatioDate())) { +// att_work = att_work.add(rzAttendance.getWorkSum()); +// } +// } +// //未转正需要扣除的工资 +// BigDecimal work = sysStaffDetail.getHoursSalary().multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1)); +// sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work)); +// } +// sysStaffDetail.setOverWages(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getWorkOvertimeNumber())); +// sysStaffDetail.setAbsenteeismSalary(new BigDecimal("0.00")); +// sysStaffDetail.setMiddleSubsidies(sysStaffDetail.getMiddleSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getMiddleShiftNumber()))); +// } //判断是月工资 if(sysStaffDetail.getBasicSalary().doubleValue() > 0 || sysStaffDetail.getJobsSalary().longValue() > 0) { //额薪资日期在工资月下一个月 @@ -478,7 +478,7 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService .add(sysStaffDetail.getBasicSalary().multiply(new BigDecimal(Constants.SUBSIDY_PERIOD))) .divide(new BigDecimal(days).multiply(new BigDecimal("8.00")),2, RoundingMode.HALF_UP); sysStaffDetail.setAbsenteeismSalary(evrymoney.multiply(rzAttendanceStatistical.getShouldAttendance().subtract(rzAttendanceStatistical.getRealAttendance()))); - sysStaffDetail.setMiddleSubsidies(new BigDecimal("0.00")); +// sysStaffDetail.setMiddleSubsidies(new BigDecimal("0.00")); //根据用户获取当前的加班情况 RzSpecialOverTime rSpecialOverTime = rzSpecialOverTimeMapper.selectRzSpecialOverTimeByUserIdAndDate(sysStaff.getUserId(),month); if(StringUtils.isNull(rSpecialOverTime)){ diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/controller/RzSubsidyInfoController.java b/evo-admin/src/main/java/com/evo/personnelMatters/controller/RzSubsidyInfoController.java new file mode 100644 index 0000000..b786cd3 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/personnelMatters/controller/RzSubsidyInfoController.java @@ -0,0 +1,116 @@ +package com.evo.personnelMatters.controller; + +import com.evo.common.annotation.Log; +import com.evo.common.core.controller.BaseController; +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.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 补助管理Controller + * + * @author chenyj + * @date 2024-08-27 + */ +@RestController +@RequestMapping("/personnelMatters/subsidyInfo") +public class RzSubsidyInfoController extends BaseController +{ + @Resource + private IRzSubsidyInfoService rzSubsidyInfoService; + + /** + * 查询补助管理列表 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:list')") + @GetMapping("/list") + public TableDataInfo list(RzSubsidyInfo rzSubsidy) + { + startPage(); + List list = rzSubsidyInfoService.selectRzSubsidyInfoList(rzSubsidy); + return getDataTable(list); + } + + /** + * 导出补助管理列表 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:export')") + @Log(title = "补助管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RzSubsidyInfo rzSubsidy) + { + List list = rzSubsidyInfoService.selectRzSubsidyInfoList(rzSubsidy); + ExcelUtil util = new ExcelUtil(RzSubsidyInfo.class); + util.exportExcel(response, list, "补助管理数据"); + } + + /** + * 获取补助管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(rzSubsidyInfoService.selectRzSubsidyInfoById(id)); + } + + /** + * 新增补助管理 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:add')") + @Log(title = "补助信息管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RzSubsidyInfo rzSubsidy) + { + return rzSubsidyInfoService.insertRzSubsidyInfo(rzSubsidy); + } + + /** + * 修改补助管理 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:edit')") + @Log(title = "补助信息管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RzSubsidyInfo rzSubsidy) + { + return toAjax(rzSubsidyInfoService.updateRzSubsidyInfo(rzSubsidy)); + } + + /** + * 删除补助管理 + */ + @PreAuthorize("@ss.hasPermi('personnelMatters:subsidyInformation:remove')") + @Log(title = "补助信息管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public AjaxResult remove(@PathVariable Long id) + { + return toAjax(rzSubsidyInfoService.deleteRzSubsidyInfoById(id)); + } + + /** + * 检查补助是否存在 + */ + @PostMapping("/checkName") + public AjaxResult checkName(@RequestBody RzSubsidyInfo rzSubsidy) + { + return AjaxResult.success(rzSubsidyInfoService.existsSubsidyName(rzSubsidy)); + } + + + @PostMapping("/getOption") + public AjaxResult getOption() + { + return AjaxResult.success(rzSubsidyInfoService.getOption()); + } +} diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/domain/RzSubsidyInfo.java b/evo-admin/src/main/java/com/evo/personnelMatters/domain/RzSubsidyInfo.java new file mode 100644 index 0000000..7118b1b --- /dev/null +++ b/evo-admin/src/main/java/com/evo/personnelMatters/domain/RzSubsidyInfo.java @@ -0,0 +1,56 @@ +package com.evo.personnelMatters.domain; + +import com.evo.common.annotation.Excel; +import com.evo.common.core.domain.BaseEntity; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + + +/** + *补助信息对象 rz_subsidy_info 不同于学历补助 + * @ClassName:RzSubsidyInfo + * @date: 2025年05月21日 14:50 + * @author: andy.shi + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Data +public class RzSubsidyInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 补助名称 */ + @Excel(name = "补助名称") + private String name; + + /** 补助金额 */ + @Excel(name = "补助金额") + private BigDecimal value; + + /** 备注 */ + @Excel(name = "备注") + private String remarks; + + /** 删除标识 */ + private String delFlag; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("value", getValue()) + .append("remarks", getRemarks()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzSubsidyInfoMapper.java b/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzSubsidyInfoMapper.java new file mode 100644 index 0000000..a40944a --- /dev/null +++ b/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzSubsidyInfoMapper.java @@ -0,0 +1,17 @@ +package com.evo.personnelMatters.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evo.personnelMatters.domain.RzSubsidyInfo; + +/** + * 类 + * + * @ClassName:RzSubsidyInfoMapper + * @date: 2025年05月21日 14:55 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ + +public interface RzSubsidyInfoMapper extends BaseMapper { +} diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/service/IRzSubsidyInfoService.java b/evo-admin/src/main/java/com/evo/personnelMatters/service/IRzSubsidyInfoService.java new file mode 100644 index 0000000..90d4900 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/personnelMatters/service/IRzSubsidyInfoService.java @@ -0,0 +1,68 @@ +package com.evo.personnelMatters.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.evo.common.core.domain.AjaxResult; +import com.evo.common.vo.OptionVo; +import com.evo.personnelMatters.domain.RzSubsidy; +import com.evo.personnelMatters.domain.RzSubsidyInfo; + +import java.util.List; + +/** + * 补助管理Service接口 + * + * @author chenyj + * @date 2024-08-27 + */ +public interface IRzSubsidyInfoService extends IService +{ + /** + * 查询补助管理 + * + * @param id 补助管理主键 + * @return 补助管理 + */ + public RzSubsidyInfo selectRzSubsidyInfoById(Long id); + + /** + * 查询补助管理列表 + * + * @param rzSubsidy 补助管理 + * @return 补助管理集合 + */ + public List selectRzSubsidyInfoList(RzSubsidyInfo rzSubsidy); + + /** + * 新增补助管理 + * + * @param rzSubsidy 补助管理 + * @return 结果 + */ + public AjaxResult insertRzSubsidyInfo(RzSubsidyInfo rzSubsidy); + + /** + * 修改补助管理 + * + * @param rzSubsidy 补助管理 + * @return 结果 + */ + public Boolean updateRzSubsidyInfo(RzSubsidyInfo rzSubsidy); + + /** + * 删除补助管理信息 + * + * @param id 补助管理主键 + * @return 结果 + */ + public Boolean deleteRzSubsidyInfoById(Long id); + + /** + * 查看补助是否存在 + * + * @param rzSubsidy 补助管理 + * @return 结果 + */ + public Boolean existsSubsidyName(RzSubsidyInfo rzSubsidy); + + public List getOption(); +} diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzSubsidyInfoServiceImpl.java b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzSubsidyInfoServiceImpl.java new file mode 100644 index 0000000..e0f88f5 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzSubsidyInfoServiceImpl.java @@ -0,0 +1,66 @@ +package com.evo.personnelMatters.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.evo.common.core.domain.AjaxResult; +import com.evo.common.utils.ip.IpUtils; +import com.evo.common.vo.OptionVo; +import com.evo.personnelMatters.domain.RzSubsidyInfo; +import com.evo.personnelMatters.mapper.RzSubsidyInfoMapper; +import com.evo.personnelMatters.service.IRzSubsidyInfoService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 类 + * + * @ClassName:RzSubsidyInfoServiceImpl + * @date: 2025年05月21日 14:55 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Service +public class RzSubsidyInfoServiceImpl extends ServiceImpl implements IRzSubsidyInfoService { + + + @Override + public RzSubsidyInfo selectRzSubsidyInfoById(Long id) { + return getById(id); + } + + @Override + public List selectRzSubsidyInfoList(RzSubsidyInfo rzSubsidy) { + return list(new LambdaQueryWrapper().eq(RzSubsidyInfo::getDelFlag,0)); + } + + @Override + public AjaxResult insertRzSubsidyInfo(RzSubsidyInfo rzSubsidy) { + return (save(rzSubsidy) ? AjaxResult.success() : AjaxResult.error()); + } + + @Override + public Boolean updateRzSubsidyInfo(RzSubsidyInfo rzSubsidy) { + return updateById(rzSubsidy); + } + + @Override + public Boolean deleteRzSubsidyInfoById(Long id) { + return getBaseMapper().update(new RzSubsidyInfo(), new UpdateWrapper().set("del_flag", 1).eq("id", id)) > 0; + } + + @Override + public Boolean existsSubsidyName(RzSubsidyInfo rzSubsidy) { + return getBaseMapper().selectCount(new LambdaQueryWrapper().eq(RzSubsidyInfo::getName, rzSubsidy.getName()).select(RzSubsidyInfo::getId)) > 0; + } + + @Override + public List getOption() { + return list(new LambdaQueryWrapper().eq(RzSubsidyInfo::getDelFlag,0).select(RzSubsidyInfo::getId, RzSubsidyInfo::getName)).stream().map(d ->new OptionVo(d.getId(), d.getName())).collect(Collectors.toList()); + } +} diff --git a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java index 2e0441e..d7d3310 100644 --- a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java @@ -88,13 +88,13 @@ public class RzRestaurantStatisticsServiceImpl implements IRzRestaurantStatistic rzRestaurantStatistics.setName(sysStaff.getName()); rzRestaurantStatistics.setMonth(DateUtils.getNowDate()); //查询早午晚三餐消费 - for (SysStaffDetail sysStaffDetail : dt_list) { - if(sysStaff.getUserId() == sysStaffDetail.getStaffId()){ - rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); - rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); - rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); - } - } +// for (SysStaffDetail sysStaffDetail : dt_list) { +// if(sysStaff.getUserId() == sysStaffDetail.getStaffId()){ +// rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); +// rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); +// rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); +// } +// } rzRestaurantStatistics.setCreateTime(DateUtils.getNowDate()); rzRestaurantStatistics.setDelFlag(Constants.DELETE_FLAG_0); rzRestaurantStatistics.setCreateBy("admin"); diff --git a/evo-admin/src/main/java/com/evo/system/controller/SysStaffController.java b/evo-admin/src/main/java/com/evo/system/controller/SysStaffController.java index 3068058..d4ec12f 100644 --- a/evo-admin/src/main/java/com/evo/system/controller/SysStaffController.java +++ b/evo-admin/src/main/java/com/evo/system/controller/SysStaffController.java @@ -3,6 +3,8 @@ package com.evo.system.controller; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson2.JSON; import com.evo.system.domain.SysStaff; import com.evo.system.domain.vo.SysStaffVo; import com.evo.system.service.ISysStaffService; diff --git a/evo-admin/src/main/java/com/evo/system/controller/SysStaffDetailController.java b/evo-admin/src/main/java/com/evo/system/controller/SysStaffDetailController.java index 060acb5..314b510 100644 --- a/evo-admin/src/main/java/com/evo/system/controller/SysStaffDetailController.java +++ b/evo-admin/src/main/java/com/evo/system/controller/SysStaffDetailController.java @@ -49,6 +49,16 @@ public class SysStaffDetailController extends BaseController return success(sysStaffDetailService.selectSysStaffDetailById(id)); } + /** + * 获取员工详情详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:staffDetail:query')") + @GetMapping(value = "/byUser/{id}") + public AjaxResult getInfobyUser(@PathVariable("id") Long id) + { + return success(sysStaffDetailService.selectSysStaffDetailByUserId(id)); + } + /** * 修改员工详情 */ diff --git a/evo-admin/src/main/java/com/evo/system/domain/SysStaffDetail.java b/evo-admin/src/main/java/com/evo/system/domain/SysStaffDetail.java index c7f2763..be6d635 100644 --- a/evo-admin/src/main/java/com/evo/system/domain/SysStaffDetail.java +++ b/evo-admin/src/main/java/com/evo/system/domain/SysStaffDetail.java @@ -1,10 +1,14 @@ package com.evo.system.domain; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.evo.common.annotation.Excel; import com.evo.common.core.domain.BaseEntity; +import org.springframework.data.redis.core.TimeToLive; /** * 员工详情对象 sys_staff_detail @@ -12,6 +16,7 @@ import com.evo.common.core.domain.BaseEntity; * @author evo * @date 2024-11-22 */ +@Data public class SysStaffDetail extends BaseEntity { private static final long serialVersionUID = 1L; @@ -35,39 +40,39 @@ public class SysStaffDetail extends BaseEntity @Excel(name = "日薪") private BigDecimal dailyWage; - /** 时薪 */ - @Excel(name = "时薪") - private BigDecimal hoursSalary; +// /** 时薪 */ +// @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 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 = "夜餐补助") +// private BigDecimal dinnerSubsidies; /** 固定补助 */ @Excel(name = "固定补助") @@ -77,17 +82,17 @@ public class SysStaffDetail extends BaseEntity @Excel(name = "其他补助") private BigDecimal otherSubsidies; - /** 早餐消费 */ - @Excel(name = "早餐消费") - private BigDecimal breakfastExpend; - - /** 午餐消费 */ - @Excel(name = "午餐消费") - private BigDecimal lunchExpend; - - /** 晚餐消费 */ - @Excel(name = "晚餐消费") - private BigDecimal supperExpend; +// /** 早餐消费 */ +// @Excel(name = "早餐消费") +// private BigDecimal breakfastExpend; +// +// /** 午餐消费 */ +// @Excel(name = "午餐消费") +// private BigDecimal lunchExpend; +// +// /** 晚餐消费 */ +// @Excel(name = "晚餐消费") +// private BigDecimal supperExpend; /** 离职扣款 */ @Excel(name = "离职扣款") @@ -162,431 +167,14 @@ public class SysStaffDetail extends BaseEntity /** 备注 */ @Excel(name = "备注") private String remarks; + @TableField(exist = false) private BigDecimal OverWages; //加班工资 + @TableField(exist = false) private BigDecimal absenteeismSalary; //请假扣款 + @TableField(exist = false) private BigDecimal absenteeismSubsidies; //补助扣除 /** 删除标识 */ private String delFlag; - public BigDecimal getMiddleSubsidies() { - return middleSubsidies; - } - - public void setMiddleSubsidies(BigDecimal middleSubsidies) { - this.middleSubsidies = middleSubsidies; - } - - public BigDecimal getCountInsurance() { - return countInsurance; - } - - public void setCountInsurance(BigDecimal countInsurance) { - this.countInsurance = countInsurance; - } - - public BigDecimal getAbsenteeismSubsidies() { - return absenteeismSubsidies; - } - - public void setAbsenteeismSubsidies(BigDecimal absenteeismSubsidies) { - this.absenteeismSubsidies = absenteeismSubsidies; - } - - public BigDecimal getAbsenteeismSalary() { - return absenteeismSalary; - } - - public void setAbsenteeismSalary(BigDecimal absenteeismSalary) { - this.absenteeismSalary = absenteeismSalary; - } - - public BigDecimal getOverWages() { - return OverWages; - } - - public void setOverWages(BigDecimal overWages) { - OverWages = overWages; - } - - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - public void setStaffId(Long staffId) - { - this.staffId = staffId; - } - - public Long getStaffId() - { - return staffId; - } - public void setBasicSalary(BigDecimal basicSalary) - { - this.basicSalary = basicSalary; - } - - public BigDecimal getBasicSalary() - { - return basicSalary; - } - public void setJobsSalary(BigDecimal jobsSalary) - { - this.jobsSalary = jobsSalary; - } - - public BigDecimal getJobsSalary() - { - return jobsSalary; - } - public void setDailyWage(BigDecimal dailyWage) - { - this.dailyWage = dailyWage; - } - - public BigDecimal getDailyWage() - { - return dailyWage; - } - public void setHoursSalary(BigDecimal hoursSalary) - { - this.hoursSalary = hoursSalary; - } - - public BigDecimal getHoursSalary() - { - return hoursSalary; - } - public void setFullFrequentlySubsidies(BigDecimal fullFrequentlySubsidies) - { - this.fullFrequentlySubsidies = fullFrequentlySubsidies; - } - - public BigDecimal getFullFrequentlySubsidies() - { - return fullFrequentlySubsidies; - } - public void setLevelOfEducationSubsidies(BigDecimal levelOfEducationSubsidies) - { - this.levelOfEducationSubsidies = levelOfEducationSubsidies; - } - - public BigDecimal getLevelOfEducationSubsidies() - { - return levelOfEducationSubsidies; - } - public void setContractSubsidies(BigDecimal contractSubsidies) - { - this.contractSubsidies = contractSubsidies; - } - - public BigDecimal getContractSubsidies() - { - return contractSubsidies; - } - public void setSenioritySubsidies(BigDecimal senioritySubsidies) - { - this.senioritySubsidies = senioritySubsidies; - } - - public BigDecimal getSenioritySubsidies() - { - return senioritySubsidies; - } - public void setSocialSecuritySubsidies(BigDecimal socialSecuritySubsidies) - { - this.socialSecuritySubsidies = socialSecuritySubsidies; - } - - public BigDecimal getSocialSecuritySubsidies() - { - return socialSecuritySubsidies; - } - public void setNightShiftSubsidies(BigDecimal nightShiftSubsidies) - { - this.nightShiftSubsidies = nightShiftSubsidies; - } - - public BigDecimal getNightShiftSubsidies() - { - return nightShiftSubsidies; - } - public void setDinnerSubsidies(BigDecimal dinnerSubsidies) - { - this.dinnerSubsidies = dinnerSubsidies; - } - - public BigDecimal getDinnerSubsidies() - { - return dinnerSubsidies; - } - public void setFixedAllowance(BigDecimal fixedAllowance) - { - this.fixedAllowance = fixedAllowance; - } - - public BigDecimal getFixedAllowance() - { - return fixedAllowance; - } - public void setOtherSubsidies(BigDecimal otherSubsidies) - { - this.otherSubsidies = otherSubsidies; - } - - public BigDecimal getOtherSubsidies() - { - return otherSubsidies; - } - public void setBreakfastExpend(BigDecimal breakfastExpend) - { - this.breakfastExpend = breakfastExpend; - } - - public BigDecimal getBreakfastExpend() - { - return breakfastExpend; - } - public void setLunchExpend(BigDecimal lunchExpend) - { - this.lunchExpend = lunchExpend; - } - - public BigDecimal getLunchExpend() - { - return lunchExpend; - } - public void setSupperExpend(BigDecimal supperExpend) - { - this.supperExpend = supperExpend; - } - - public BigDecimal getSupperExpend() - { - return supperExpend; - } - public void setSubsidyDeductMoney(BigDecimal subsidyDeductMoney) - { - this.subsidyDeductMoney = subsidyDeductMoney; - } - - public BigDecimal getSubsidyDeductMoney() - { - return subsidyDeductMoney; - } - public void setDeductions(BigDecimal deductions) - { - this.deductions = deductions; - } - - public BigDecimal getDeductions() - { - return deductions; - } - public void setEndowmentInsurance(BigDecimal endowmentInsurance) - { - this.endowmentInsurance = endowmentInsurance; - } - - public BigDecimal getEndowmentInsurance() - { - return endowmentInsurance; - } - public void setMedicalInsurance(BigDecimal medicalInsurance) - { - this.medicalInsurance = medicalInsurance; - } - - public BigDecimal getMedicalInsurance() - { - return medicalInsurance; - } - public void setEmploymentInjuryInsurance(BigDecimal employmentInjuryInsurance) - { - this.employmentInjuryInsurance = employmentInjuryInsurance; - } - - public BigDecimal getEmploymentInjuryInsurance() - { - return employmentInjuryInsurance; - } - public void setMaternityInsurance(BigDecimal maternityInsurance) - { - this.maternityInsurance = maternityInsurance; - } - - public BigDecimal getMaternityInsurance() - { - return maternityInsurance; - } - public void setUnemploymentInsurance(BigDecimal unemploymentInsurance) - { - this.unemploymentInsurance = unemploymentInsurance; - } - - public BigDecimal getUnemploymentInsurance() - { - return unemploymentInsurance; - } - public void setAccumulationFund(BigDecimal accumulationFund) - { - this.accumulationFund = accumulationFund; - } - - public BigDecimal getAccumulationFund() - { - return accumulationFund; - } - public void setChildrenEducation(BigDecimal childrenEducation) - { - this.childrenEducation = childrenEducation; - } - - public BigDecimal getChildrenEducation() - { - return childrenEducation; - } - public void setSupportTheOld(BigDecimal supportTheOld) - { - this.supportTheOld = supportTheOld; - } - - public BigDecimal getSupportTheOld() - { - return supportTheOld; - } - public void setHousingLoans(BigDecimal housingLoans) - { - this.housingLoans = housingLoans; - } - - public BigDecimal getHousingLoans() - { - return housingLoans; - } - public void setHousingRents(BigDecimal housingRents) - { - this.housingRents = housingRents; - } - - public BigDecimal getHousingRents() - { - return housingRents; - } - public void setAdultEducation(BigDecimal adultEducation) - { - this.adultEducation = adultEducation; - } - - public BigDecimal getAdultEducation() - { - return adultEducation; - } - public void setTreatmentForSeriousDisease(BigDecimal treatmentForSeriousDisease) - { - this.treatmentForSeriousDisease = treatmentForSeriousDisease; - } - - public BigDecimal getTreatmentForSeriousDisease() - { - return treatmentForSeriousDisease; - } - public void setSpecialDeduction(BigDecimal specialDeduction) - { - this.specialDeduction = specialDeduction; - } - - public BigDecimal getSpecialDeduction() - { - return specialDeduction; - } - public void setTotalWages(BigDecimal totalWages) - { - this.totalWages = totalWages; - } - - public BigDecimal getTotalWages() - { - return totalWages; - } - public void setAggregatePersonalIncomeTax(BigDecimal aggregatePersonalIncomeTax) - { - this.aggregatePersonalIncomeTax = aggregatePersonalIncomeTax; - } - - public BigDecimal getAggregatePersonalIncomeTax() - { - return aggregatePersonalIncomeTax; - } - public void setRemarks(String remarks) - { - this.remarks = remarks; - } - - public String getRemarks() - { - return remarks; - } - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - public String getDelFlag() - { - return delFlag; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("staffId", getStaffId()) - .append("basicSalary", getBasicSalary()) - .append("jobsSalary", getJobsSalary()) - .append("dailyWage", getDailyWage()) - .append("hoursSalary", getHoursSalary()) - .append("fullFrequentlySubsidies", getFullFrequentlySubsidies()) - .append("levelOfEducationSubsidies", getLevelOfEducationSubsidies()) - .append("contractSubsidies", getContractSubsidies()) - .append("senioritySubsidies", getSenioritySubsidies()) - .append("socialSecuritySubsidies", getSocialSecuritySubsidies()) - .append("nightShiftSubsidies", getNightShiftSubsidies()) - .append("dinnerSubsidies", getDinnerSubsidies()) - .append("fixedAllowance", getFixedAllowance()) - .append("otherSubsidies", getOtherSubsidies()) - .append("breakfastExpend", getBreakfastExpend()) - .append("lunchExpend", getLunchExpend()) - .append("supperExpend", getSupperExpend()) - .append("subsidyDeductMoney", getSubsidyDeductMoney()) - .append("deductions", getDeductions()) - .append("endowmentInsurance", getEndowmentInsurance()) - .append("medicalInsurance", getMedicalInsurance()) - .append("employmentInjuryInsurance", getEmploymentInjuryInsurance()) - .append("maternityInsurance", getMaternityInsurance()) - .append("unemploymentInsurance", getUnemploymentInsurance()) - .append("accumulationFund", getAccumulationFund()) - .append("childrenEducation", getChildrenEducation()) - .append("supportTheOld", getSupportTheOld()) - .append("housingLoans", getHousingLoans()) - .append("housingRents", getHousingRents()) - .append("adultEducation", getAdultEducation()) - .append("treatmentForSeriousDisease", getTreatmentForSeriousDisease()) - .append("specialDeduction", getSpecialDeduction()) - .append("totalWages", getTotalWages()) - .append("aggregatePersonalIncomeTax", getAggregatePersonalIncomeTax()) - .append("remarks", getRemarks()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/evo-admin/src/main/java/com/evo/system/mapper/RzUploadMapper.java b/evo-admin/src/main/java/com/evo/system/mapper/RzUploadMapper.java index 869d8f4..3982414 100644 --- a/evo-admin/src/main/java/com/evo/system/mapper/RzUploadMapper.java +++ b/evo-admin/src/main/java/com/evo/system/mapper/RzUploadMapper.java @@ -1,17 +1,14 @@ package com.evo.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.evo.common.core.domain.entity.RzUpload; -import com.evo.common.core.domain.entity.SysDept; -import org.apache.ibatis.annotations.Param; - -import java.util.List; /** - * 部门管理 数据层 + * 文件管理 数据层 * * @author evo */ -public interface RzUploadMapper +public interface RzUploadMapper extends BaseMapper { /** * 新增文件信息 @@ -29,10 +26,4 @@ public interface RzUploadMapper * @return */ public int updateUploadValidByBusinessId(RzUpload upload); - /*** - * 根据id查询 - * @param id - * @return - */ - public RzUpload selectById(Long id); } diff --git a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffDetailMapper.java b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffDetailMapper.java index 8e2e3ef..9648d9b 100644 --- a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffDetailMapper.java +++ b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffDetailMapper.java @@ -1,5 +1,6 @@ package com.evo.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.evo.system.domain.SysStaffDetail; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; * @author evo * @date 2024-11-22 */ -public interface SysStaffDetailMapper +public interface SysStaffDetailMapper extends BaseMapper { /** * 查询员工详情 diff --git a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java index 96b0af1..553b0ac 100644 --- a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java +++ b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java @@ -1,5 +1,6 @@ package com.evo.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.evo.system.domain.SysStaff; import org.apache.ibatis.annotations.Param; @@ -12,7 +13,7 @@ import java.util.List; * @author evo * @date 2024-11-21 */ -public interface SysStaffMapper +public interface SysStaffMapper extends BaseMapper { /** * 查询员工管理 diff --git a/evo-admin/src/main/java/com/evo/system/service/ISysStaffDetailService.java b/evo-admin/src/main/java/com/evo/system/service/ISysStaffDetailService.java index e644749..1e29c25 100644 --- a/evo-admin/src/main/java/com/evo/system/service/ISysStaffDetailService.java +++ b/evo-admin/src/main/java/com/evo/system/service/ISysStaffDetailService.java @@ -20,6 +20,13 @@ public interface ISysStaffDetailService */ public SysStaffDetail selectSysStaffDetailById(Long id); + /** + * 查询员工详情 + * + * @param id 员工详情主键 + * @return 员工详情 + */ + public SysStaffDetail selectSysStaffDetailByUserId(Long id); /** * 查询员工详情列表 * diff --git a/evo-admin/src/main/java/com/evo/system/service/impl/RzUploadServiceImpl.java b/evo-admin/src/main/java/com/evo/system/service/impl/RzUploadServiceImpl.java index 7e506ac..7d69b78 100644 --- a/evo-admin/src/main/java/com/evo/system/service/impl/RzUploadServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/system/service/impl/RzUploadServiceImpl.java @@ -1,5 +1,6 @@ package com.evo.system.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.evo.common.annotation.DataScope; import com.evo.common.constant.UserConstants; import com.evo.common.core.domain.TreeSelect; @@ -31,14 +32,12 @@ import java.util.stream.Collectors; * @author evo */ @Service -public class RzUploadServiceImpl implements RzUploadService +public class RzUploadServiceImpl extends ServiceImpl implements RzUploadService { - @Resource - private RzUploadMapper rzUploadMapper; @Override public RzUpload selectById(Long id) { - return rzUploadMapper.selectById(id); + return getById(id); } /** @@ -49,7 +48,7 @@ public class RzUploadServiceImpl implements RzUploadService @Override public int insertUpload(RzUpload upload) { - return rzUploadMapper.insertUpload(upload); + return getBaseMapper().insertUpload(upload); } /** @@ -60,9 +59,9 @@ public class RzUploadServiceImpl implements RzUploadService @Override public int updateUploadBusinessId(RzUpload upload) { - rzUploadMapper.updateUploadBusinessId(upload); + getBaseMapper().updateUploadBusinessId(upload); upload.setValid("valid"); - rzUploadMapper.updateUploadValidByBusinessId(upload); + getBaseMapper().updateUploadValidByBusinessId(upload); return 1; } diff --git a/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffDetailServiceImpl.java index 7e5b166..503ba10 100644 --- a/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffDetailServiceImpl.java @@ -2,12 +2,19 @@ package com.evo.system.service.impl; import java.math.BigDecimal; import java.util.List; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.evo.common.constant.Constants; import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.entity.SysDictData; import com.evo.common.utils.DateUtils; import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.StringUtils; +import com.evo.personnelMatters.domain.RzSubsidyInfo; +import com.evo.personnelMatters.service.IRzSubsidyInfoService; +import com.evo.personnelMatters.service.impl.RzSubsidyInfoServiceImpl; import com.evo.restaurant.domain.RzRestaurantStatistics; import com.evo.restaurant.mapper.RzRestaurantStatisticsMapper; import com.evo.system.domain.SysStaff; @@ -16,6 +23,8 @@ import com.evo.system.mapper.SysDictDataMapper; import com.evo.system.mapper.SysStaffDetailMapper; import com.evo.system.mapper.SysStaffMapper; import com.evo.system.service.ISysStaffDetailService; +import com.evo.system.service.ISysStaffService; +import com.evo.system.utils.SubsidyCalculationUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,17 +35,16 @@ import javax.annotation.Resource; * @date 2024-11-22 */ @Service -public class SysStaffDetailServiceImpl implements ISysStaffDetailService +public class SysStaffDetailServiceImpl extends ServiceImpl implements ISysStaffDetailService { @Resource - private SysStaffDetailMapper sysStaffDetailMapper; - @Resource - private SysStaffMapper sysStaffMapper; //员工信息 + private ISysStaffService sysStaffService; //员工信息 @Resource private SysDictDataMapper sysDictDataMapper; //数据字典 @Resource private RzRestaurantStatisticsMapper rzRestaurantStatisticsMapper; //餐饮统计 - + @Resource + private IRzSubsidyInfoService rzSubsidyInfoService; /** * 查询员工详情 * @@ -46,7 +54,12 @@ public class SysStaffDetailServiceImpl implements ISysStaffDetailService @Override public SysStaffDetail selectSysStaffDetailById(Long id) { - return sysStaffDetailMapper.selectSysStaffDetailById(id); + return getBaseMapper().selectSysStaffDetailById(id); + } + + @Override + public SysStaffDetail selectSysStaffDetailByUserId(Long id) { + return SubsidyCalculationUtils.subsidyCalculation(sysStaffService.selectSysStaffByUserId(id),getOne(new LambdaQueryWrapper().eq(SysStaffDetail::getDelFlag, Constants.DELETE_FLAG_0).eq(SysStaffDetail::getStaffId, id).orderByDesc(SysStaffDetail::getCreateTime), false), rzSubsidyInfoService.list()); } /** @@ -58,7 +71,12 @@ public class SysStaffDetailServiceImpl implements ISysStaffDetailService @Override public List selectSysStaffDetailList(SysStaffDetail sysStaffDetail) { - return sysStaffDetailMapper.selectSysStaffDetailList(sysStaffDetail); + SysStaff sysStaff = sysStaffService.selectSysStaffByUserId(sysStaffDetail.getStaffId()); + List subsidyInfoList = rzSubsidyInfoService.list(); + List list = getBaseMapper().selectSysStaffDetailList(sysStaffDetail).stream().map(d-> { + return SubsidyCalculationUtils.subsidyCalculation(sysStaff,d, subsidyInfoList); + }).collect(Collectors.toList()); + return list; } /** @@ -73,64 +91,64 @@ public class SysStaffDetailServiceImpl implements ISysStaffDetailService //餐饮 List cy_list = sysDictDataMapper.selectDictDataByType(Constants.SYS_RESTAUTANT); //根据员工ID查询员工信息 - SysStaff sysStaff = sysStaffMapper.selectSysStaffByUserId(sysStaffDetail.getStaffId()); + SysStaff sysStaff = sysStaffService.selectSysStaffByUserId(sysStaffDetail.getStaffId()); //判断员工的住宿和工资类型填写餐补费用,住宿,早,午,晚:2,3,3 - if("是".equals(sysStaff.getZsFlag())){ - for (SysDictData sysDictData : cy_list) { - if("个人早餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人晚餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - }else { - //非住宿,月工资 - if(StringUtils.isNotNull(sysStaffDetail.getBasicSalary())){ - for (SysDictData sysDictData : cy_list) { - if("早餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人晚餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - }else{ - for (SysDictData sysDictData : cy_list) { - if("早餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("晚餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - } - } +// if("是".equals(sysStaff.getZsFlag())){ +// for (SysDictData sysDictData : cy_list) { +// if("个人早餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人晚餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// }else { +// //非住宿,月工资 +// if(StringUtils.isNotNull(sysStaffDetail.getBasicSalary())){ +// for (SysDictData sysDictData : cy_list) { +// if("早餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人晚餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// }else{ +// for (SysDictData sysDictData : cy_list) { +// if("早餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("晚餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// } +// } sysStaffDetail.setUpdateTime(DateUtils.getNowDate()); sysStaffDetail.setUpdateBy(SecurityUtils.getUsername()); //根据员工ID查询当前餐饮详情,反写个人消费信息 RzRestaurantStatistics rzRestaurantStatistics = rzRestaurantStatisticsMapper.selectRzRestaurantStatisticsByUserIdAndDate(sysStaff.getUserId(),DateUtils.getNowDate()); - if(StringUtils.isNotNull(rzRestaurantStatistics)){ - rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); - rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); - rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); - rzRestaurantStatisticsMapper.updateRzRestaurantStatistics(rzRestaurantStatistics); - } - return sysStaffDetailMapper.updateSysStaffDetail(sysStaffDetail); +// if(StringUtils.isNotNull(rzRestaurantStatistics)){ +// rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); +// rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); +// rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); +// rzRestaurantStatisticsMapper.updateRzRestaurantStatistics(rzRestaurantStatistics); +// } + return getBaseMapper().updateSysStaffDetail(sysStaffDetail); } public AjaxResult clearAllSubsidy(){ - int i = sysStaffDetailMapper.clearAllSubsidy(); + int i = getBaseMapper().clearAllSubsidy(); if(i < 1){ return AjaxResult.error(); } diff --git a/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffServiceImpl.java b/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffServiceImpl.java index 996f816..df5e8e8 100644 --- a/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/system/service/impl/SysStaffServiceImpl.java @@ -6,12 +6,16 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.Period; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.evo.attendance.domain.RzAttendance; import com.evo.attendance.domain.RzAttendanceStatistical; import com.evo.attendance.mapper.RzAttendanceMapper; @@ -22,6 +26,7 @@ import com.evo.common.core.domain.AjaxResult; 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.Collections; import com.evo.common.utils.DateUtils; import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.StringUtils; @@ -47,6 +52,7 @@ import com.evo.system.service.ISysStaffService; import com.evo.system.service.RzUploadService; import com.evo.utils.DateUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -65,10 +71,8 @@ import javax.annotation.Resource; */ @Slf4j @Service -public class SysStaffServiceImpl implements ISysStaffService +public class SysStaffServiceImpl extends ServiceImpl implements ISysStaffService { - @Resource - private SysStaffMapper sysStaffMapper; @Resource private SysStaffDetailMapper sysStaffDetailMapper; //员工详情 @Resource @@ -96,7 +100,11 @@ public class SysStaffServiceImpl implements ISysStaffService @Override public SysStaff selectSysStaffByUserId(Long userId) { - return sysStaffMapper.selectSysStaffByUserId(userId); + SysStaff sysStaff = getBaseMapper().selectOne(new LambdaQueryWrapper().eq(SysStaff::getUserId, userId)); + if(StringUtils.isNotEmpty(sysStaff.getSubsidys())){ + sysStaff.setSubsidyList(Collections.asList(sysStaff.getSubsidys().split(",")).stream().map(Long::valueOf).collect(Collectors.toList())); + } + return sysStaff; } /** * 查询员工管理列表 @@ -108,7 +116,7 @@ public class SysStaffServiceImpl implements ISysStaffService @DataScope(deptAlias = "d") public List selectSysStaffList(SysStaff sysStaff) { - List res_list = sysStaffMapper.selectSysStaffList(sysStaff); + List res_list = getBaseMapper().selectSysStaffList(sysStaff); for (SysStaff staff : res_list) { staff.setDeptName(deptMapper.selectDeptById(staff.getDeptId()).getDeptName()); } @@ -125,7 +133,7 @@ public class SysStaffServiceImpl implements ISysStaffService public AjaxResult insertSysStaff(SysStaff sysStaff) { //根据省份证号查询是否已经录入 - SysStaff p_staff = sysStaffMapper.queryysStaffByIdCard(sysStaff.getIdCard()); + SysStaff p_staff = getBaseMapper().queryysStaffByIdCard(sysStaff.getIdCard()); if(StringUtils.isNotNull(p_staff)){ return AjaxResult.error("此人录入过!!"); } @@ -151,7 +159,12 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setCreateTime(DateUtils.getNowDate()); sysStaff.setCreateBy(SecurityUtils.getUsername()); sysStaff.setDelFlag(Constants.DELETE_FLAG_0); - int i = sysStaffMapper.insertSysStaff(sysStaff); + + if(CollectionUtils.isNotEmpty(sysStaff.getSubsidyList())){ + sysStaff.setSubsidys(sysStaff.getSubsidyList().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + + int i = getBaseMapper().insertSysStaff(sysStaff); if(i < 1){ return AjaxResult.error("员工添加失败"); } @@ -159,7 +172,7 @@ public class SysStaffServiceImpl implements ISysStaffService //员工详情 createStaffDetail(sysStaff); //打卡统计,打卡详情 - createRzAttendance(sysStaff); + createRzAttendance(sysStaff, getMonthAndDays()); //处理餐饮信息 createRestaurantStatistics(sysStaff); //处理考勤机相关信息 @@ -228,48 +241,8 @@ public class SysStaffServiceImpl implements ISysStaffService if(StringUtils.isNull(sysStaffDetail)){ sysStaffDetail = new SysStaffDetail(); } - - //合同补助 - BigDecimal contractSubsidies = new BigDecimal(0); - //学历补助 - BigDecimal levelOfEducationSubsidies = new BigDecimal(0); - //新农合补助 - BigDecimal socialSecuritySubsidies = new BigDecimal(0); - //正式员工 - if("1".equals(sysStaff.getStatus())){ - //查询学历 - String dictLabel = sysDictDataMapper.selectDictLabel(Constants.SYS_LEVEL, sysStaff.getLevel()); - //学历补助 - if(org.apache.commons.lang3.StringUtils.isNotEmpty(dictLabel)){ - RzSubsidy rzSubsidy = rzSubsidyMapper.selectRzSubsidyByName(dictLabel); - if(StringUtils.isNotNull(rzSubsidy)){ - levelOfEducationSubsidies= rzSubsidy.getValue(); - } - } - - //合同补助 1年期合同 - if("1".equals(sysStaff.getContractType())){ - contractSubsidies = new BigDecimal(Constants.SYS_CONTRACT_0); - }else if("3".equals(sysStaff.getContractType())){ //3年期合同 - contractSubsidies = new BigDecimal(Constants.SYS_CONTRACT_1); - } - - //社保补助 判断是否是新农合 ,是社保补助400元 - if("新农合".equals(sysStaff.getSocialType()) && "是".equals(sysStaff.getSocialSubsidy())){ - socialSecuritySubsidies = new BigDecimal(Constants.SYS_SOCIAL_SUBSIDIES); - } - } - - sysStaffDetail.setLevelOfEducationSubsidies(levelOfEducationSubsidies); - sysStaffDetail.setContractSubsidies(contractSubsidies); - sysStaffDetail.setSocialSecuritySubsidies(socialSecuritySubsidies); - - if(StringUtils.isNull(sysStaffDetail.getStaffId())){ sysStaffDetail.setStaffId(sysStaff.getUserId()); - //sysStaffDetail.setSenioritySubsidies(new BigDecimal(Constants.SYS_SENIORITY_SUBSIDIES)); - //关于工龄补贴, 初始新增员工, 工龄补贴全部为0 - sysStaffDetail.setSenioritySubsidies(new BigDecimal(0)); sysStaffDetail.setCreateBy(SecurityUtils.getUsername()); sysStaffDetail.setCreateTime(DateUtils.getNowDate()); sysStaffDetail.setDelFlag(Constants.DELETE_FLAG_0); @@ -284,7 +257,7 @@ public class SysStaffServiceImpl implements ISysStaffService * 创建打卡考勤信息 * @param sysStaff */ - private void createRzAttendance(SysStaff sysStaff){ + private void createRzAttendance(SysStaff sysStaff, List dayList){ //根据员工ID查询当月的统计信息统计信息 RzAttendanceStatistical rzAttendanceStatistical = rzAttendanceStatisticalMapper.getRzAttendanceStatisticalByDateAndName(sysStaff.getUserId(),DateUtils.getNowDate()); if(StringUtils.isNotNull(rzAttendanceStatistical)){ @@ -317,26 +290,16 @@ public class SysStaffServiceImpl implements ISysStaffService rzAttendanceStatistical.setCreateTime(DateUtils.getNowDate()); rzAttendanceStatisticalMapper.insertRzAttendanceStatistical(rzAttendanceStatistical); //新增考勤详情 - //获取当月天数 - Calendar calendar = Calendar.getInstance(); - int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); - SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); RzAttendance rzAttendance = null; List pa_list = new ArrayList(); - for(int p=1;p<=days;p++){ + for(String day: dayList){ rzAttendance = new RzAttendance(); rzAttendance.setDeptId(sysStaff.getDeptId()); rzAttendance.setName(sysStaff.getName()); rzAttendance.setStaffId(sysStaff.getUserId()); try{ - String rq = sdfm.format(DateUtils.getNowDate()); - if(p < 10){ - rq += "-" + Constants.SEIZE_A_SEAT_0 + p; - }else { - rq += "-" + p; - } - rzAttendance.setAttendanceDate(sdfd.parse(rq)); + rzAttendance.setAttendanceDate(sdfd.parse(day)); }catch (Exception e){ e.printStackTrace(); } @@ -347,6 +310,27 @@ public class SysStaffServiceImpl implements ISysStaffService } rzAttendanceMapper.insertBatchRzAttendance(pa_list); } + + public List getMonthAndDays(){ + List dayList = new ArrayList(); + Calendar calendar = Calendar.getInstance(); + int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM"); + for(int p=1;p<=days;p++){ + try{ + String rq = sdfm.format(DateUtils.getNowDate())+"-"; + if(p < 10){ + rq += Constants.SEIZE_A_SEAT_0 + p; + }else { + rq += p; + } + dayList.add(rq); + }catch (Exception e){ + e.printStackTrace(); + } + } + return dayList; + } /** * 创建餐饮统计 * @param sysStaff @@ -368,9 +352,9 @@ public class SysStaffServiceImpl implements ISysStaffService rzRestaurantStatistics.setMonth(DateUtils.getNowDate()); SysStaffDetail sysStaffDetail = sysStaffDetailMapper.selectSysStaffDetailByStaffId(sysStaff.getUserId()); if(StringUtils.isNotNull(sysStaffDetail)){ - rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); - rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); - rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); +// rzRestaurantStatistics.setBreakfastExpend(sysStaffDetail.getBreakfastExpend()); +// rzRestaurantStatistics.setLunchExpend(sysStaffDetail.getLunchExpend()); +// rzRestaurantStatistics.setSupperExpend(sysStaffDetail.getSupperExpend()); } rzRestaurantStatistics.setDelFlag(Constants.DELETE_FLAG_0); rzRestaurantStatistics.setCreateBy(SecurityUtils.getUsername()); @@ -423,12 +407,16 @@ public class SysStaffServiceImpl implements ISysStaffService @Transactional public AjaxResult updateSysStaff(SysStaff sysStaff) { + + if(CollectionUtils.isNotEmpty(sysStaff.getSubsidyList())){ + sysStaff.setSubsidys(sysStaff.getSubsidyList().stream().map(String::valueOf).collect(Collectors.joining(","))); + } //判断是否有离职时间,有则为离职 if(StringUtils.isNotNull(sysStaff.getQuitDate())){ //离职时间小于当前,说明离职了 if(sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){ sysStaff.setStatus("-1"); - int i = sysStaffMapper.updateSysStaff(sysStaff); + int i = getBaseMapper().updateSysStaff(sysStaff); if(i < 1){ return AjaxResult.error(); } @@ -440,7 +428,7 @@ public class SysStaffServiceImpl implements ISysStaffService //离职时间小于当前,说明离职了 if(sysStaff.getRegularDate().getTime() < DateUtils.getNowDate().getTime()){ sysStaff.setStatus("1"); - int i = sysStaffMapper.updateSysStaff(sysStaff); + int i = getBaseMapper().updateSysStaff(sysStaff); if(i < 1){ return AjaxResult.error(); } @@ -456,14 +444,14 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setSex("0"); } //根据员工ID查询原来的数据信息 - SysStaff old_staff = sysStaffMapper.selectSysStaffByUserId(sysStaff.getUserId()); + SysStaff old_staff = getBaseMapper().selectSysStaffByUserId(sysStaff.getUserId()); //判断员工更换公司 if(!old_staff.getCompanyName().equals(sysStaff.getCompanyName())){ //保存旧公司数据存档 old_staff.setDelFlag(Constants.DELETE_FLAG_1); old_staff.setUpdateBy(SecurityUtils.getUsername()); old_staff.setUpdateTime(DateUtils.getNowDate()); - int i = sysStaffMapper.updateSysStaff(old_staff); + int i = getBaseMapper().updateSysStaff(old_staff); if(i < 1){ return AjaxResult.error(); } @@ -486,14 +474,14 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setUpdateTime(DateUtils.getNowDate()); sysStaff.setUpdateBy(SecurityUtils.getUsername()); - int i= sysStaffMapper.updateSysStaff(sysStaff); + int i= getBaseMapper().updateSysStaff(sysStaff); if(i < 1){ return AjaxResult.error(); } //修改员工详情 createStaffDetail(sysStaff); //修改考勤统计 - createRzAttendance(sysStaff); + createRzAttendance(sysStaff, getMonthAndDays()); //餐饮统计 createRestaurantStatistics(sysStaff); } @@ -504,12 +492,12 @@ public class SysStaffServiceImpl implements ISysStaffService */ private void createNewStaff(SysStaff sysStaff){ //根据身份证查询员工是否已经入职过现在的公司 - SysStaff param_staff = sysStaffMapper.queryysStaffByIdCardAndDeptId(sysStaff.getIdCard(),sysStaff.getDeptId()); + SysStaff param_staff = getBaseMapper().queryysStaffByIdCardAndDeptId(sysStaff.getIdCard(),sysStaff.getDeptId()); if(StringUtils.isNotNull(param_staff)){ param_staff.setDelFlag(Constants.DELETE_FLAG_0); param_staff.setUpdateBy(SecurityUtils.getUsername()); param_staff.setUpdateTime(DateUtils.getNowDate()); - sysStaffMapper.updateSysStaff(param_staff); + getBaseMapper().updateSysStaff(param_staff); return; } sysStaff.setCode(getCodeByCompanyName(sysStaff.getCompanyName())); @@ -518,11 +506,11 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setDelFlag(Constants.DELETE_FLAG_0); //清除原来的ID sysStaff.setUserId(null); - sysStaffMapper.insertSysStaff(sysStaff); + getBaseMapper().insertSysStaff(sysStaff); //添加员工详情 createStaffDetail(sysStaff); //修改考勤统计 - createRzAttendance(sysStaff); + createRzAttendance(sysStaff, getMonthAndDays()); //餐饮统计 createRestaurantStatistics(sysStaff); } @@ -535,7 +523,7 @@ public class SysStaffServiceImpl implements ISysStaffService @Override public int deleteSysStaffByUserId(Long userId) { - SysStaff sysStaff = sysStaffMapper.selectSysStaffByUserId(userId); + SysStaff sysStaff = getBaseMapper().selectSysStaffByUserId(userId); //判断员工是否为领导,是反写部门 if("是".equals(sysStaff.getIsLeader())){ //根据ID查询部门信息 @@ -550,14 +538,14 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setUpdateTime(DateUtils.getNowDate()); sysStaff.setUpdateBy(SecurityUtils.getUsername()); sysStaff.setDelFlag(Constants.DELETE_FLAG_1); - return sysStaffMapper.updateSysStaff(sysStaff); + return getBaseMapper().updateSysStaff(sysStaff); } /** * 查询所有的在职员工信息 * @return */ public List selectSysStaffListAll(){ - List res_list = sysStaffMapper.selectSysStaffListAll(); + List res_list = getBaseMapper().selectSysStaffListAll(); for (SysStaff sysStaff : res_list) { sysStaff.setDeptName(deptMapper.selectDeptById(sysStaff.getDeptId()).getDeptName()); } @@ -639,7 +627,7 @@ public class SysStaffServiceImpl implements ISysStaffService continue; } //根据身份证号查询员工 - sysStaff = sysStaffMapper.queryysStaffByIdCard(row.getCell(2).getStringCellValue()); + sysStaff = getBaseMapper().queryysStaffByIdCard(row.getCell(2).getStringCellValue()); //没有此员工继续下一条 if(StringUtils.isNull(sysStaff)){ continue; @@ -724,7 +712,7 @@ public class SysStaffServiceImpl implements ISysStaffService public List selectSysStaffDetailList(SysStaff sysStaff){ List res_list = new ArrayList(); //查询员工信息 - List yg_list = sysStaffMapper.selectSysStaffList(sysStaff); + List yg_list = getBaseMapper().selectSysStaffList(sysStaff); List sub_list = sysDictDataMapper.selectDictDataByType("sys_level"); List zz_list = sysDictDataMapper.selectDictDataByType("sys_worker_status"); SysStaffVo sysStaffVo = null; @@ -787,7 +775,7 @@ public class SysStaffServiceImpl implements ISysStaffService BeanUtils.copyProperties(Staffvo,sysStaff); BeanUtils.copyProperties(Staffvo,sysStaffDetail); // 验证是否存在这个员工 - SysStaff staff = sysStaffMapper.queryysStaffByIdCard(sysStaff.getIdCard()); + SysStaff staff = getBaseMapper().queryysStaffByIdCard(sysStaff.getIdCard()); //员工存在 if(StringUtils.isNotNull(staff)){ continue; @@ -844,52 +832,52 @@ public class SysStaffServiceImpl implements ISysStaffService sysStaff.setCreateTime(DateUtils.getNowDate()); sysStaff.setCreateBy(SecurityUtils.getUsername()); sysStaff.setDelFlag(Constants.DELETE_FLAG_0); - int i = sysStaffMapper.insertSysStaff(sysStaff); + int i = getBaseMapper().insertSysStaff(sysStaff); if(i < 1){ return AjaxResult.error(); } //获取三餐数据 //判断员工的住宿和工资类型填写餐补费用,住宿,早,午,晚:2,3,3 - if("是".equals(sysStaff.getZsFlag())){ - for (SysDictData sysDictData : cy_list) { - if("个人早餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人晚餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - }else { - //非住宿,月工资 - if(StringUtils.isNotNull(sysStaffDetail.getBasicSalary())){ - for (SysDictData sysDictData : cy_list) { - if("早餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人晚餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - }else{ - for (SysDictData sysDictData : cy_list) { - if("早餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("个人午餐".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); - } - if("晚餐消费".equals(sysDictData.getDictLabel())){ - sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); - } - } - } - } +// if("是".equals(sysStaff.getZsFlag())){ +// for (SysDictData sysDictData : cy_list) { +// if("个人早餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人晚餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// }else { +// //非住宿,月工资 +// if(StringUtils.isNotNull(sysStaffDetail.getBasicSalary())){ +// for (SysDictData sysDictData : cy_list) { +// if("早餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人晚餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// }else{ +// for (SysDictData sysDictData : cy_list) { +// if("早餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setBreakfastExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("个人午餐".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setLunchExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// if("晚餐消费".equals(sysDictData.getDictLabel())){ +// sysStaffDetail.setSupperExpend(new BigDecimal(sysDictData.getDictValue())); +// } +// } +// } +// } sysStaffDetail.setStaffId(sysStaff.getUserId()); sysStaffDetail.setDelFlag(Constants.DELETE_FLAG_0); sysStaffDetail.setCreateTime(DateUtils.getNowDate()); @@ -898,7 +886,7 @@ public class SysStaffServiceImpl implements ISysStaffService if(i < 1){ return AjaxResult.error(); } - createRzAttendance(sysStaff); + createRzAttendance(sysStaff, getMonthAndDays()); //餐饮统计 createRestaurantStatistics(sysStaff); } @@ -915,7 +903,7 @@ public class SysStaffServiceImpl implements ISysStaffService */ private String getCodeByCompanyName(String companyName){ //根据公司名称查询当前公司下的最大编号 - SysStaff macCode = sysStaffMapper.querySysStaffOfMaxByCompany(companyName); + SysStaff macCode = getBaseMapper().querySysStaffOfMaxByCompany(companyName); if(macCode == null){ return companyName + "0001"; } @@ -936,10 +924,11 @@ public class SysStaffServiceImpl implements ISysStaffService @Override public void autoCreateAttendanceData(){ //获取在职员工数据 - List params_list = sysStaffMapper.selectSysStaffListAll(); + List params_list = getBaseMapper().selectSysStaffListAll(); + List dayList = getMonthAndDays(); //循环在职员工生成考勤统计 for (SysStaff sysStaff : params_list) { - createRzAttendance(sysStaff); + createRzAttendance(sysStaff, dayList); } } @@ -949,12 +938,12 @@ public class SysStaffServiceImpl implements ISysStaffService @Override public void autoRegularWorking(){ //获取在职员工数据 - List params_list = sysStaffMapper.selectSysStaffListAll(); + List params_list = getBaseMapper().selectSysStaffListAll(); for (SysStaff sysStaff : params_list) { //判断员工是否离职 if(StringUtils.isNotNull(sysStaff.getQuitDate()) && sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){ sysStaff.setStatus("-1"); - sysStaffMapper.updateSysStaff(sysStaff); + getBaseMapper().updateSysStaff(sysStaff); return; } //判断转正时间,无转正日期自动计算转正日期(入职日期后一个月) @@ -969,7 +958,7 @@ public class SysStaffServiceImpl implements ISysStaffService if(sysStaff.getRegularDate().getTime() < DateUtils.getNowDate().getTime()){ sysStaff.setStatus("1"); } - sysStaffMapper.updateSysStaff(sysStaff); + getBaseMapper().updateSysStaff(sysStaff); } } @@ -986,7 +975,7 @@ public class SysStaffServiceImpl implements ISysStaffService for (SysDept sysDept : d_list) { list.add(sysDept.getDeptId()); } - return sysStaffMapper.queryysStaffByDeptId(list); + return getBaseMapper().queryysStaffByDeptId(list); } /** @@ -995,7 +984,7 @@ public class SysStaffServiceImpl implements ISysStaffService @Override public void calculationOfSeniority(){ //获取在职员工数据 - List params_list = sysStaffMapper.selectSysStaffListAll(); + List params_list = getBaseMapper().selectSysStaffListAll(); //当前日期减去一个月计算工龄,计算工资比实际工龄延后一个月 Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); @@ -1018,7 +1007,7 @@ public class SysStaffServiceImpl implements ISysStaffService }else{ sysStaff.setSeniority(0l); } - sysStaffMapper.updateSysStaff(sysStaff); + getBaseMapper().updateSysStaff(sysStaff); } }catch(Exception e){ e.printStackTrace(); diff --git a/evo-admin/src/main/java/com/evo/system/utils/SubsidyCalculationUtils.java b/evo-admin/src/main/java/com/evo/system/utils/SubsidyCalculationUtils.java new file mode 100644 index 0000000..33c95b8 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/system/utils/SubsidyCalculationUtils.java @@ -0,0 +1,73 @@ +package com.evo.system.utils; + +import com.alibaba.fastjson2.util.BeanUtils; +import com.evo.common.constant.Constants; +import com.evo.common.core.domain.entity.SysDictData; +import com.evo.common.utils.DateUtils; +import com.evo.common.utils.spring.SpringUtils; +import com.evo.personnelMatters.domain.RzSubsidy; +import com.evo.personnelMatters.domain.RzSubsidyInfo; +import com.evo.personnelMatters.mapper.RzSubsidyMapper; +import com.evo.system.domain.SysStaff; +import com.evo.system.domain.SysStaffDetail; +import com.evo.system.mapper.SysDictDataMapper; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 类 + * + * @ClassName:SubsidyCalculationUtils + * @date: 2025年05月22日 11:26 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ + +public class SubsidyCalculationUtils { + + public static final String ht = "12"; + public static final String gl = "14"; + + + public static SysStaffDetail subsidyCalculation(SysStaff staff, SysStaffDetail staffDetail, List subsidyInfoList){ + //正式员工并且有补助信息 + if(Constants.JOB_STATIS_1.equals(staff.getStatus()) && StringUtils.isNotEmpty(staff.getSubsidys())){ + Map map = subsidyInfoList.stream().collect(Collectors.toMap(RzSubsidyInfo::getId, d->d, (k1, K2)->k1)); + for(String subsidyId : staff.getSubsidys().split(",")){ + RzSubsidyInfo rzSubsidyInfo = map.get(Long.valueOf(subsidyId)); + String key = rzSubsidyInfo.getName(); + BigDecimal value = rzSubsidyInfo.getValue(); + if(ht.equals(subsidyId)){ + Integer year= DateUtils.getBetweenYear(staff.getContractStart(), staff.getContractEnd()); + value = value.multiply(new BigDecimal(year)); + }else if(gl.equals(subsidyId)){ + Integer year= DateUtils.getBetweenYear(staff.getEmploymentDate(), new Date()); + //最多只允许10年的工龄补贴 + if(year > 10) year=10; + value = value.multiply(new BigDecimal(year)); + } + staffDetail.getExtendeds().put(key, value); + } + //计算学历补助 + if(StringUtils.isNotEmpty(staff.getLevel())){ + //查询学历 + String label = SpringUtils.getBean(SysDictDataMapper.class).selectDictLabel(Constants.SYS_LEVEL, staff.getLevel()); + if(StringUtils.isNotEmpty(label)){ + RzSubsidy rzSubsidy = SpringUtils.getBean(RzSubsidyMapper.class).selectRzSubsidyByName(label); + if(ObjectUtils.isNotEmpty(rzSubsidy)){ + staffDetail.getExtendeds().put("学历补助", rzSubsidy.getValue()); + } + } + } + } + return staffDetail; + } + +} diff --git a/evo-admin/src/main/resources/application.yml b/evo-admin/src/main/resources/application.yml index e1dd7da..e67b7eb 100644 --- a/evo-admin/src/main/resources/application.yml +++ b/evo-admin/src/main/resources/application.yml @@ -80,7 +80,7 @@ mybatis-plus: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl type-aliases-package: com.evo.**.domain - mapper-locations: classpath*:mapper/**/*Mapper.xml + mapper-locations: classpath:mapper/**/*Mapper.xml global-config: db-config: id-type: auto diff --git a/evo-admin/src/main/resources/mapper/system/SysStaffDetailMapper.xml b/evo-admin/src/main/resources/mapper/system/SysStaffDetailMapper.xml index d68630f..f4acfd2 100644 --- a/evo-admin/src/main/resources/mapper/system/SysStaffDetailMapper.xml +++ b/evo-admin/src/main/resources/mapper/system/SysStaffDetailMapper.xml @@ -10,19 +10,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - - - + + + + + + + + - - - + + + @@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -74,20 +74,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" basic_salary, jobs_salary, daily_wage, - hours_salary, - full_frequently_subsidies, - level_of_education_subsidies, - contract_subsidies, - seniority_subsidies, - social_security_subsidies, - night_shift_subsidies, - dinner_subsidies, + + + + + + + + fixed_allowance, other_subsidies, breakfast_expend, - lunch_expend, - supper_expend, - subsidy_deduct_money, + + + deductions, endowment_insurance, medical_insurance, @@ -111,26 +111,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, count_insurance, - middle_subsidies, + #{staffId}, #{basicSalary}, #{jobsSalary}, #{dailyWage}, - #{hoursSalary}, - #{fullFrequentlySubsidies}, - #{levelOfEducationSubsidies}, - #{contractSubsidies}, - #{senioritySubsidies}, - #{socialSecuritySubsidies}, - #{nightShiftSubsidies}, - #{dinnerSubsidies}, + + + + + + + + #{fixedAllowance}, #{otherSubsidies}, - #{breakfastExpend}, - #{lunchExpend}, - #{supperExpend}, + + + #{subsidyDeductMoney}, #{deductions}, #{endowmentInsurance}, @@ -155,7 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{updateTime}, #{countInsurance}, - #{middleSubsidies}, + @@ -166,19 +166,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" basic_salary = #{basicSalary}, jobs_salary = #{jobsSalary}, daily_wage = #{dailyWage}, - hours_salary = #{hoursSalary}, - full_frequently_subsidies = #{fullFrequentlySubsidies}, - level_of_education_subsidies = #{levelOfEducationSubsidies}, - contract_subsidies = #{contractSubsidies}, - seniority_subsidies = #{senioritySubsidies}, - social_security_subsidies = #{socialSecuritySubsidies}, - night_shift_subsidies = #{nightShiftSubsidies}, - dinner_subsidies = #{dinnerSubsidies}, + + + + + + + + fixed_allowance = #{fixedAllowance}, other_subsidies = #{otherSubsidies}, - breakfast_expend = #{breakfastExpend}, - lunch_expend = #{lunchExpend}, - supper_expend = #{supperExpend}, + + + subsidy_deduct_money = #{subsidyDeductMoney}, deductions = #{deductions}, endowment_insurance = #{endowmentInsurance}, @@ -203,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, count_insurance = #{countInsurance}, - middle_subsidies = #{middleSubsidies}, + where id = #{id} diff --git a/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml b/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml index b827725..883b01b 100644 --- a/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml +++ b/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml @@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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 from sys_staff - del_flag = '0' @@ -82,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + insert into sys_staff company_name, @@ -128,6 +128,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" social_subsidy, image_url, time_clock, + subsidys, + #{companyName}, @@ -173,10 +175,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{socialSubsidy}, #{imageUrl}, #{timeClock}, + #{subsidys}, - + update sys_staff company_name = #{companyName}, @@ -222,6 +225,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" social_subsidy = #{socialSubsidy}, image_url = #{imageUrl}, time_clock = #{timeClock}, + subsidys = #{subsidys}, where user_id = #{userId}