gongchunyi
4 天以前 e8d08ebdd187f99f793cd839038dd5c392cdfbd8
fix: 修改人员薪资接口
已修改8个文件
288 ■■■■ 文件已修改
src/main/java/com/ruoyi/compensationperformance/controller/CompensationPerformanceController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/compensationperformance/mapper/CompensationPerformanceMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/compensationperformance/pojo/CompensationPerformance.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/compensationperformance/service/CompensationPerformanceService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/compensationperformance/service/impl/CompensationPerformanceServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/compensationperformance/CompensationPerformanceMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/staff/StaffOnJobMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/compensationperformance/controller/CompensationPerformanceController.java
@@ -40,11 +40,14 @@
    @Autowired
    private CompensationPerformanceService compensationPerformanceService;
    @Autowired
    private StaffOnJobMapper staffOnJobMapper;
    @GetMapping("/listPage")
    @Log(title = "薪酬绩效-分页查询", businessType = BusinessType.OTHER)
    @ApiOperation("薪酬绩效-分页查询")
    public AjaxResult listPage(Page page, CompensationPerformance compensationPerformance){
        IPage<CompensationPerformance> listPage = compensationPerformanceService.listPage(page, compensationPerformance);
    public AjaxResult listPage(Page page, String staffName, String payDateStr) {
        IPage<CompensationPerformance> listPage = compensationPerformanceService.listPage(page, staffName, payDateStr);
        return AjaxResult.success(listPage);
    }
@@ -80,7 +83,7 @@
    @PostMapping("/export")
    public void export(HttpServletResponse response ) {
        List<CompensationPerformance> list = compensationPerformanceService.list();
        ExcelUtil<CompensationPerformance> util = new ExcelUtil<CompensationPerformance>(CompensationPerformance.class);
        ExcelUtil<CompensationPerformance> util = new ExcelUtil<>(CompensationPerformance.class);
        util.exportExcel(response, list, "导出薪资管理列表");
    }
@@ -92,18 +95,15 @@
        util.exportExcel(response, list, "下载薪资管理列表模板");
    }
    @Autowired
    private SysUserMapper sysUserMapper;
    @Log(title = "导入薪资管理列表", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file) throws Exception {
        ExcelUtil<CompensationPerformance> util = new ExcelUtil<>(CompensationPerformance.class);
        List<CompensationPerformance> list = util.importExcel(file.getInputStream());
        list.forEach(item->{
            SysUser staffOnJob = sysUserMapper.selectUserByNickName(item.getName());
            StaffOnJob staffOnJob = staffOnJobMapper.selectStaffByNickName(item.getStaffName());
            if(staffOnJob!=null){
                item.setStaffId(staffOnJob.getUserId());
                item.setStaffId(staffOnJob.getId());
            }
        });
        boolean b = compensationPerformanceService.saveBatch(list);
src/main/java/com/ruoyi/compensationperformance/mapper/CompensationPerformanceMapper.java
@@ -15,9 +15,10 @@
    /**
     * 分页查询
     *
     * @param page
     * @param compensationPerformance
     * @param page       分页
     * @param staffName  员工姓名
     * @param payDateStr 薪资日期
     * @return
     */
    IPage<CompensationPerformance> listPage(Page page,@Param("req") CompensationPerformance compensationPerformance);
    IPage<CompensationPerformance> listPage(Page page, @Param("staffName") String staffName, @Param("payDateStr") String payDateStr);
}
src/main/java/com/ruoyi/compensationperformance/pojo/CompensationPerformance.java
@@ -8,193 +8,156 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * 薪酬绩效明细
 *
 * @author :yys
 * @date : 2025/8/8 9:40
 * @date : 2025/8/8
 */
@Data
@TableName("compensation_performance")
@ApiModel
public class CompensationPerformance {
@ApiModel("薪酬绩效明细")
public class CompensationPerformance implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("主键")
    private Long id;
    /**
     * 用户id
     * 员工id
     */
    @ApiModelProperty("用户id")
    @ApiModelProperty("员工id")
    private Long staffId;
    /**
     * 姓名
     * 员工姓名
     */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;
    @ApiModelProperty("员工姓名")
    @Excel(name = "员工姓名")
    @TableField(exist = false)
    private String staffName;
    /**
     * 薪资月份(查询)
     * 岗位名称
     */
    @ApiModelProperty("薪资月份(查询)")
    @ApiModelProperty("岗位名称")
    @Excel(name = "岗位名称")
    @TableField(exist = false)
    private String payDateStr;
    private String postName;
    /**
     * 部门名称
     */
    @ApiModelProperty("部门名称")
    @Excel(name = "部门名称")
    @TableField(exist = false)
    private String deptName;
    /**
     * 薪资月份
     */
    @ApiModelProperty("薪资月份")
    @Excel(name = "薪资月份", dateFormat = "yyyy-MM", width = 30)
    @Excel(name = "月份", dateFormat = "yyyy-MM", width = 20)
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM")
    private Date payDate;
    /**
     * 应出勤天数
     */
    @ApiModelProperty("应出勤天数")
//    @Excel(name = "应出勤天数")
    private BigDecimal shouldAttendedNum;
    /**
     * 实际出勤天数
     */
    @ApiModelProperty("实际出勤天数")
//    @Excel(name = "实际出勤天数")
    private BigDecimal actualAttendedNum;
    /**
     * 基本工资
     */
    @ApiModelProperty("基本工资")
//    @Excel(name = "基本工资")
    @Excel(name = "基本工资")
    private BigDecimal basicSalary;
    /**
     * 岗位工资
     * 计件工资
     */
    @ApiModelProperty("岗位工资")
//    @Excel(name = "岗位工资")
    private BigDecimal postSalary;
    @ApiModelProperty("计件工资")
    @Excel(name = "计件工资")
    private BigDecimal pieceworkSalary;
    /**
     * 入离职缺勤扣款
     * 计时工资
     */
    @ApiModelProperty("入离职缺勤扣款")
//    @Excel(name = "入离职缺勤扣款")
    private BigDecimal deductionAbsenteeism;
    @ApiModelProperty("计时工资")
    @Excel(name = "计时工资")
    private BigDecimal hourlySalary;
    /**
     * 病假扣款
     * 其他收入
     */
    @ApiModelProperty("病假扣款")
//    @Excel(name = "病假扣款")
    private BigDecimal sickLeaveDeductions;
    /**
     * 事假扣款
     */
    @ApiModelProperty("事假扣款")
//    @Excel(name = "事假扣款")
    private BigDecimal deductionPersonalLeave;
    /**
     * 忘记打卡扣款
     */
    @ApiModelProperty("忘记打卡扣款")
//    @Excel(name = "忘记打卡扣款")
    private BigDecimal forgetClockDeduct;
    /**
     * 绩效得分
     */
    @ApiModelProperty("绩效得分")
//    @Excel(name = "绩效得分")
    private BigDecimal performanceScore;
    /**
     * 绩效工资
     */
    @ApiModelProperty("绩效工资")
//    @Excel(name = "绩效工资")
    private BigDecimal performancePay;
    /**
     * 应发合计
     */
    @ApiModelProperty("应发合计")
//    @Excel(name = "应发合计")
    private BigDecimal payableWages;
    @ApiModelProperty("其他收入")
    @Excel(name = "其他收入")
    private BigDecimal otherIncome;
    /**
     * 社保个人
     */
    @ApiModelProperty("社保个人")
//    @Excel(name = "社保个人")
    @Excel(name = "社保个人")
    private BigDecimal socialSecurityIndividuals;
    /**
     * 社保公司
     */
    @ApiModelProperty("社保公司")
//    @Excel(name = "社保公司")
    private BigDecimal socialSecurityCompanies;
    /**
     * 社保合计
     */
    @ApiModelProperty("社保合计")
//    @Excel(name = "社保合计")
    private BigDecimal socialSecurityTotal;
    /**
     * 公积金合计
     */
    @ApiModelProperty("公积金合计")
//    @Excel(name = "公积金合计")
    private BigDecimal providentFundTotal;
    /**
     * 公积金公司
     */
    @ApiModelProperty("公积金公司")
//    @Excel(name = "公积金公司")
    private BigDecimal providentFundCompany;
    /**
     * 公积金个人
     */
    @ApiModelProperty("公积金个人")
//    @Excel(name = "公积金个人")
    @Excel(name = "公积金个人")
    private BigDecimal providentFundIndividuals;
    /**
     * 应税工资
     * 工资个税
     */
    @ApiModelProperty("应税工资")
//    @Excel(name = "应税工资")
    private BigDecimal taxableWaget;
    /**
     * 个人所得税
     */
    @ApiModelProperty("个人所得税")
//    @Excel(name = "个人所得税")
    @ApiModelProperty("工资个税")
    @Excel(name = "工资个税")
    private BigDecimal personalIncomeTax;
    /**
     * 其他支出
     */
    @ApiModelProperty("其他支出")
    @Excel(name = "其他支出")
    private BigDecimal otherDeductions;
    /**
     * 应发工资
     */
    @ApiModelProperty("应发工资")
    @Excel(name = "应发工资")
    private BigDecimal payableWages;
    /**
     * 应扣工资
     */
    @ApiModelProperty("应扣工资")
    @Excel(name = "应扣工资")
    private BigDecimal deductibleWages;
    /**
     * 实发工资
     */
    @ApiModelProperty("实发工资")
    @Excel(name = "实发工资", width = 30)
    @Excel(name = "实发工资")
    private BigDecimal actualWages;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    @Excel(name = "备注")
    private String remark;
    /**
     * 租户ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    /**
     * 创建者
@@ -206,6 +169,7 @@
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    /**
@@ -218,12 +182,7 @@
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
    /**
     * 租户ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
}
src/main/java/com/ruoyi/compensationperformance/service/CompensationPerformanceService.java
@@ -14,9 +14,11 @@
    /**
     * 分页查询
     *
     * @param page
     * @param compensationPerformance
     * @param page       分页插件
     * @param staffName  员工姓名
     * @param payDateStr 薪资日期
     * @return
     */
    IPage<CompensationPerformance> listPage(Page page, CompensationPerformance compensationPerformance);
    IPage<CompensationPerformance> listPage(Page page, String staffName, String payDateStr);
}
src/main/java/com/ruoyi/compensationperformance/service/impl/CompensationPerformanceServiceImpl.java
@@ -23,8 +23,8 @@
    @Override
    public IPage<CompensationPerformance> listPage(Page page, CompensationPerformance compensationPerformance) {
        IPage<CompensationPerformance> compensationPerformanceIPage = compensationPerformanceMapper.listPage(page, compensationPerformance);
        return compensationPerformanceIPage;
    public IPage<CompensationPerformance> listPage(Page page, String staffName, String payDateStr) {
        return compensationPerformanceMapper.listPage(page, staffName, payDateStr);
    }
}
src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java
@@ -20,6 +20,7 @@
    /**
     * 统计指定日期的在职员工数
     *
     * @param date 日期
     * @return 在职员工数
     */
@@ -27,9 +28,18 @@
    /**
     * 统计指定月份的新入职员工数
     *
     * @param monthStart 月份开始日期
     * @param monthEnd 月份结束日期
     * @return 新入职员工数
     */
    Integer countNewHireByMonth(@Param("monthStart") LocalDate monthStart, @Param("monthEnd") LocalDate monthEnd);
    /**
     * 根据员工姓名查询员工信息
     *
     * @param staffName 员工姓名
     * @return 员工数据
     */
    StaffOnJob selectStaffByNickName(String staffName);
}
src/main/resources/mapper/compensationperformance/CompensationPerformanceMapper.xml
@@ -3,14 +3,23 @@
<mapper namespace="com.ruoyi.compensationperformance.mapper.CompensationPerformanceMapper">
    <select id="listPage" resultType="com.ruoyi.compensationperformance.pojo.CompensationPerformance">
        select * from compensation_performance
        SELECT
        cp.*,
        soj.staff_name AS staffName,
        sp.post_name AS postName,
        sd.dept_name AS deptName
        FROM compensation_performance cp
        LEFT JOIN staff_on_job soj ON soj.id = cp.staff_id
        LEFT JOIN sys_post sp ON sp.post_id = soj.sys_post_id
        LEFT JOIN sys_dept sd ON sd.dept_id = soj.sys_dept_id
        <where>
            <if test="req.name != null and req.name != ''">
                and `name` like concat('%',#{req.name},'%')
            <if test="staffName != null and staffName != ''">
                AND soj.staff_name LIKE CONCAT('%', #{staffName}, '%')
            </if>
            <if test="req.payDateStr != null and req.payDateStr != ''">
                and pay_date like concat('%',#{req.payDateStr},'%')
            <if test="payDateStr != null and payDateStr != ''">
                AND DATE_FORMAT(cp.pay_date, '%Y-%m') = #{payDateStr}
            </if>
        </where>
        ORDER BY cp.pay_date DESC, cp.id DESC
    </select>
</mapper>
src/main/resources/mapper/staff/StaffOnJobMapper.xml
@@ -57,5 +57,22 @@
        FROM staff_on_job
        WHERE staff_state = 1
        AND DATE_FORMAT(create_time, '%Y-%m-%d') BETWEEN #{monthStart} AND #{monthEnd}
    </select>
    <select id="selectStaffByNickName" resultType="com.ruoyi.staff.pojo.StaffOnJob" parameterType="java.lang.String">
        SELECT
        id
        nick_name AS staffName
        FROM staff_on_job
        WHERE del_flag = '0'
        <choose>
            <when test="staffName != null and staffName != ''">
                AND nick_name = #{staffName}
            </when>
            <otherwise>
                AND 1 = 0
            </otherwise>
        </choose>
        LIMIT 1
    </select>
</mapper>