优化
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
package com.ruoyi.web.controller.bgt;
|
package com.ruoyi.web.controller.bgt;
|
||||||
|
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
@ -18,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工资结算Controller
|
* 工资结算Controller
|
||||||
@ -64,4 +67,16 @@ public class AppBgtPayCalculationController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation("总体考勤情况-工资结算-基础信息")
|
||||||
|
@GetMapping("/baseInfo")
|
||||||
|
public AjaxResult<BgtPayCalculationDetailBaseVO> baseInfo(Long id, Long recruitId) {
|
||||||
|
return AjaxResult.success(iWgzPayCalculationService.baseInfo(id,recruitId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("总体考勤情况-工资结算-结算记录")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public AjaxResult<List<BgtPayCalculationDetailListVO>> getInfo(Long id, Long recruitId) {
|
||||||
|
return AjaxResult.success(iWgzPayCalculationService.record(id,recruitId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import com.ruoyi.common.annotation.Log;
|
|||||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppPersonalBasicInformationReq;
|
import com.ruoyi.wgz.bo.req.WgzAppPersonalBasicInformationReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppPersonalBasicInformationRes;
|
import com.ruoyi.wgz.bo.res.WgzAppPersonalBasicInformationRes;
|
||||||
@ -41,8 +42,14 @@ public class AppBgtProjectRecruitApplyController extends BaseController {
|
|||||||
|
|
||||||
private final IWgzUserService wgzUserService;
|
private final IWgzUserService wgzUserService;
|
||||||
|
|
||||||
@ApiOperation("App务工者列表")
|
@ApiOperation("App务工者列表(分页)")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<BgtProjectRecruitApplyVO> listPage(@Validated BgtProjectRecruitApplyQueryDTO dto) {
|
||||||
|
return iBgtProjectRecruitApplyService.appQueryPageList(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("App务工者列表")
|
||||||
|
@GetMapping("/listAll")
|
||||||
public AjaxResult<List<BgtProjectRecruitApplyVO>> list(@Validated BgtProjectRecruitApplyQueryDTO dto) {
|
public AjaxResult<List<BgtProjectRecruitApplyVO>> list(@Validated BgtProjectRecruitApplyQueryDTO dto) {
|
||||||
return AjaxResult.success(iBgtProjectRecruitApplyService.appQueryList(dto));
|
return AjaxResult.success(iBgtProjectRecruitApplyService.appQueryList(dto));
|
||||||
}
|
}
|
||||||
@ -70,7 +77,7 @@ public class AppBgtProjectRecruitApplyController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("指定日期打卡记录")
|
@ApiOperation("人员出勤情况")
|
||||||
@GetMapping("/todayAttendanceList")
|
@GetMapping("/todayAttendanceList")
|
||||||
public AjaxResult<List<BgtProjectRecruitApplyVO>> todayAttendanceList(@Validated BgtAttendanceDayDTO req) {
|
public AjaxResult<List<BgtProjectRecruitApplyVO>> todayAttendanceList(@Validated BgtAttendanceDayDTO req) {
|
||||||
return AjaxResult.success(iBgtProjectRecruitApplyService.todayAttendanceList(req));
|
return AjaxResult.success(iBgtProjectRecruitApplyService.todayAttendanceList(req));
|
||||||
|
@ -4,8 +4,7 @@ import com.ruoyi.common.core.controller.BaseController;
|
|||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskVO;
|
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@ -57,4 +56,34 @@ public class AppFbsProjectTaskController extends BaseController {
|
|||||||
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
|
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("项目任务详细信息-考勤")
|
||||||
|
@GetMapping("/attendance/{id}")
|
||||||
|
public AjaxResult<AppTaskDetailAttendanceVO> getInfoAttendance(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable("id") Long id) {
|
||||||
|
return AjaxResult.success(iFbsProjectTaskService.attendance(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("项目任务详细信息-进度")
|
||||||
|
@GetMapping("/progress/{id}")
|
||||||
|
public AjaxResult<AppTaskDetailProgressVO> getInfoProgress(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable("id") Long id) {
|
||||||
|
return AjaxResult.success(iFbsProjectTaskService.progress(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("项目任务详细信息-结算")
|
||||||
|
@GetMapping("/wage/{id}")
|
||||||
|
public AjaxResult<AppTaskDetailWageVO> getInfoWage(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable("id") Long id) {
|
||||||
|
return AjaxResult.success(iFbsProjectTaskService.wage(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("项目任务详细信息-务工人员")
|
||||||
|
@GetMapping("/recruit/{id}")
|
||||||
|
public AjaxResult<AppTaskDetailRecruitVO> getInfoRecruit(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable("id") Long id) {
|
||||||
|
return AjaxResult.success(iFbsProjectTaskService.recruit(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.ruoyi.bgt.domain.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("总体考勤情况-工资结算-基础信息")
|
||||||
|
public class BgtPayCalculationDetailBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty("评分")
|
||||||
|
private Double score;
|
||||||
|
|
||||||
|
@ApiModelProperty("头像")
|
||||||
|
private String avatarName;
|
||||||
|
|
||||||
|
@ApiModelProperty("招工主题")
|
||||||
|
private String recruitName;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务名")
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
@ApiModelProperty("进场时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate entryTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("总工资")
|
||||||
|
private BigDecimal allAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("已付工资")
|
||||||
|
private BigDecimal payAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("剩余工资")
|
||||||
|
private BigDecimal residueAmount;
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.ruoyi.bgt.domain.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("总体考勤情况-工资结算-结算记录")
|
||||||
|
public class BgtPayCalculationDetailListVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键自增ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("工资金额")
|
||||||
|
private BigDecimal recruitAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("出勤天数")
|
||||||
|
private Long num;
|
||||||
|
|
||||||
|
@ApiModelProperty("创建时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("同意|拒绝时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime auditorTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("审核状态(0未读 1待审核 2已同意 3已拒绝)")
|
||||||
|
private String auditorType;
|
||||||
|
}
|
@ -14,6 +14,13 @@ import java.util.List;
|
|||||||
@ApiModel("包工头招工申请列表查询对象")
|
@ApiModel("包工头招工申请列表查询对象")
|
||||||
public class BgtProjectRecruitApplyQueryDTO extends BaseEntity {
|
public class BgtProjectRecruitApplyQueryDTO extends BaseEntity {
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty("分页大小")
|
||||||
|
private Integer pageSize;
|
||||||
|
/** 当前页数 */
|
||||||
|
@ApiModelProperty("当前页数")
|
||||||
|
private Integer pageNum;
|
||||||
|
|
||||||
@ApiModelProperty("招工ID列表")
|
@ApiModelProperty("招工ID列表")
|
||||||
@NotEmpty(message = "招工ID列表不能为空")
|
@NotEmpty(message = "招工ID列表不能为空")
|
||||||
private List<Long> recruitIds;
|
private List<Long> recruitIds;
|
||||||
|
@ -32,6 +32,7 @@ public class BgtProjectRecruitApplyVO implements Serializable {
|
|||||||
private LocalDate entryTime;
|
private LocalDate entryTime;
|
||||||
|
|
||||||
@ApiModelProperty("务工者用户ID")
|
@ApiModelProperty("务工者用户ID")
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@ApiModelProperty("姓名")
|
@ApiModelProperty("姓名")
|
||||||
|
@ -6,10 +6,12 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,6 +98,14 @@ public class BgtProjectRecruitDetailVO implements Serializable {
|
|||||||
@ApiModelProperty("备注")
|
@ApiModelProperty("备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("上班时间")
|
||||||
|
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||||
|
private LocalTime beginWorkTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("下班时间")
|
||||||
|
@DateTimeFormat(pattern = "HH:mm:ss")
|
||||||
|
private LocalTime endWorkTime;
|
||||||
|
|
||||||
@ApiModelProperty("申请者列表")
|
@ApiModelProperty("申请者列表")
|
||||||
List<BgtProjectRecruitApplyVO> applylist;
|
List<BgtProjectRecruitApplyVO> applylist;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtAttendanceDayDTO;
|
import com.ruoyi.bgt.domain.dto.BgtAttendanceDayDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO;
|
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO;
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtProjectTaskProgressQueryDTO;
|
||||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||||
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
|
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
||||||
@ -24,6 +25,8 @@ import java.util.List;
|
|||||||
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
|
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
|
||||||
public interface BgtProjectRecruitApplyMapper extends BaseMapperPlus<BgtProjectRecruitApply> {
|
public interface BgtProjectRecruitApplyMapper extends BaseMapperPlus<BgtProjectRecruitApply> {
|
||||||
|
|
||||||
|
Page<BgtProjectRecruitApplyVO> appQueryList(@Param("page")Page<BgtProjectTaskProgressQueryDTO> queryDTOPage,@Param("dto") BgtProjectRecruitApplyQueryDTO dto);
|
||||||
|
|
||||||
List<BgtProjectRecruitApplyVO> appQueryList(@Param("dto") BgtProjectRecruitApplyQueryDTO dto);
|
List<BgtProjectRecruitApplyVO> appQueryList(@Param("dto") BgtProjectRecruitApplyQueryDTO dto);
|
||||||
|
|
||||||
List<BgtProjectRecruitApplyVO> todayAttendanceList(@Param("dto") BgtAttendanceDayDTO dto);
|
List<BgtProjectRecruitApplyVO> todayAttendanceList(@Param("dto") BgtAttendanceDayDTO dto);
|
||||||
|
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
|
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
|
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -64,6 +65,11 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
|
|||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<BgtProjectRecruitApplyVO> appQueryPageList(BgtProjectRecruitApplyQueryDTO dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询列表
|
* 查询列表
|
||||||
*/
|
*/
|
||||||
|
@ -10,10 +10,7 @@ import com.ruoyi.bgt.bo.BgtProjectRecruitApplyQueryBo;
|
|||||||
import com.ruoyi.bgt.domain.BgtMessage;
|
import com.ruoyi.bgt.domain.BgtMessage;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtAttendanceDayDTO;
|
import com.ruoyi.bgt.domain.dto.*;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyConsentDTO;
|
|
||||||
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO;
|
|
||||||
import com.ruoyi.bgt.domain.dto.BgtScoreDTO;
|
|
||||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||||
import com.ruoyi.bgt.mapper.BgtProjectRecruitApplyMapper;
|
import com.ruoyi.bgt.mapper.BgtProjectRecruitApplyMapper;
|
||||||
import com.ruoyi.bgt.service.IBgtMessageService;
|
import com.ruoyi.bgt.service.IBgtMessageService;
|
||||||
@ -125,6 +122,15 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
return removeByIds(ids);
|
return removeByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<BgtProjectRecruitApplyVO> appQueryPageList(BgtProjectRecruitApplyQueryDTO dto) {
|
||||||
|
Page<BgtProjectTaskProgressQueryDTO> queryDTOPage = new Page<>();
|
||||||
|
queryDTOPage.setCurrent(dto.getPageNum());
|
||||||
|
queryDTOPage.setSize(dto.getPageSize());
|
||||||
|
Page<BgtProjectRecruitApplyVO> queryVOPage = baseMapper.appQueryList(queryDTOPage, dto);
|
||||||
|
return PageUtils.buildDataInfo(queryVOPage);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BgtProjectRecruitApplyVO> appQueryList(BgtProjectRecruitApplyQueryDTO dto) {
|
public List<BgtProjectRecruitApplyVO> appQueryList(BgtProjectRecruitApplyQueryDTO dto) {
|
||||||
return baseMapper.appQueryList(dto);
|
return baseMapper.appQueryList(dto);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.common.constants;
|
package com.ruoyi.common.constants;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class WgzAndBgtMessageConstant {
|
public class WgzAndBgtMessageConstant {
|
||||||
@ -50,19 +51,46 @@ public class WgzAndBgtMessageConstant {
|
|||||||
* =====================================================包工头=====================================================
|
* =====================================================包工头=====================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static final String BGT_HEADLINE_APPLY = "您申请的【%s】项目,已得到回复!";
|
//模板
|
||||||
public static final String BGT_SUBHEADING_APPLY = "您申请的【%s】项目,已经过审核人【%s】同意!";
|
public static final String BGT_SIGN_UP_APPLY_HEADLINE = "您申请的【%s】项目,已得到回复!";
|
||||||
|
public static final String BGT_SIGN_UP_APPLY_SUBHEADING = "您申请的【%s】项目,审核人【%s】已%s!";
|
||||||
|
public static final String BGT_PAY_APPLY_HEADLINE = "【%s】项目工资已审批!";
|
||||||
|
public static final String BGT_PAY_APPLY_SUBHEADING = "您申请的【%s】项目工资,审核人【%s】已%s!";
|
||||||
|
public static final String BGT_LEAVE_APPLY_HEADLINE = "您【%s】项目的请假申请,审核人【%s】已%s!";
|
||||||
|
public static final String BGT_LEAVE_APPLY_SUBHEADING = "您【%s】项目的请假申请,审核人【%s】已%s!";
|
||||||
|
|
||||||
|
//主副标志
|
||||||
|
public static final String HEADLINE = "headline"; //主标题
|
||||||
|
public static final String SUBHEADING = "subheading"; //副标题
|
||||||
|
|
||||||
|
//消息类型
|
||||||
|
public static final String BGT_TYPE_SIGN_UP = "1"; //务工者报名
|
||||||
|
public static final String BGT_TYPE_PAY = "2"; //付款
|
||||||
|
public static final String BGT_TYPE_LEAVE = "3"; //请假
|
||||||
|
public static final String BGT_TYPE_MAKE_UP = "4"; //补卡
|
||||||
|
public static final String BGT_TYPE_EXIT = "5"; //退场
|
||||||
|
|
||||||
//包工头消息返回
|
//包工头消息返回
|
||||||
public static String bgtMessage(Map<String, String> mp, String type) {
|
public static Map<String,String> bgtMessage(Map<String, String> mp, String type,Boolean isPass) {
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
String pass = isPass ? "通过" : "拒绝";
|
||||||
switch (type){
|
switch (type){
|
||||||
case "1":
|
case "1":
|
||||||
return String.format(BGT_HEADLINE_APPLY, mp.get("projectName"));
|
map.put(HEADLINE, String.format(BGT_SIGN_UP_APPLY_HEADLINE, mp.get("projectName")));
|
||||||
|
map.put(SUBHEADING, String.format(BGT_SIGN_UP_APPLY_SUBHEADING, mp.get("projectName"),mp.get("auditor"),pass));
|
||||||
|
break;
|
||||||
case "2":
|
case "2":
|
||||||
return String.format(BGT_SUBHEADING_APPLY, mp.get("projectName"),mp.get("auditor"));
|
map.put(HEADLINE, String.format(BGT_PAY_APPLY_HEADLINE, mp.get("projectName")));
|
||||||
|
map.put(SUBHEADING, String.format(BGT_PAY_APPLY_SUBHEADING, mp.get("projectName"),mp.get("auditor"),pass));
|
||||||
|
break;
|
||||||
|
// case "3":
|
||||||
|
// return String.format(BGT_PAY_APPLY, mp.get("projectName"),mp.get("auditor"));
|
||||||
|
// case "4":
|
||||||
|
// return String.format(BGT_LEAVE_APPLY, mp.get("projectName"),mp.get("auditor"));
|
||||||
default:
|
default:
|
||||||
return "未知类型";
|
break;
|
||||||
}
|
}
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel("包工头项目任务详情-考勤")
|
||||||
|
public class AppTaskDetailAttendanceVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//总体考勤情况
|
||||||
|
|
||||||
|
@ApiModelProperty("总人数")
|
||||||
|
private Integer totalNum = 0;
|
||||||
|
|
||||||
|
@ApiModelProperty("今日到岗人数")
|
||||||
|
private Integer reportToDutyNum= 0;
|
||||||
|
|
||||||
|
@ApiModelProperty("今日到岗率")
|
||||||
|
private Integer reportToDutyRate= 0;
|
||||||
|
|
||||||
|
@ApiModelProperty("考勤列表")
|
||||||
|
List<BgtAttendanceCountVO> countVOS;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel("包工头项目任务详情-进度")
|
||||||
|
public class AppTaskDetailProgressVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//任务进度
|
||||||
|
@ApiModelProperty("任务进度")
|
||||||
|
private Integer progress;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel("包工头项目任务详情-务工者")
|
||||||
|
public class AppTaskDetailRecruitVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private Long id;
|
||||||
|
//务工者数量列表
|
||||||
|
@ApiModelProperty("申请者列表")
|
||||||
|
List<BgtProjectRecruitApplyVO> applyList;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -98,8 +98,8 @@ public class AppTaskDetailVO {
|
|||||||
@ApiModelProperty("任务付款金额")
|
@ApiModelProperty("任务付款金额")
|
||||||
private BigDecimal taskPaymentAmount;
|
private BigDecimal taskPaymentAmount;
|
||||||
|
|
||||||
@ApiModelProperty("收款申请列表")
|
@ApiModelProperty("最新一条收款申请")
|
||||||
private List<BgtWageApplicationListVO> wageApplicationList;
|
private BgtWageApplicationListVO wageApplication;
|
||||||
|
|
||||||
|
|
||||||
//总体考勤情况
|
//总体考勤情况
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel("包工头项目任务详情-结算情况")
|
||||||
|
public class AppTaskDetailWageVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//结算情况
|
||||||
|
@ApiModelProperty("任务收款金额")
|
||||||
|
private Integer taskReceiveAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务付款金额")
|
||||||
|
private BigDecimal taskPaymentAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("最新一条收款申请")
|
||||||
|
private BgtWageApplicationListVO wageApplication;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -6,8 +6,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
|||||||
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskVO;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -69,4 +68,24 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
|
|||||||
* 任务详情
|
* 任务详情
|
||||||
*/
|
*/
|
||||||
AppTaskDetailVO appQueryById(Long id);
|
AppTaskDetailVO appQueryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务详情-考勤
|
||||||
|
*/
|
||||||
|
AppTaskDetailAttendanceVO attendance(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务详情-进度
|
||||||
|
*/
|
||||||
|
AppTaskDetailProgressVO progress(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务详情-结算
|
||||||
|
*/
|
||||||
|
AppTaskDetailWageVO wage(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务详情-务工人员
|
||||||
|
*/
|
||||||
|
AppTaskDetailRecruitVO recruit(Long id);
|
||||||
}
|
}
|
||||||
|
@ -27,8 +27,7 @@ import com.ruoyi.common.utils.SecurityUtils;
|
|||||||
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.domain.vo.AppTaskVO;
|
|
||||||
import com.ruoyi.fbs.mapper.FbsProjectTaskMapper;
|
import com.ruoyi.fbs.mapper.FbsProjectTaskMapper;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
@ -180,15 +179,6 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
|
|
||||||
if(ProjectTaskStatus.PROGRESS.getCode().equals(byId.getStatus())
|
if(ProjectTaskStatus.PROGRESS.getCode().equals(byId.getStatus())
|
||||||
|| ProjectTaskStatus.COMPLETE.getCode().equals(byId.getStatus())){
|
|| ProjectTaskStatus.COMPLETE.getCode().equals(byId.getStatus())){
|
||||||
//务工者数量列表
|
|
||||||
BgtProjectRecruitQueryBo bgtProjectRecruitQueryBo = new BgtProjectRecruitQueryBo();
|
|
||||||
bgtProjectRecruitQueryBo.setTaskId(id);
|
|
||||||
List<Long> recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
|
||||||
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
|
||||||
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
|
||||||
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
|
||||||
//任务进度
|
//任务进度
|
||||||
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
||||||
|
|
||||||
@ -197,7 +187,7 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
||||||
wageDTO.setTaskId(id);
|
wageDTO.setTaskId(id);
|
||||||
List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
|
List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
|
||||||
appTaskDetailVO.setWageApplicationList(wageList);
|
appTaskDetailVO.setWageApplication(CollectionUtil.isEmpty(wageList)?null:wageList.get(0));
|
||||||
//收款金额
|
//收款金额
|
||||||
Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
|
Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
|
||||||
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
||||||
@ -206,20 +196,72 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
//付款金额
|
//付款金额
|
||||||
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
|
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
|
||||||
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
|
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
|
||||||
//考勤情况
|
|
||||||
LocalDate date = LocalDate.now();
|
|
||||||
LocalDate startOfMonth = date.withDayOfMonth(1);
|
|
||||||
List<BgtAttendanceCountVO> countVOS = attendanceService.countByTaskId(id, startOfMonth, date);
|
|
||||||
if(CollectionUtil.isNotEmpty(countVOS)){
|
|
||||||
BgtAttendanceCountVO vo = countVOS.get(0);
|
|
||||||
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startOfMonth, date));
|
|
||||||
appTaskDetailVO.setTotalNum(vo.getTotalNum());
|
|
||||||
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
|
|
||||||
appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return appTaskDetailVO;
|
return appTaskDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppTaskDetailAttendanceVO attendance(Long id) {
|
||||||
|
//考勤情况
|
||||||
|
AppTaskDetailAttendanceVO appTaskDetailVO = new AppTaskDetailAttendanceVO();
|
||||||
|
appTaskDetailVO.setId(id);
|
||||||
|
LocalDate date = LocalDate.now();
|
||||||
|
LocalDate startOfMonth = date.withDayOfMonth(1);
|
||||||
|
List<BgtAttendanceCountVO> countVOS = attendanceService.countByTaskId(id, startOfMonth, date);
|
||||||
|
if(CollectionUtil.isNotEmpty(countVOS)){
|
||||||
|
BgtAttendanceCountVO vo = countVOS.get(0);
|
||||||
|
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startOfMonth, date));
|
||||||
|
appTaskDetailVO.setTotalNum(vo.getTotalNum());
|
||||||
|
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
|
||||||
|
appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100);
|
||||||
|
}
|
||||||
|
return appTaskDetailVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppTaskDetailProgressVO progress(Long id) {
|
||||||
|
AppTaskDetailProgressVO appTaskDetailVO = new AppTaskDetailProgressVO();
|
||||||
|
appTaskDetailVO.setId(id);
|
||||||
|
//任务进度
|
||||||
|
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
||||||
|
return appTaskDetailVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppTaskDetailWageVO wage(Long id) {
|
||||||
|
AppTaskDetailWageVO appTaskDetailVO = new AppTaskDetailWageVO();
|
||||||
|
appTaskDetailVO.setId(id);
|
||||||
|
//结算情况
|
||||||
|
//收款申请列表
|
||||||
|
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
||||||
|
wageDTO.setTaskId(id);
|
||||||
|
List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
|
||||||
|
appTaskDetailVO.setWageApplication(CollectionUtil.isEmpty(wageList)?null:wageList.get(0));
|
||||||
|
//收款金额
|
||||||
|
Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
|
||||||
|
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
||||||
|
.sum();
|
||||||
|
appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
|
||||||
|
//付款金额
|
||||||
|
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(id, SecurityUtils.getAppUserId());
|
||||||
|
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
|
||||||
|
return appTaskDetailVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppTaskDetailRecruitVO recruit(Long id) {
|
||||||
|
AppTaskDetailRecruitVO appTaskDetailVO = new AppTaskDetailRecruitVO();
|
||||||
|
appTaskDetailVO.setId(id);
|
||||||
|
//务工者数量列表
|
||||||
|
BgtProjectRecruitQueryBo bgtProjectRecruitQueryBo = new BgtProjectRecruitQueryBo();
|
||||||
|
bgtProjectRecruitQueryBo.setTaskId(id);
|
||||||
|
List<Long> recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
||||||
|
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
||||||
|
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
||||||
|
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
||||||
|
return appTaskDetailVO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -15,6 +15,6 @@ import java.io.Serializable;
|
|||||||
@ApiModel("务工者APP-查询个人基本信息对象")
|
@ApiModel("务工者APP-查询个人基本信息对象")
|
||||||
public class WgzAppPersonalBasicInformationReq implements Serializable {
|
public class WgzAppPersonalBasicInformationReq implements Serializable {
|
||||||
@ApiModelProperty("唯一标识")
|
@ApiModelProperty("唯一标识")
|
||||||
@NotBlank(message = "唯一标识不能为空")
|
@NotNull(message = "唯一标识不能为空")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.ruoyi.wgz.service;
|
package com.ruoyi.wgz.service;
|
||||||
|
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||||
@ -103,4 +105,14 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
|
|||||||
*/
|
*/
|
||||||
BigDecimal getPayByTaskAndBgt(Long taskId, Long auditorUserId);
|
BigDecimal getPayByTaskAndBgt(Long taskId, Long auditorUserId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体考勤情况-工资结算-基础信息
|
||||||
|
*/
|
||||||
|
BgtPayCalculationDetailBaseVO baseInfo(Long userId, Long recruitId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体考勤情况-工资结算-结算记录
|
||||||
|
*/
|
||||||
|
List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
|
||||||
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
@ -16,15 +18,20 @@ import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
|||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
|
import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
|
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
|
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
|
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
|
||||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
||||||
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
|
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
|
||||||
|
import com.ruoyi.wgz.domain.WgzUser;
|
||||||
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
|
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
|
||||||
|
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||||
import com.ruoyi.wgz.service.IWgzPayCalculationFilesService;
|
import com.ruoyi.wgz.service.IWgzPayCalculationFilesService;
|
||||||
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
||||||
|
import com.ruoyi.wgz.service.IWgzUserService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -54,6 +61,14 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IWgzPayCalculationFilesService iWgzPayCalculationFilesService;
|
private IWgzPayCalculationFilesService iWgzPayCalculationFilesService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWgzUserService wgzUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IFbsProjectTaskService taskService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWgzAttendanceService attendanceService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WgzPayCalculation queryById(Long id){
|
public WgzPayCalculation queryById(Long id){
|
||||||
@ -201,4 +216,48 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
|||||||
.eq(WgzPayCalculation::getAuditorUserId, auditorUserId));
|
.eq(WgzPayCalculation::getAuditorUserId, auditorUserId));
|
||||||
return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BgtPayCalculationDetailBaseVO baseInfo(Long userId, Long recruitId) {
|
||||||
|
BgtPayCalculationDetailBaseVO vo = new BgtPayCalculationDetailBaseVO();
|
||||||
|
WgzUser wgzUser = wgzUserService.getById(userId);
|
||||||
|
vo.setScore(wgzUser.getScore());
|
||||||
|
vo.setUsername(wgzUser.getUsername());
|
||||||
|
vo.setAvatarName(wgzUser.getAvatarName());
|
||||||
|
|
||||||
|
BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
|
||||||
|
vo.setRecruitName(recruit.getRecruitName());
|
||||||
|
|
||||||
|
FbsProjectTask task = taskService.getById(recruit.getTaskId());
|
||||||
|
vo.setTaskName(task.getTaskName());
|
||||||
|
|
||||||
|
BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getOne(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
|
||||||
|
.eq(BgtProjectRecruitApply::getRecruitId, recruitId).eq(BgtProjectRecruitApply::getUserId, userId)
|
||||||
|
.last("limit 1"));
|
||||||
|
vo.setEntryTime(apply.getEntryTime());
|
||||||
|
|
||||||
|
Integer i = attendanceService.attendanceDetail(userId, apply.getId(), null);
|
||||||
|
BigDecimal totalAmount = recruit.getRecruitAmount().multiply(BigDecimal.valueOf(i));
|
||||||
|
vo.setAllAmount(totalAmount);
|
||||||
|
|
||||||
|
List<WgzPayCalculation> gzs = findByUserIdRecruitIdNewestData(userId, apply.getId());
|
||||||
|
BigDecimal addSum = new BigDecimal(0);
|
||||||
|
for (WgzPayCalculation gz : gzs) {
|
||||||
|
//金额*天数=实际工资
|
||||||
|
BigDecimal multiply = gz.getRecruitAmount().multiply(BigDecimal.valueOf(gz.getNum()));
|
||||||
|
addSum = addSum.add(multiply);
|
||||||
|
}
|
||||||
|
vo.setPayAmount(totalAmount);
|
||||||
|
|
||||||
|
vo.setResidueAmount(vo.getAllAmount().subtract(vo.getPayAmount()));
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId) {
|
||||||
|
List<WgzPayCalculation> wgzPayCalculations = baseMapper.selectList(Wrappers.<WgzPayCalculation>lambdaQuery()
|
||||||
|
.eq(WgzPayCalculation::getUserId, userId)
|
||||||
|
.eq(WgzPayCalculation::getRecruitId, recruitId));
|
||||||
|
return BeanUtil.copyToList(wgzPayCalculations, BgtPayCalculationDetailListVO.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
left join bgt_project_recruit_apply bpra on wa.recruit_id = bpra.recruit_id and bpra.user_id = wa.user_id
|
left join bgt_project_recruit_apply bpra on wa.recruit_id = bpra.recruit_id and bpra.user_id = wa.user_id
|
||||||
left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
|
left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
|
||||||
left join fbs_project_task fpt on fpt.id = bpr.task_id
|
left join fbs_project_task fpt on fpt.id = bpr.task_id
|
||||||
where wa.date = #{dto.date}'
|
where wa.date = #{dto.date}
|
||||||
<if test="dto.attendanceType !=null and dto.attendanceType ==1 ">
|
<if test="dto.attendanceType !=null and dto.attendanceType ==1 ">
|
||||||
and (wa.missed_in =0 or missed_out = 0 )
|
and (wa.missed_in =0 or missed_out = 0 )
|
||||||
</if>
|
</if>
|
||||||
|
@ -39,6 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
and bpr.recruit_name like concat('%', #{dto.recruitName}, '%')
|
and bpr.recruit_name like concat('%', #{dto.recruitName}, '%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by bpr.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="userProjectDetails" resultType="com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes">
|
<select id="userProjectDetails" resultType="com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes">
|
||||||
|
@ -69,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
and bwa.audit_status = #{dto.auditStatus}
|
and bwa.audit_status = #{dto.auditStatus}
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by bwa.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user