编写工资结算

This commit is contained in:
2025-02-21 16:15:49 +08:00
parent 1fa1862e77
commit 081f1f23d8
15 changed files with 240 additions and 8 deletions

View File

@ -2,15 +2,19 @@ package com.ruoyi.wgz.bo.req;
import com.ruoyi.common.bo.PageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("项目进行中请求对象")
public class WgzAppUnderwayReq extends PageReq {
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.wgz.bo.req;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("工作结算查询请求对象")
public class WgzApplyForPayrollSettlementFindReq implements Serializable {
@ApiModelProperty("招工ID")
private Long recruitId;
@ApiModelProperty("工资结算天数")
private int num;
}

View File

@ -0,0 +1,55 @@
package com.ruoyi.wgz.bo.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("项目进行中返回对象")
public class WgzAppUnderwayRes implements Serializable {
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("项目ID")
private Long projectId;
@ApiModelProperty("招工名称")
private String recruitName;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("封面图(多个逗号分隔)")
private String coverPlan;
@ApiModelProperty("招工数量")
private Integer recruitStaffNum;
@ApiModelProperty("招工金额")
private BigDecimal recruitAmount;
@ApiModelProperty("任务ID")
private Long taskId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("招工要求")
private String recruitRequirement;
@ApiModelProperty("已报名数量")
private Integer numberOfRegistered;
}

View File

@ -0,0 +1,32 @@
package com.ruoyi.wgz.bo.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("工资结算查询返回")
public class WgzApplyForPayrollSettlementFindRes implements Serializable {
@ApiModelProperty("进场时间")
private LocalDate entryTime;
@ApiModelProperty("离场时间")
private LocalDate leaveTime;
@ApiModelProperty("单天金额")
private BigDecimal amount;
@ApiModelProperty("出勤天数")
private Integer num;
@ApiModelProperty("总的金额")
private BigDecimal TotalAmount;
}

View File

@ -0,0 +1,6 @@
package com.ruoyi.wgz.bo.rests;
import java.io.Serializable;
public class GetsTheMembersUnderTheCurrentProject implements Serializable {
}

View File

@ -21,6 +21,9 @@ public class WgzAppCancelRegistrationProjectDetailsTwo implements Serializable {
@ApiModelProperty("务工者ID")
private Long userId;
@ApiModelProperty("0报名 1包工同意 2包工头拒绝截止时间3务工者同意 4务工者拒绝 5进场 6离场")
private String status;
@ApiModelProperty("务工者名称")
private String username;

View File

@ -114,5 +114,9 @@ public interface IWgzAttendanceService extends IServicePlus<WgzAttendance> {
*/
BgtAttendanceVO attendanceDetail(BgtAttendanceDTO dto);
/**
* 考勤详情,查询指定用户指定项目的指定天数考勤情况统计如若用户输入20但实际只有2天出勤
*/
Integer attendanceDetail(Long userId,Long recruitId, Integer num);
}

View File

@ -309,6 +309,20 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
return null;
}
@Override
public Integer attendanceDetail(Long userId,Long recruitId, Integer num){
LambdaQueryWrapper<WgzAttendance> apply = new LambdaQueryWrapper<WgzAttendance>().
eq(WgzAttendance::getUserId, userId).
eq(WgzAttendance::getRecruitId, recruitId).and(wrapper -> wrapper
.isNotNull(WgzAttendance::getClockInTime)
.or()
.isNotNull(WgzAttendance::getClockOutTime)
);
apply.orderByAsc(WgzAttendance::getDate);
apply.last("LIMIT " + num);
return baseMapper.selectCount(apply);
}
@Override
public List<BgtAttendanceCountVO> countByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate) {
return baseMapper.countByTaskId(taskId, beginDate, endDate);