diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitController.java index 7f745dc..97df505 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitController.java @@ -60,8 +60,8 @@ public class AppBgtProjectRecruitController extends BaseController { @Log(title = "App发布招工", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping() - public AjaxResult add(@Validated @RequestBody BgtProjectRecruit bo) { - return toAjax(iBgtProjectRecruitService.insert(bo) ? 1 : 0); + public AjaxResult add(@Validated @RequestBody BgtProjectRecruit bo) { + return AjaxResult.success(iBgtProjectRecruitService.insert(bo)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java index 81cf48c..090bba8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java @@ -1,9 +1,11 @@ package com.ruoyi.web.controller.common; +import cn.hutool.core.lang.Validator; import com.ruoyi.bgt.service.IBgtUserService; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.BgtUser; +import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.BgtLoginBody; import com.ruoyi.common.core.domain.model.LoginUser; @@ -11,15 +13,21 @@ import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.framework.web.service.AppLoginService; import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysDictTypeService; import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.wgz.service.IWgzUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -27,6 +35,8 @@ import java.util.Map; * * @author ruoyi */ +@Api(value = "App登录验证", tags = {"App登录验证"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController public class AppLoginController { @@ -48,6 +58,9 @@ public class AppLoginController @Autowired private IWgzUserService wgzUserService; + @Autowired + private ISysDictTypeService dictTypeService; + /** * 登录方法 * @@ -55,6 +68,7 @@ public class AppLoginController * @return 结果 */ @PostMapping("/app/login") + @ApiOperation("登录") public AjaxResult login(@RequestBody BgtLoginBody loginBody) { Map ajax = new HashMap<>(); @@ -71,6 +85,7 @@ public class AppLoginController * @return 用户信息 */ @GetMapping("/app/getInfo") + @ApiOperation("获取用户信息") public AjaxResult getInfo() { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); @@ -103,6 +118,19 @@ public class AppLoginController return AjaxResult.success("test"); } + @GetMapping(value = "/dict/type") + @ApiOperation("获取字典") + public AjaxResult dictType(String dictType) + { + List data = dictTypeService.selectDictDataByType(dictType); + if (Validator.isNull(data)) + { + data = new ArrayList(); + } + return AjaxResult.success(data); + } + + // /** // * 获取用户信息 // * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskController.java index 5c2d371..647b031 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskController.java @@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.constraints.NotNull; +import java.util.List; /** * 分包商项目任务Controller @@ -25,7 +26,7 @@ import javax.validation.constraints.NotNull; * @author ruoyi * @date 2025-02-17 */ -@Api(value = "App分包商项目任务控制器", tags = {"分包商项目任务管理"}) +@Api(value = "App包工头项目任务控制器", tags = {"App包工头项目任务管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/app/fbs/task") @@ -36,12 +37,18 @@ public class AppFbsProjectTaskController extends BaseController { /** * app项目任务列表 */ - @ApiOperation("App包工头任务列表") + @ApiOperation("App包工头任务列表/我的任务") @GetMapping("/list") public TableDataInfo list(@Validated AppTaskDTO dto) { return iFbsProjectTaskService.appQueryPageList(dto); } + @ApiOperation("App包工头任务列表(不分页)") + @GetMapping("/listAll") + public AjaxResult> list() { + return AjaxResult.success(iFbsProjectTaskService.appQueryList()); + } + @ApiOperation("App获取项目任务详细信息") @GetMapping("/{id}") diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index d1d1186..df13adc 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -203,7 +203,7 @@ swagger: # 是否开启swagger enabled: true # 请求前缀 - pathMapping: /ruoyi + pathMapping: / # 标题 title: '标题:RuoYi-Vue-Plus后台管理系统_接口文档' # 描述 diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectTaskProgress.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectTaskProgress.java index 6bda948..5916cff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectTaskProgress.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectTaskProgress.java @@ -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("进度") diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtWageApplication.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtWageApplication.java index 73a887b..03de658 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtWageApplication.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtWageApplication.java @@ -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("申请金额") diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectTaskProgressQueryDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectTaskProgressQueryDTO.java index c1c4282..a208b95 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectTaskProgressQueryDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectTaskProgressQueryDTO.java @@ -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; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectTaskProgressVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectTaskProgressVO.java index 682d3e3..3f86cfe 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectTaskProgressVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectTaskProgressVO.java @@ -51,6 +51,6 @@ public class BgtProjectTaskProgressVO implements Serializable { @ApiModelProperty("上传时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime createTime; + private LocalDateTime uploadTime; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java index 15a209c..95cc850 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java @@ -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 queryDTOPage = new Page<>(); queryDTOPage.setCurrent(dto.getPageNum()); queryDTOPage.setSize(dto.getPageSize()); + dto.setUploaderId(SecurityUtils.getAppUserId()); Page queryVOPage = baseMapper.appQueryPageList(queryDTOPage, dto); return PageUtils.buildDataInfo(queryVOPage); } @@ -121,14 +121,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl wageApplicationList; diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java index ba620d6..5c176ec 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java @@ -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("申请数量") diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java index 4b67328..a3b80d4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java @@ -63,6 +63,8 @@ public interface IFbsProjectTaskService extends IServicePlus { */ TableDataInfo appQueryPageList(AppTaskDTO dto); + List appQueryList(); + /** * 任务详情 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java index c9685fa..3297def 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java @@ -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 appTaskDTOPage = new Page<>(); appTaskDTOPage.setCurrent(dto.getPageNum()); appTaskDTOPage.setSize(dto.getPageSize()); - if(dto.getMyTask() && ObjectUtil.equals(ProjectTaskStatus.APPLY.getCode(),dto.getStatus())){ - List taskIds = taskApplyService.getTaskIdsByUserId(dto.getUserId()); + List 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 appTaskVOPage = baseMapper.appQueryPageList(appTaskDTOPage, dto); + if(dto.getMyTask() && ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus()) + &&CollectionUtil.isEmpty(taskIds)){ + appTaskVOPage.setRecords(new ArrayList()); + appTaskVOPage.setTotal(0); + } return PageUtils.buildDataInfo(appTaskVOPage); } + @Override + public List appQueryList() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + System.out.println(SecurityUtils.getAppUserId()); + wrapper.eq(FbsProjectTask::getUserId,SecurityUtils.getAppUserId()); + wrapper.eq(FbsProjectTask::getStatus,ProjectTaskStatus.PROGRESS.getCode()); + List 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 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 recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList()); - //结算情况 - //收款申请列表 - BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO(); - wageDTO.setTaskId(id); - List 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 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 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 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; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java b/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java new file mode 100644 index 0000000..27de408 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java @@ -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 status = Arrays.asList(RecruitApplyStatus.SIGN_UP.getCode(), RecruitApplyStatus.BGT_PASS.getCode()); + List recruitList = recruitService.list(Wrappers.lambdaQuery() + .lt(BgtProjectRecruit::getRecruitEndTime, LocalDate.now())); + if(CollectionUtil.isNotEmpty(recruitList)){ + List recruitIds = recruitList.stream().map(BgtProjectRecruit::getId).collect(Collectors.toList()); + recruitApplyService.lambdaUpdate() + .in(BgtProjectRecruitApply::getRecruitId, recruitIds) + .in(BgtProjectRecruitApply::getStatus,status) + .set(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.BGT_REFUSE.getCode()) + .update(); + } + Console.log("招工拒绝任务结束,此次拒绝任务个数:"+recruitList.size()); + } + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/common/SnowflakeIdUtil.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/common/SnowflakeIdUtil.java index 7c45f57..01c8331 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/common/SnowflakeIdUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/common/SnowflakeIdUtil.java @@ -24,4 +24,8 @@ public class SnowflakeIdUtil { public static long generateId() { return snowflake.nextId(); } + + public static void main(String[] args) { + System.out.println(generateId()); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzPayCalculationService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzPayCalculationService.java index bd11cf5..1061054 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzPayCalculationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzPayCalculationService.java @@ -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 list = list(Wrappers.lambdaQuery().eq(WgzPayCalculation::getTaskId, taskId) + .eq(WgzPayCalculation::getAuditorUserId, auditorUserId)); + return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + } } diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectTaskProgressMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectTaskProgressMapper.xml index b19e3a3..0a13aee 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectTaskProgressMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectTaskProgressMapper.xml @@ -33,13 +33,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bptp.progress, bptp.audit_status, bptp.create_time, - fpt.task_staff_num, - fpt.task_name, - zp.project_name + bptp.task_staff_num, + bptp.task_name, + bptp.project_name from bgt_project_task_progress bptp - left join fbs_project_task fpt on bptp.task_id = fpt.id - left join zbf_project zp on bptp.project_id = zp.id - where bptp.create_by = #{dto.createBy} + where bptp.uploader_id = #{dto.createBy} and bptp.audit_status = #{dto.auditStatus} diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml index 9b4fbc5..9feccc8 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml @@ -26,18 +26,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select fpt.id, + fpt.project_id, + fpt.section_id, + fpt.sub_id, fpt.task_name, fpt.task_staff_num, fpt.task_amount, + fpt.task_begin_time, + fpt.task_end_time, zp.project_name, fpt.task_describe, fpt.task_address, @@ -43,13 +48,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from fbs_project_task fpt left join zbf_project zp on fpt.project_id = zp.id - - and fpt.id IN - - #{item} - - + + + + and fpt.id IN + + #{item} + + + + + + and fpt.id not IN + + #{item} + + + + + and fpt.task_name like concat('%', #{dto.taskName}, '%') diff --git a/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml b/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml index 174dbf9..50d3e11 100644 --- a/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from wgz_attendance where date between #{beginDate} and #{endDate} and (missed_in = 0 or missed_out = 0) - and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} )) + and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} ) group by date