优化
This commit is contained in:
@ -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("任务付款金额")
|
||||
private BigDecimal taskPaymentAmount;
|
||||
|
||||
@ApiModelProperty("收款申请列表")
|
||||
private List<BgtWageApplicationListVO> wageApplicationList;
|
||||
@ApiModelProperty("最新一条收款申请")
|
||||
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.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
|
||||
import com.ruoyi.fbs.domain.vo.AppTaskVO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -69,4 +68,24 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
|
||||
* 任务详情
|
||||
*/
|
||||
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.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
|
||||
import com.ruoyi.fbs.domain.vo.AppTaskVO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
import com.ruoyi.fbs.mapper.FbsProjectTaskMapper;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
@ -180,15 +179,6 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
|
||||
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());
|
||||
|
||||
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
||||
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
||||
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
||||
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
||||
//任务进度
|
||||
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
||||
|
||||
@ -197,7 +187,7 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
||||
wageDTO.setTaskId(id);
|
||||
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()))
|
||||
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
||||
@ -206,20 +196,72 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
//付款金额
|
||||
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;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user