优化
This commit is contained in:
		@ -36,6 +36,9 @@ public class BgtProjectTaskProgress implements Serializable {
 | 
			
		||||
    @ApiModelProperty("项目ID")
 | 
			
		||||
    private Long projectId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("项目ID")
 | 
			
		||||
	private String projectName;
 | 
			
		||||
 | 
			
		||||
    /** 标段ID */
 | 
			
		||||
    @Excel(name = "标段ID")
 | 
			
		||||
    @ApiModelProperty("标段ID")
 | 
			
		||||
@ -51,6 +54,12 @@ public class BgtProjectTaskProgress implements Serializable {
 | 
			
		||||
    @ApiModelProperty("任务ID")
 | 
			
		||||
    private Long taskId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务名")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("用工数量")
 | 
			
		||||
	private Integer taskStaffNum;
 | 
			
		||||
 | 
			
		||||
    /** 进度名称 */
 | 
			
		||||
    @Excel(name = "进度名称")
 | 
			
		||||
    @ApiModelProperty("进度名称")
 | 
			
		||||
@ -61,11 +70,17 @@ public class BgtProjectTaskProgress implements Serializable {
 | 
			
		||||
    @ApiModelProperty("负责人")
 | 
			
		||||
    private String director;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("上传人ID")
 | 
			
		||||
	private Long uploaderId;
 | 
			
		||||
 | 
			
		||||
    /** 上传人 */
 | 
			
		||||
    @Excel(name = "上传人")
 | 
			
		||||
    @ApiModelProperty("上传人")
 | 
			
		||||
    private String uploader;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("上传时间")
 | 
			
		||||
	private LocalDateTime uploadTime;
 | 
			
		||||
 | 
			
		||||
    /** 进度 */
 | 
			
		||||
    @Excel(name = "进度")
 | 
			
		||||
    @ApiModelProperty("进度")
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,9 @@ public class BgtWageApplication implements Serializable {
 | 
			
		||||
    @ApiModelProperty("项目ID")
 | 
			
		||||
    private Long projectId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("项目名")
 | 
			
		||||
	private Long projectName;
 | 
			
		||||
 | 
			
		||||
    /** 标段ID */
 | 
			
		||||
    @Excel(name = "标段ID")
 | 
			
		||||
    @ApiModelProperty("标段ID")
 | 
			
		||||
@ -54,11 +57,35 @@ public class BgtWageApplication implements Serializable {
 | 
			
		||||
    @ApiModelProperty("任务ID")
 | 
			
		||||
    private Long taskId;
 | 
			
		||||
 | 
			
		||||
    /** 申请人ID */
 | 
			
		||||
	@ApiModelProperty("任务名")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("用工数量")
 | 
			
		||||
	private Integer taskStaffNum;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务地址")
 | 
			
		||||
	private String  taskAddress;
 | 
			
		||||
 | 
			
		||||
	/** 申请人ID */
 | 
			
		||||
    @Excel(name = "申请人ID")
 | 
			
		||||
    @ApiModelProperty("申请人ID")
 | 
			
		||||
    private Long userId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请人姓名")
 | 
			
		||||
	private String username;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("联系电话")
 | 
			
		||||
	private String phone;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行")
 | 
			
		||||
	private String bank;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行卡号")
 | 
			
		||||
	private String cardNo;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请时间")
 | 
			
		||||
	private String applyTime;
 | 
			
		||||
 | 
			
		||||
    /** 申请金额 */
 | 
			
		||||
    @Excel(name = "申请金额")
 | 
			
		||||
    @ApiModelProperty("申请金额")
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,8 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.dto;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.common.core.domain.BaseEntity;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 包工头项目任务进度分页查询对象 bgt_project_task_progress
 | 
			
		||||
@ -14,9 +12,8 @@ import lombok.EqualsAndHashCode;
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
@ApiModel("App包工头项目任务进度分页查询对象")
 | 
			
		||||
public class BgtProjectTaskProgressQueryDTO extends BaseEntity {
 | 
			
		||||
public class BgtProjectTaskProgressQueryDTO {
 | 
			
		||||
 | 
			
		||||
	/** 分页大小 */
 | 
			
		||||
	@ApiModelProperty("分页大小")
 | 
			
		||||
@ -29,4 +26,7 @@ public class BgtProjectTaskProgressQueryDTO extends BaseEntity {
 | 
			
		||||
	@ApiModelProperty("审核状态(1审核中 2已审核 3未审核)")
 | 
			
		||||
	private String auditStatus;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty(value = "上传人Id",hidden = true)
 | 
			
		||||
	private Long uploaderId;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -51,6 +51,6 @@ public class BgtProjectTaskProgressVO implements Serializable {
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty("上传时间")
 | 
			
		||||
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
 | 
			
		||||
    private LocalDateTime createTime;
 | 
			
		||||
    private LocalDateTime uploadTime;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -25,14 +25,15 @@ import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
 | 
			
		||||
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
 | 
			
		||||
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
 | 
			
		||||
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
 | 
			
		||||
import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes;
 | 
			
		||||
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
 | 
			
		||||
import org.springframework.beans.BeanUtils;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 包工头招工Service业务层处理
 | 
			
		||||
@ -88,6 +89,7 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean insert(BgtProjectRecruit bo) {
 | 
			
		||||
        BgtProjectRecruit add = BeanUtil.toBean(bo, BgtProjectRecruit.class);
 | 
			
		||||
		add.setUserId(SecurityUtils.getAppUserId());
 | 
			
		||||
        validEntityBeforeSave(add);
 | 
			
		||||
        return save(add);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -16,9 +16,8 @@ import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
 | 
			
		||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 | 
			
		||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.common.utils.PageUtils;
 | 
			
		||||
import com.ruoyi.fbs.domain.FbsProjectTask;
 | 
			
		||||
import com.ruoyi.common.utils.SecurityUtils;
 | 
			
		||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
 | 
			
		||||
import com.ruoyi.zbf.domain.ZbfProject;
 | 
			
		||||
import com.ruoyi.zbf.service.IZbfProjectService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
@ -114,6 +113,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
 | 
			
		||||
		Page<BgtProjectTaskProgressQueryDTO> queryDTOPage = new Page<>();
 | 
			
		||||
		queryDTOPage.setCurrent(dto.getPageNum());
 | 
			
		||||
		queryDTOPage.setSize(dto.getPageSize());
 | 
			
		||||
		dto.setUploaderId(SecurityUtils.getAppUserId());
 | 
			
		||||
		Page<BgtProjectTaskProgressVO> queryVOPage = baseMapper.appQueryPageList(queryDTOPage, dto);
 | 
			
		||||
		return PageUtils.buildDataInfo(queryVOPage);
 | 
			
		||||
	}
 | 
			
		||||
@ -121,14 +121,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
 | 
			
		||||
	@Override
 | 
			
		||||
	public BgtProjectTaskProgressDetailVO appQueryById(Long id) {
 | 
			
		||||
		BgtProjectTaskProgress progress = getById(id);
 | 
			
		||||
		BgtProjectTaskProgressDetailVO bean = BeanUtil.toBean(progress, BgtProjectTaskProgressDetailVO.class);
 | 
			
		||||
		ZbfProject project = zbfProjectService.getById(progress.getProjectId());
 | 
			
		||||
		bean.setProjectName(project.getProjectName());
 | 
			
		||||
		FbsProjectTask task = fbsProjectTaskService.getById(progress.getTaskId());
 | 
			
		||||
		bean.setTaskName(task.getTaskName());
 | 
			
		||||
		bean.setTaskAddress(task.getTaskAddress());
 | 
			
		||||
		bean.setTaskStaffNum(task.getTaskStaffNum());
 | 
			
		||||
		return bean;
 | 
			
		||||
		return BeanUtil.toBean(progress, BgtProjectTaskProgressDetailVO.class);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
 | 
			
		||||
@ -14,13 +14,10 @@ import com.ruoyi.bgt.domain.vo.BgtWageApplicationVO;
 | 
			
		||||
import com.ruoyi.bgt.mapper.BgtWageApplicationMapper;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtUserService;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtWageApplicationService;
 | 
			
		||||
import com.ruoyi.common.core.domain.entity.BgtUser;
 | 
			
		||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 | 
			
		||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.common.utils.PageUtils;
 | 
			
		||||
import com.ruoyi.fbs.domain.FbsProjectTask;
 | 
			
		||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
 | 
			
		||||
import com.ruoyi.zbf.domain.ZbfProject;
 | 
			
		||||
import com.ruoyi.zbf.service.IZbfProjectService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
@ -124,21 +121,7 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
 | 
			
		||||
	@Override
 | 
			
		||||
	public BgtWageApplicationDetailVO appQueryById(Long id) {
 | 
			
		||||
		BgtWageApplication application = getById(id);
 | 
			
		||||
		BgtWageApplicationDetailVO detailVO = BeanUtil.copyProperties(application, BgtWageApplicationDetailVO.class);
 | 
			
		||||
		//项目
 | 
			
		||||
		ZbfProject project = projectService.getById(application.getProjectId());
 | 
			
		||||
		detailVO.setProjectName(project.getProjectName());
 | 
			
		||||
		//任务
 | 
			
		||||
		FbsProjectTask task = taskService.getById(application.getTaskId());
 | 
			
		||||
		detailVO.setTaskAddress(task.getTaskAddress());
 | 
			
		||||
		detailVO.setTaskName(task.getTaskName());
 | 
			
		||||
		detailVO.setTaskStaffNum(task.getTaskStaffNum());
 | 
			
		||||
		//人员
 | 
			
		||||
		BgtUser bgtUser = bgtUserService.selectUserByUserId(application.getUserId());
 | 
			
		||||
		detailVO.setBank(bgtUser.getBank());
 | 
			
		||||
		detailVO.setCardNo(bgtUser.getCardNo());
 | 
			
		||||
		detailVO.setPhone(bgtUser.getPhone());
 | 
			
		||||
		return detailVO;
 | 
			
		||||
		return BeanUtil.copyProperties(application, BgtWageApplicationDetailVO.class);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
 | 
			
		||||
@ -71,6 +71,9 @@ public class FbsProjectTask implements Serializable {
 | 
			
		||||
    @ApiModelProperty("任务开始时间")
 | 
			
		||||
    private String taskBeginTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务结束时间")
 | 
			
		||||
	private String taskEndTime;
 | 
			
		||||
 | 
			
		||||
    /** 联系人 */
 | 
			
		||||
    @Excel(name = "联系人")
 | 
			
		||||
    @ApiModelProperty("联系人")
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ public class AppTaskDTO {
 | 
			
		||||
	@ApiModelProperty("任务名称")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("承接人")
 | 
			
		||||
	@ApiModelProperty(value = "承接人",hidden = true)
 | 
			
		||||
	private Long userId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务状态(0申请中 1进行中 2已完成)")
 | 
			
		||||
 | 
			
		||||
@ -4,21 +4,38 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
 | 
			
		||||
import com.ruoyi.common.annotation.Excel;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@ApiModel("包工头项目任务列表")
 | 
			
		||||
@ApiModel("包工头项目任务详情")
 | 
			
		||||
public class AppTaskDetailVO {
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("主键ID")
 | 
			
		||||
	private Long id;
 | 
			
		||||
 | 
			
		||||
	/** 项目ID */
 | 
			
		||||
	@Excel(name = "项目ID")
 | 
			
		||||
	@ApiModelProperty("项目ID")
 | 
			
		||||
	private Long projectId;
 | 
			
		||||
 | 
			
		||||
	/** 标段ID */
 | 
			
		||||
	@Excel(name = "标段ID")
 | 
			
		||||
	@ApiModelProperty("标段ID")
 | 
			
		||||
	private Long sectionId;
 | 
			
		||||
 | 
			
		||||
	/** 分包ID */
 | 
			
		||||
	@Excel(name = "分包ID")
 | 
			
		||||
	@ApiModelProperty("分包ID")
 | 
			
		||||
	private Long subId;
 | 
			
		||||
 | 
			
		||||
	/** 任务名称 */
 | 
			
		||||
	@ApiModelProperty("任务名称")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
@ -79,7 +96,7 @@ public class AppTaskDetailVO {
 | 
			
		||||
	private Integer taskReceiveAmount;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务付款金额")
 | 
			
		||||
	private Integer taskPaymentAmount;
 | 
			
		||||
	private BigDecimal taskPaymentAmount;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("收款申请列表")
 | 
			
		||||
	private List<BgtWageApplicationListVO> wageApplicationList;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
package com.ruoyi.fbs.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import com.ruoyi.common.annotation.Excel;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
@ -15,6 +16,21 @@ public class AppTaskVO {
 | 
			
		||||
	@ApiModelProperty("主键ID")
 | 
			
		||||
	private Long id;
 | 
			
		||||
 | 
			
		||||
	/** 项目ID */
 | 
			
		||||
	@Excel(name = "项目ID")
 | 
			
		||||
	@ApiModelProperty("项目ID")
 | 
			
		||||
	private Long projectId;
 | 
			
		||||
 | 
			
		||||
	/** 标段ID */
 | 
			
		||||
	@Excel(name = "标段ID")
 | 
			
		||||
	@ApiModelProperty("标段ID")
 | 
			
		||||
	private Long sectionId;
 | 
			
		||||
 | 
			
		||||
	/** 分包ID */
 | 
			
		||||
	@Excel(name = "分包ID")
 | 
			
		||||
	@ApiModelProperty("分包ID")
 | 
			
		||||
	private Long subId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务名称")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
	/** 任务地址 */
 | 
			
		||||
@ -30,8 +46,14 @@ public class AppTaskVO {
 | 
			
		||||
	@ApiModelProperty("项目名")
 | 
			
		||||
	private String projectName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务开始时间")
 | 
			
		||||
	private String taskBeginTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务结束时间")
 | 
			
		||||
	private String taskEndTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("发布时间")
 | 
			
		||||
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 | 
			
		||||
	@JsonFormat(pattern = "yyyy-MM-dd")
 | 
			
		||||
	private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请数量")
 | 
			
		||||
 | 
			
		||||
@ -63,6 +63,8 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
 | 
			
		||||
	 */
 | 
			
		||||
	TableDataInfo<AppTaskVO> appQueryPageList(AppTaskDTO dto);
 | 
			
		||||
 | 
			
		||||
	List<AppTaskVO> appQueryList();
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 任务详情
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,6 @@ package com.ruoyi.fbs.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
@ -24,6 +23,7 @@ import com.ruoyi.common.enums.ProjectTaskStatus;
 | 
			
		||||
import com.ruoyi.common.enums.RecruitApplyStatus;
 | 
			
		||||
import com.ruoyi.common.util.DataUtil;
 | 
			
		||||
import com.ruoyi.common.utils.PageUtils;
 | 
			
		||||
import com.ruoyi.common.utils.SecurityUtils;
 | 
			
		||||
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
 | 
			
		||||
import com.ruoyi.fbs.domain.FbsProjectTask;
 | 
			
		||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
 | 
			
		||||
@ -33,12 +33,13 @@ import com.ruoyi.fbs.mapper.FbsProjectTaskMapper;
 | 
			
		||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
 | 
			
		||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
 | 
			
		||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
 | 
			
		||||
import com.ruoyi.wgz.service.IWgzPayCalculationService;
 | 
			
		||||
import com.ruoyi.zbf.domain.ZbfProject;
 | 
			
		||||
import com.ruoyi.zbf.service.IZbfProjectService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.context.annotation.Lazy;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
@ -57,7 +58,6 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IFbsProjectTaskApplyService taskApplyService;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	@Lazy
 | 
			
		||||
	private IBgtProjectRecruitService recruitService;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IBgtProjectRecruitApplyService recruitApplyService;
 | 
			
		||||
@ -67,6 +67,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
 | 
			
		||||
	private IBgtWageApplicationService wageApplicationService;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IWgzAttendanceService attendanceService;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IWgzPayCalculationService payCalculationService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public FbsProjectTask queryById(Long id){
 | 
			
		||||
@ -140,14 +142,34 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
 | 
			
		||||
		Page<AppTaskDTO> appTaskDTOPage = new Page<>();
 | 
			
		||||
		appTaskDTOPage.setCurrent(dto.getPageNum());
 | 
			
		||||
		appTaskDTOPage.setSize(dto.getPageSize());
 | 
			
		||||
		if(dto.getMyTask() && ObjectUtil.equals(ProjectTaskStatus.APPLY.getCode(),dto.getStatus())){
 | 
			
		||||
			List<Long> taskIds = taskApplyService.getTaskIdsByUserId(dto.getUserId());
 | 
			
		||||
		List<Long> taskIds = new ArrayList<>();
 | 
			
		||||
		if(ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())){
 | 
			
		||||
			taskIds = taskApplyService.getTaskIdsByUserId(SecurityUtils.getAppUserId());
 | 
			
		||||
			dto.setTaskIds(taskIds);
 | 
			
		||||
		}
 | 
			
		||||
		if(dto.getMyTask() && !ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())){
 | 
			
		||||
			dto.setUserId(SecurityUtils.getAppUserId());
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Page<AppTaskVO> appTaskVOPage = baseMapper.appQueryPageList(appTaskDTOPage, dto);
 | 
			
		||||
		if(dto.getMyTask() && ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())
 | 
			
		||||
			&&CollectionUtil.isEmpty(taskIds)){
 | 
			
		||||
			appTaskVOPage.setRecords(new ArrayList<AppTaskVO>());
 | 
			
		||||
			appTaskVOPage.setTotal(0);
 | 
			
		||||
		}
 | 
			
		||||
		return PageUtils.buildDataInfo(appTaskVOPage);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public List<AppTaskVO> appQueryList() {
 | 
			
		||||
		LambdaQueryWrapper<FbsProjectTask> wrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
		System.out.println(SecurityUtils.getAppUserId());
 | 
			
		||||
		wrapper.eq(FbsProjectTask::getUserId,SecurityUtils.getAppUserId());
 | 
			
		||||
		wrapper.eq(FbsProjectTask::getStatus,ProjectTaskStatus.PROGRESS.getCode());
 | 
			
		||||
		List<FbsProjectTask> fbsProjectTasks = baseMapper.selectList(wrapper);
 | 
			
		||||
		return BeanUtil.copyToList(fbsProjectTasks,AppTaskVO.class);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public AppTaskDetailVO appQueryById(Long id) {
 | 
			
		||||
		FbsProjectTask byId = getById(id);
 | 
			
		||||
@ -155,43 +177,47 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
 | 
			
		||||
		//项目信息
 | 
			
		||||
		ZbfProject project = zbfProjectService.getById(byId.getProjectId());
 | 
			
		||||
		appTaskDetailVO.setProjectName(project.getProjectName());
 | 
			
		||||
		//务工者数量列表
 | 
			
		||||
		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));
 | 
			
		||||
		if(ProjectTaskStatus.PROGRESS.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());
 | 
			
		||||
 | 
			
		||||
		//结算情况
 | 
			
		||||
		//收款申请列表
 | 
			
		||||
		BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
 | 
			
		||||
		wageDTO.setTaskId(id);
 | 
			
		||||
		List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
 | 
			
		||||
		appTaskDetailVO.setWageApplicationList(wageList);
 | 
			
		||||
		//收款金额
 | 
			
		||||
		Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
 | 
			
		||||
			.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
 | 
			
		||||
			.sum();
 | 
			
		||||
		appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
 | 
			
		||||
		//付款金额
 | 
			
		||||
			BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
 | 
			
		||||
			bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
 | 
			
		||||
			bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
 | 
			
		||||
			appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
 | 
			
		||||
			//任务进度
 | 
			
		||||
			appTaskDetailVO.setProgress(progressService.getLastProgress(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);
 | 
			
		||||
			//结算情况
 | 
			
		||||
			//收款申请列表
 | 
			
		||||
			BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
 | 
			
		||||
			wageDTO.setTaskId(id);
 | 
			
		||||
			List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
 | 
			
		||||
			appTaskDetailVO.setWageApplicationList(wageList);
 | 
			
		||||
			//收款金额
 | 
			
		||||
			Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
 | 
			
		||||
				.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
 | 
			
		||||
				.sum();
 | 
			
		||||
			appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
 | 
			
		||||
			//付款金额
 | 
			
		||||
			BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
 | 
			
		||||
			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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
			
		||||
package com.ruoyi.task;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.lang.Console;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
import com.ruoyi.bgt.domain.BgtProjectRecruit;
 | 
			
		||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
 | 
			
		||||
import com.ruoyi.common.enums.RecruitApplyStatus;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 业务定时任务
 | 
			
		||||
 *
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
@Component("businessTask")
 | 
			
		||||
public class BusinessTask
 | 
			
		||||
{
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IBgtProjectRecruitService recruitService;
 | 
			
		||||
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IBgtProjectRecruitApplyService recruitApplyService;
 | 
			
		||||
	/**
 | 
			
		||||
	 * 招工任务招工时间结束自动拒绝未选择的务工者
 | 
			
		||||
	 */
 | 
			
		||||
    public void recruitRefuse()
 | 
			
		||||
    {
 | 
			
		||||
		Console.log("开始招工拒绝任务");
 | 
			
		||||
		List<String> status = Arrays.asList(RecruitApplyStatus.SIGN_UP.getCode(), RecruitApplyStatus.BGT_PASS.getCode());
 | 
			
		||||
		List<BgtProjectRecruit> recruitList = recruitService.list(Wrappers.<BgtProjectRecruit>lambdaQuery()
 | 
			
		||||
			.lt(BgtProjectRecruit::getRecruitEndTime, LocalDate.now()));
 | 
			
		||||
		if(CollectionUtil.isNotEmpty(recruitList)){
 | 
			
		||||
			List<Long> recruitIds = recruitList.stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
 | 
			
		||||
			recruitApplyService.<BgtProjectRecruitApply>lambdaUpdate()
 | 
			
		||||
				.in(BgtProjectRecruitApply::getRecruitId, recruitIds)
 | 
			
		||||
				.in(BgtProjectRecruitApply::getStatus,status)
 | 
			
		||||
				.set(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.BGT_REFUSE.getCode())
 | 
			
		||||
				.update();
 | 
			
		||||
		}
 | 
			
		||||
		Console.log("招工拒绝任务结束,此次拒绝任务个数:"+recruitList.size());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -24,4 +24,8 @@ public class SnowflakeIdUtil {
 | 
			
		||||
	public static long generateId() {
 | 
			
		||||
		return snowflake.nextId();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static void main(String[] args) {
 | 
			
		||||
		System.out.println(generateId());
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -11,6 +11,7 @@ import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
 | 
			
		||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@ -97,4 +98,9 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
 | 
			
		||||
	 */
 | 
			
		||||
	Boolean appUpdate(BgtPayCalculationUpdateDTO dto);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 根据任务和包工头查询已同意的工资
 | 
			
		||||
	 */
 | 
			
		||||
	BigDecimal getPayByTaskAndBgt(Long taskId, Long auditorUserId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -193,4 +194,12 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
		payCalculation.setAuditorTime(LocalDateTime.now());
 | 
			
		||||
		return updateById(payCalculation);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public BigDecimal getPayByTaskAndBgt(Long taskId,Long auditorUserId) {
 | 
			
		||||
 | 
			
		||||
		List<WgzPayCalculation> list = list(Wrappers.<WgzPayCalculation>lambdaQuery().eq(WgzPayCalculation::getTaskId, taskId)
 | 
			
		||||
			.eq(WgzPayCalculation::getAuditorUserId, auditorUserId));
 | 
			
		||||
		return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user