分包商

This commit is contained in:
zt
2025-03-27 16:20:41 +08:00
parent 823d935d2d
commit e35e17df3e
35 changed files with 615 additions and 107 deletions

View File

@ -5,7 +5,7 @@ import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.fbs.domain.dto.TaskApplyDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskApplyDTO;
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -36,7 +36,7 @@ public class AppBgtProjectTaskApplyController extends BaseController {
@Log(title = "App申请承接项目任务", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping()
public AjaxResult<Boolean> appTaskApply(@Validated @RequestBody TaskApplyDTO dto) {
public AjaxResult<Boolean> appTaskApply(@Validated @RequestBody BgtTaskApplyDTO dto) {
return AjaxResult.success(iFbsProjectTaskApplyService.appTaskApply(dto));
}
@ -44,7 +44,7 @@ public class AppBgtProjectTaskApplyController extends BaseController {
@ApiOperation("App取消申请项目任务")
@Log(title = "App取消申请项目任务" , businessType = BusinessType.DELETE)
@DeleteMapping()
public AjaxResult<Boolean> cancelApply(TaskApplyDTO dto) {
public AjaxResult<Boolean> cancelApply(BgtTaskApplyDTO dto) {
return AjaxResult.success(iFbsProjectTaskApplyService.cancelApply(dto));
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.web.controller.bgt;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtProjectTaskUseCountVO;
import com.ruoyi.bgt.domain.vo.BgtTaskDetailWageVO;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
@ -14,7 +15,7 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
import com.ruoyi.fbs.domain.vo.*;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import io.swagger.annotations.Api;
@ -52,7 +53,7 @@ public class AppBgtProjectTaskController extends BaseController {
,notes = "1.首页任务列表 任务状态(status) 申请(0) 是否我的任务(myTask) false\n"+
"2.我的任务列表 任务状态(status) 申请(0) 进行(1) 完成(2) 是否我的任务(myTask) true")
@GetMapping("/list")
public TableDataInfo<AppTaskVO> list(@Validated AppTaskDTO dto) {
public TableDataInfo<AppTaskVO> list(@Validated BgtTaskDTO dto) {
return iFbsProjectTaskService.appQueryPageList(dto);
}
@ -86,7 +87,7 @@ public class AppBgtProjectTaskController extends BaseController {
@ApiOperation("项目任务详细信息-结算")
@GetMapping("/wage/{id}")
public AjaxResult<AppTaskDetailWageVO> getInfoWage(@NotNull(message = "主键不能为空")
public AjaxResult<BgtTaskDetailWageVO> getInfoWage(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.wage(id));
}

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.controller.bgt;
import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO;
import com.ruoyi.bgt.domain.dto.BgtUserRealNameAuthenticationDTO;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
@ -42,7 +42,7 @@ public class AppBgtUserController extends BaseController {
@Log(title = "App管理包工头", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public AjaxResult<Boolean> realNameAuthentication(@Validated @RequestBody UserRealNameAuthenticationDTO dto) {
public AjaxResult<Boolean> realNameAuthentication(@Validated @RequestBody BgtUserRealNameAuthenticationDTO dto) {
Boolean b = iBgtUserService.realNameAuthentication(dto);
if(b){
//更新上下文和缓存

View File

@ -1,7 +1,6 @@
package com.ruoyi.web.controller.bgt;
import com.ruoyi.bgt.bo.BgtUserQueryBo;
import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;

View File

@ -0,0 +1,64 @@
package com.ruoyi.web.controller.fbs;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.SubcontractingApplyStatus;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
import com.ruoyi.zbf.service.IZbfProjectSubcontractingApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 总包方项目分包申请Controller
*
* @author ruoyi
* @date 2025-03-26
*/
@Api(value = "App分包商项目分包申请控制器", tags = {"App分包商"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/app/fbs/apply")
public class AppFbsProjectSubcontractingApplyController extends BaseController {
private final IZbfProjectSubcontractingApplyService iZbfProjectSubcontractingApplyService;
/**
* 新增总包方项目分包申请
*/
@ApiOperation("分包商申请项目分包")
@Log(title = "分包商申请项目分包", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping()
public AjaxResult<Boolean> apply(@Validated @RequestBody ZbfProjectSubcontractingApply bo) {
return AjaxResult.success(iZbfProjectSubcontractingApplyService.insert(bo));
}
/**
* 修改总包方项目分包申请
*/
@ApiOperation("分包商取消项目分包申请")
@Log(title = "分包商取消项目分包申请", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping("/{subId}")
public AjaxResult<Boolean> cancel(@NotNull(message = "主键不能为空")
@PathVariable("subId") Long subId) {
LambdaUpdateWrapper<ZbfProjectSubcontractingApply> wrapper = Wrappers.<ZbfProjectSubcontractingApply>lambdaUpdate()
.eq(ZbfProjectSubcontractingApply::getSubId, subId)
.eq(ZbfProjectSubcontractingApply::getFbsUserId, SecurityUtils.getAppUserId())
.set(ZbfProjectSubcontractingApply::getApplyStatus, SubcontractingApplyStatus.CANCEL.getCode());
return AjaxResult.success(iZbfProjectSubcontractingApplyService.update(wrapper));
}
}

View File

@ -25,7 +25,7 @@ import javax.validation.constraints.NotNull;
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/app/fbs/subcontracting")
public class AppProjectSubcontractingController extends BaseController {
public class AppFbsProjectSubcontractingController extends BaseController {
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;

View File

@ -1,22 +1,30 @@
package com.ruoyi.web.controller.fbs;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.BgtUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUpdateDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskListDTO;
import com.ruoyi.fbs.domain.vo.*;
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 分包商项目任务Controller
@ -31,19 +39,72 @@ import org.springframework.web.bind.annotation.RestController;
public class AppFbsProjectTaskController extends BaseController {
private final IFbsProjectTaskService iFbsProjectTaskService;
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
private final IBgtUserService iBgtUserService;
@ApiOperation("分包商发布任务")
@Log(title = "分包商发布任务", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping()
public AjaxResult<Boolean> add(@Validated @RequestBody FbsProjectTask bo) {
bo.setCreateId(SecurityUtils.getAppUserId());
bo.setStatus("1");
// BgtUser byId = bgtUserService.selectUserByUserId(SecurityUtils.getAppUserId());
// if(byId == null || byId.getIdentityCard() == null){
// throw new BaseException("当前用户还未实名认证!");
// }
return AjaxResult.success(iFbsProjectTaskService.insert(bo));
}
@ApiOperation("分包商修改任务")
@Log(title = "分包商修改任务", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping()
public AjaxResult<Boolean> edit(@Validated @RequestBody FbsProjectTaskUpdateDTO dto) {
FbsProjectTask task = iFbsProjectTaskService.getById(dto.getId());
BeanUtil.copyProperties(dto, task);
return AjaxResult.success(iFbsProjectTaskService.update(task));
}
@ApiOperation("分包商查询任务列表")
@GetMapping("/list")
public TableDataInfo<FbsProjectTaskListVO> list(@Validated FbsTaskListDTO dto) {
return iFbsProjectTaskService.fbsPageList(dto);
}
@ApiOperation("分包商查询任务详情-基础信息")
@GetMapping("/base/{id}")
public AjaxResult<AppTaskDetailVO> base(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
}
@ApiOperation("分包商查询任务详情-申请列表")
@GetMapping("/taskApplyList")
public TableDataInfo<FbsProjectTaskApplyListVO> taskApplyList(@Validated FbsTaskApplyListDTO dto) {
return iFbsProjectTaskApplyService.queryPageListByTaskId(dto);
}
@ApiOperation("分包商查询任务详情-包工头信息")
@GetMapping("/bgtInfo/{id}")
public AjaxResult<BgtUser> bgtInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
FbsProjectTask task = iFbsProjectTaskService.getById(id);
if(task!=null&&task.getUserId()!=null){
BgtUser bgtUser = iBgtUserService.selectUserByUserId(task.getUserId());
return AjaxResult.success(bgtUser);
}
return AjaxResult.success(new BgtUser());
}
@ApiOperation("分包商查询任务详情-任务进度")
@GetMapping("/progress/{id}")
public AjaxResult<AppTaskDetailProgressVO> progress(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.progress(id));
}
@ApiOperation("分包商查询任务详情-工资结算审批")
@GetMapping("/wage/{id}")
public AjaxResult<FbsTaskDetailWageVO> fbsWage(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.fbsWage(id));
}
}

View File

@ -1,26 +1,27 @@
package com.ruoyi.zbf.controller;
package com.ruoyi.web.controller.zbf;
import java.util.List;
import java.util.Arrays;
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
import lombok.RequiredArgsConstructor;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingApplyQueryBo;
import com.ruoyi.zbf.service.IZbfProjectSubcontractingApplyService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingApplyQueryBo;
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
import com.ruoyi.zbf.service.IZbfProjectSubcontractingApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 总包方项目分包申请Controller

View File

@ -1,5 +1,8 @@
package com.ruoyi.common.enums;
import java.util.Arrays;
import java.util.List;
/**
* 项目任务状态
*
@ -7,7 +10,7 @@ package com.ruoyi.common.enums;
*/
public enum ProjectTaskStatus
{
APPLY("0", "申请中"),
APPLY("0", "未开始"),
PROGRESS("1", "进行中"),
COMPLETE("2", "已完成"),
;
@ -30,4 +33,9 @@ public enum ProjectTaskStatus
{
return info;
}
//已发布的状态
public static List<String> getRelease(){
return Arrays.asList(APPLY.getCode(), PROGRESS.getCode());
}
}

View File

@ -13,6 +13,7 @@ public enum SubcontractingApplyStatus
APPLY("0", "申请中"),
PASS("1", "已同意"),
REFUSE("2", "已拒绝"),
CANCEL("3", "已取消"),
;
private final String code;

View File

@ -1,4 +1,4 @@
package com.ruoyi.fbs.domain.dto;
package com.ruoyi.bgt.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -6,7 +6,7 @@ import lombok.Data;
@Data
@ApiModel("app申请/取消项目任务")
public class TaskApplyDTO {
public class BgtTaskApplyDTO {
@ApiModelProperty("任务ID")
private Long taskId;

View File

@ -1,4 +1,4 @@
package com.ruoyi.fbs.domain.dto;
package com.ruoyi.bgt.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -8,7 +8,7 @@ import java.util.List;
@Data
@ApiModel("app项目任务列表查询条件")
public class AppTaskDTO {
public class BgtTaskDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */

View File

@ -22,7 +22,7 @@ import java.util.List;
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("包工头实名认证对象")
public class UserRealNameAuthenticationDTO {
public class BgtUserRealNameAuthenticationDTO {
@ApiModelProperty("主键")
@NotNull(message = "主键不能为空")

View File

@ -1,6 +1,5 @@
package com.ruoyi.fbs.domain.vo;
package com.ruoyi.bgt.domain.vo;
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -10,14 +9,14 @@ import java.math.BigDecimal;
@Data
@ApiModel("包工头项目任务详情-结算情况")
public class AppTaskDetailWageVO {
public class BgtTaskDetailWageVO {
@ApiModelProperty("主键ID")
private Long id;
//结算情况
@ApiModelProperty("任务收款金额")
private Integer taskReceiveAmount;
private BigDecimal taskReceiveAmount;
@ApiModelProperty("任务付款金额")
private BigDecimal taskPaymentAmount;

View File

@ -1,7 +1,7 @@
package com.ruoyi.bgt.service;
import com.ruoyi.bgt.bo.BgtUserQueryBo;
import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO;
import com.ruoyi.bgt.domain.dto.BgtUserRealNameAuthenticationDTO;
import com.ruoyi.common.core.domain.entity.BgtUser;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
@ -65,7 +65,7 @@ public interface IBgtUserService extends IServicePlus<BgtUser> {
/**
* 实名认证
*/
Boolean realNameAuthentication(@Validated @RequestBody UserRealNameAuthenticationDTO dto);
Boolean realNameAuthentication(@Validated @RequestBody BgtUserRealNameAuthenticationDTO dto);
/**

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.bo.BgtUserQueryBo;
import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO;
import com.ruoyi.bgt.domain.dto.BgtUserRealNameAuthenticationDTO;
import com.ruoyi.bgt.mapper.BgtUserMapper;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.constant.Constants;
@ -126,7 +126,7 @@ public class BgtUserServiceImpl extends ServicePlusImpl<BgtUserMapper, BgtUser>
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean realNameAuthentication(UserRealNameAuthenticationDTO dto) {
public Boolean realNameAuthentication(BgtUserRealNameAuthenticationDTO dto) {
BgtUser bgtUser = baseMapper.selectOne(new LambdaQueryWrapper<BgtUser>().eq(BgtUser::getUserId, dto.getUserId()));
if(bgtUser == null){
throw new BaseException("用户不存在");

View File

@ -48,6 +48,9 @@ public class FbsProjectTask implements Serializable {
@ApiModelProperty("分包ID")
private Long subId;
@ApiModelProperty("分包主题")
private String subName;
/** 任务名称 */
@Excel(name = "任务名称")
@ApiModelProperty("任务名称")

View File

@ -41,6 +41,9 @@ public class FbsProjectTaskApply implements Serializable {
@ApiModelProperty("包工头用户ID")
private Long userId;
@ApiModelProperty("申请状态0=申请中,1=已同意,2=已拒绝,3=已取消)")
private String applyStatus;
/** 删除标志0代表存在 2代表删除 */
@Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除")
@ApiModelProperty("删除标志0代表存在 2代表删除")

View File

@ -0,0 +1,56 @@
package com.ruoyi.fbs.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.Pattern;
/**
* 分包商项目任务对象 fbs_project_task
*
* @author ruoyi
* @date 2025-02-17
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("分包商项目任务视图对象")
public class FbsProjectTaskUpdateDTO {
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("用工数量")
private Integer taskStaffNum;
@ApiModelProperty("任务开始时间")
private String taskBeginTime;
@ApiModelProperty("任务结束时间")
private String taskEndTime;
@ApiModelProperty("联系人")
private String taskContactPerson;
@ApiModelProperty("联系电话")
@Pattern(regexp = "^[0-9]+$",message = "联系电话只能是数字")
private String taskContactPhone;
@ApiModelProperty("任务描述")
private String taskDescribe;
@ApiModelProperty("任务图片")
private String taskImg;
@ApiModelProperty("任务附件")
private String taskAnnex;
@ApiModelProperty("资质要求")
private String qualification;
}

View File

@ -0,0 +1,24 @@
package com.ruoyi.fbs.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("分包商任务申请列表查询条件")
public class FbsTaskApplyListDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("任务id")
@NotNull(message = "任务id不能为空")
private Long taskId;
}

View File

@ -0,0 +1,19 @@
package com.ruoyi.fbs.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("分包商任务列表查询条件")
public class FbsTaskListDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("任务类型0已发布 1已完成")
private Integer type;
}

View File

@ -1,10 +1,9 @@
package com.ruoyi.fbs.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
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;
@ -21,18 +20,12 @@ 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;

View File

@ -0,0 +1,46 @@
package com.ruoyi.fbs.domain.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 分包商项目任务申请对象 fbs_project_task_apply
*
* @author ruoyi
* @date 2025-02-17
*/
@Data
@ApiModel("分包商任务申请列表视图对象")
public class FbsProjectTaskApplyListVO {
/** 主键ID */
@ApiModelProperty("主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty("任务ID")
private Long taskId;
@ApiModelProperty("包工头用户ID")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long userId;
@ApiModelProperty("姓名")
private String username;
@ApiModelProperty("联系电话")
private String phone;
@ApiModelProperty("头像")
private String avatarName;
@ApiModelProperty("申请状态0=申请中,1=已同意,2=已拒绝,3=已取消)")
private String applyStatus;
}

View File

@ -0,0 +1,94 @@
package com.ruoyi.fbs.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 分包商项目任务对象 fbs_project_task
*
* @author ruoyi
* @date 2025-02-17
*/
@Data
@NoArgsConstructor
@ApiModel("分包商任务列表视图对象")
public class FbsProjectTaskListVO {
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("项目ID")
private Long projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("标段ID")
private Long sectionId;
@ApiModelProperty("分包ID")
private Long subId;
@ApiModelProperty("分包主题")
private String subName;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("任务金额")
private BigDecimal taskAmount;
@ApiModelProperty("用工数量")
private Integer taskStaffNum;
@ApiModelProperty("任务开始时间")
private String taskBeginTime;
@ApiModelProperty("任务结束时间")
private String taskEndTime;
@ApiModelProperty("联系人")
private String taskContactPerson;
@ApiModelProperty("联系电话")
private String taskContactPhone;
@ApiModelProperty("任务描述")
private String taskDescribe;
@ApiModelProperty("任务图片")
private String taskImg;
@ApiModelProperty("任务附件")
private String taskAnnex;
@ApiModelProperty("资质要求")
private String qualification;
@ApiModelProperty("包工头用户ID")
private Long userId;
@ApiModelProperty("任务状态0未开始 1进行中 2已完成")
private String status;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("申请列表")
private List<FbsProjectTaskApplyListVO> applyList;
}

View File

@ -0,0 +1,32 @@
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 FbsTaskDetailWageVO {
@ApiModelProperty("主键ID")
private Long id;
//结算情况
@ApiModelProperty("任务结算金额")
private BigDecimal taskAuditAmount;
@ApiModelProperty("任务申请金额")
private BigDecimal taskApplyAmount;
@ApiModelProperty("最新一条收款申请")
private BgtWageApplicationListVO wageApplication;
@ApiModelProperty("任务金额")
private BigDecimal taskAmount;
}

View File

@ -1,9 +1,13 @@
package com.ruoyi.fbs.mapper;
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.vo.FbsProjectTaskApplyListVO;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
/**
* 分包商项目任务申请Mapper接口
@ -15,4 +19,5 @@ import org.apache.ibatis.annotations.CacheNamespace;
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
public interface FbsProjectTaskApplyMapper extends BaseMapperPlus<FbsProjectTaskApply> {
Page<FbsProjectTaskApplyListVO> queryPageListByTaskId(@Param("page") Page<FbsTaskApplyListDTO> page, @Param("dto") FbsTaskApplyListDTO dto);
}

View File

@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
import com.ruoyi.fbs.domain.vo.AppTaskVO;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
@ -19,6 +19,6 @@ import org.apache.ibatis.annotations.Param;
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
public interface FbsProjectTaskMapper extends BaseMapperPlus<FbsProjectTask> {
Page<AppTaskVO> appQueryPageList(@Param("page") Page<AppTaskDTO> page, @Param("dto") AppTaskDTO dto);
Page<AppTaskVO> appQueryPageList(@Param("page") Page<BgtTaskDTO> page, @Param("dto") BgtTaskDTO dto);
}

View File

@ -1,10 +1,12 @@
package com.ruoyi.fbs.service;
import com.ruoyi.bgt.domain.dto.BgtTaskApplyDTO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.fbs.bo.FbsProjectTaskApplyQueryBo;
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
import com.ruoyi.fbs.domain.dto.TaskApplyDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.vo.FbsProjectTaskApplyListVO;
import java.util.Collection;
import java.util.List;
@ -57,7 +59,7 @@ public interface IFbsProjectTaskApplyService extends IServicePlus<FbsProjectTask
/**
* 申请承接
*/
Boolean appTaskApply(TaskApplyDTO dto);
Boolean appTaskApply(BgtTaskApplyDTO dto);
/**
* 获取包工头申请的所有任务ID
@ -67,5 +69,10 @@ public interface IFbsProjectTaskApplyService extends IServicePlus<FbsProjectTask
/**
* 取消申请
*/
Boolean cancelApply(TaskApplyDTO dto);
Boolean cancelApply(BgtTaskApplyDTO dto);
/**
* 查询任务下的包工头申请列表
*/
TableDataInfo<FbsProjectTaskApplyListVO> queryPageListByTaskId(FbsTaskApplyListDTO dto);
}

View File

@ -2,13 +2,15 @@ package com.ruoyi.fbs.service;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtProjectTaskUseCountVO;
import com.ruoyi.bgt.domain.vo.BgtTaskDetailWageVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
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.dto.FbsTaskListDTO;
import com.ruoyi.fbs.domain.vo.*;
import java.util.Collection;
@ -63,7 +65,7 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
/**
* 包工头查询列表
*/
TableDataInfo<AppTaskVO> appQueryPageList(AppTaskDTO dto);
TableDataInfo<AppTaskVO> appQueryPageList(BgtTaskDTO dto);
/**
* App包工头任务列表不分页
@ -88,7 +90,7 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
/**
* 任务详情-结算
*/
AppTaskDetailWageVO wage(Long id);
BgtTaskDetailWageVO wage(Long id);
/**
* 任务详情-务工人员
@ -105,8 +107,16 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
*/
BgtProjectTaskUseCountVO taskUserCount(Long id);
/**
* 查询所有在进行中的任务
*/
List<FbsProjectTask> findOngoingTask();
/**
* 分包商查询任务列表
*/
TableDataInfo<FbsProjectTaskListVO> fbsPageList(FbsTaskListDTO dto);
/**
* 任务详情-结算
*/
FbsTaskDetailWageVO fbsWage(Long id);
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.ruoyi.bgt.domain.BgtMessage;
import com.ruoyi.bgt.domain.dto.BgtTaskApplyDTO;
import com.ruoyi.bgt.service.IBgtMessageService;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
@ -16,7 +17,8 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.bo.FbsProjectTaskApplyQueryBo;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
import com.ruoyi.fbs.domain.dto.TaskApplyDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.vo.FbsProjectTaskApplyListVO;
import com.ruoyi.fbs.mapper.FbsProjectTaskApplyMapper;
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
@ -111,7 +113,7 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean appTaskApply(TaskApplyDTO dto) {
public Boolean appTaskApply(BgtTaskApplyDTO dto) {
FbsProjectTaskApply fbsProjectTaskApply = BeanUtil.copyProperties(dto, FbsProjectTaskApply.class);
validEntityBeforeSave(fbsProjectTaskApply);
@ -141,7 +143,7 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
}
@Override
public Boolean cancelApply(TaskApplyDTO dto) {
public Boolean cancelApply(BgtTaskApplyDTO dto) {
int delete = baseMapper.delete(Wrappers.<FbsProjectTaskApply>lambdaQuery().eq(FbsProjectTaskApply::getTaskId, dto.getTaskId())
.eq(FbsProjectTaskApply::getUserId, dto.getUserId()));
//发消息
@ -162,4 +164,13 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
bgtMessageService.sendAMessage(bgtMessage);
return delete>0;
}
@Override
public TableDataInfo<FbsProjectTaskApplyListVO> queryPageListByTaskId(FbsTaskApplyListDTO dto) {
Page<FbsTaskApplyListDTO> page = new Page<>();
page.setCurrent(dto.getPageNum());
page.setSize(dto.getPageSize());
Page<FbsProjectTaskApplyListVO> voPage = baseMapper.queryPageListByTaskId(page, dto);
return PageUtils.buildDataInfo(voPage);
}
}

View File

@ -7,12 +7,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.BgtWageApplication;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
import com.ruoyi.bgt.domain.dto.BgtWageApplicationQueryDTO;
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtProjectTaskUseCountVO;
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
import com.ruoyi.bgt.domain.vo.*;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
import com.ruoyi.bgt.service.IBgtWageApplicationService;
@ -27,9 +26,11 @@ 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;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskListDTO;
import com.ruoyi.fbs.domain.vo.*;
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;
@ -41,6 +42,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -56,7 +58,6 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
@Autowired
private IZbfProjectService zbfProjectService;
@Autowired
private IBgtProjectRecruitApplyService recruitApplyService;
@Autowired
@ -67,6 +68,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
private IWgzAttendanceService attendanceService;
@Autowired
private IWgzPayCalculationService payCalculationService;
@Autowired
private IFbsProjectTaskApplyService fbsProjectTaskApplyService;
@Override
public FbsProjectTask queryById(Long id){
@ -136,8 +139,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
}
@Override
public TableDataInfo<AppTaskVO> appQueryPageList(AppTaskDTO dto) {
Page<AppTaskDTO> appTaskDTOPage = new Page<>();
public TableDataInfo<AppTaskVO> appQueryPageList(BgtTaskDTO dto) {
Page<BgtTaskDTO> appTaskDTOPage = new Page<>();
appTaskDTOPage.setCurrent(dto.getPageNum());
appTaskDTOPage.setSize(dto.getPageSize());
dto.setUserId(SecurityUtils.getAppUserId());
@ -151,6 +154,7 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
System.out.println(SecurityUtils.getAppUserId());
wrapper.eq(FbsProjectTask::getUserId,SecurityUtils.getAppUserId());
wrapper.eq(FbsProjectTask::getStatus,ProjectTaskStatus.PROGRESS.getCode());
wrapper.orderByDesc(FbsProjectTask::getId);
List<FbsProjectTask> fbsProjectTasks = baseMapper.selectList(wrapper);
return BeanUtil.copyToList(fbsProjectTasks,AppTaskVO.class);
}
@ -170,20 +174,20 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
appTaskDetailVO.setProgress(lastProgress);
BigDecimal bd = new BigDecimal(lastProgress).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
appTaskDetailVO.setProgressDouble(bd.doubleValue());
//结算情况
//收款申请列表
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()))
.map(BgtWageApplicationListVO::getApplicantAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add).intValue();
appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
//付款金额
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
// //结算情况
// //收款申请列表
// 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()))
// .map(BgtWageApplicationListVO::getApplicantAmount)
// .reduce(BigDecimal.ZERO, BigDecimal::add).intValue();
// appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
// //付款金额
// BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
// appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
}
return appTaskDetailVO;
@ -234,9 +238,9 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
}
@Override
public AppTaskDetailWageVO wage(Long id) {
public BgtTaskDetailWageVO wage(Long id) {
FbsProjectTask task = getById(id);
AppTaskDetailWageVO appTaskDetailVO = new AppTaskDetailWageVO();
BgtTaskDetailWageVO appTaskDetailVO = new BgtTaskDetailWageVO();
appTaskDetailVO.setId(id);
appTaskDetailVO.setTaskAmount(task.getTaskAmount());
//结算情况
@ -246,10 +250,10 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
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()))
int taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
.map(BgtWageApplicationListVO::getApplicantAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add).intValue();
appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
appTaskDetailVO.setTaskReceiveAmount(new BigDecimal(taskReceiveAmount));
//付款金额
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(id, SecurityUtils.getAppUserId());
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
@ -298,4 +302,58 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
LambdaQueryWrapper<FbsProjectTask> wra = new LambdaQueryWrapper<FbsProjectTask>().eq(FbsProjectTask::getStatus, "1");
return baseMapper.selectList(wra);
}
@Override
public TableDataInfo<FbsProjectTaskListVO> fbsPageList(FbsTaskListDTO dto) {
LambdaQueryWrapper<FbsProjectTask> wrapper = new LambdaQueryWrapper<>();
wrapper.in(dto.getType()==0,FbsProjectTask::getStatus,ProjectTaskStatus.getRelease());
wrapper.eq(dto.getType()==1,FbsProjectTask::getStatus,ProjectTaskStatus.COMPLETE.getCode());
wrapper.orderByDesc(FbsProjectTask::getId);
Page<FbsProjectTask> page = page(PageUtils.buildPage(), wrapper);
List<FbsProjectTaskListVO> fbsProjectTaskListVOS = new ArrayList<>();
for (FbsProjectTask task : page.getRecords()){
FbsProjectTaskListVO fbsProjectTaskListVO = BeanUtil.copyProperties(task, FbsProjectTaskListVO.class);
//查询项目名称
ZbfProject project = zbfProjectService.getById(task.getProjectId());
fbsProjectTaskListVO.setProjectName(project.getProjectName());
//申请列表
FbsTaskApplyListDTO fbsTaskApplyListDTO = new FbsTaskApplyListDTO();
fbsTaskApplyListDTO.setPageNum(1);
fbsTaskApplyListDTO.setPageSize(3);
fbsTaskApplyListDTO.setTaskId(task.getId());
TableDataInfo<FbsProjectTaskApplyListVO> applyList = fbsProjectTaskApplyService.queryPageListByTaskId(fbsTaskApplyListDTO);
fbsProjectTaskListVO.setApplyList(applyList.getRows());
fbsProjectTaskListVOS.add(fbsProjectTaskListVO);
}
Page<FbsProjectTaskListVO> fbsProjectTaskListVOPage = new Page<>();
fbsProjectTaskListVOPage.setTotal(page.getTotal());
fbsProjectTaskListVOPage.setRecords(fbsProjectTaskListVOS);
return PageUtils.buildDataInfo(fbsProjectTaskListVOPage);
}
@Override
public FbsTaskDetailWageVO fbsWage(Long id) {
FbsTaskDetailWageVO fbsTaskDetailWageVO = new FbsTaskDetailWageVO();
List<BgtWageApplication> wageList = wageApplicationService.list(Wrappers.<BgtWageApplication>lambdaQuery()
.eq(BgtWageApplication::getTaskId, id).orderByDesc(BgtWageApplication::getId));
BigDecimal taskAuditAmount = BigDecimal.ZERO;
BigDecimal taskApplyAmount= BigDecimal.ZERO;
for (BgtWageApplication wage : wageList) {
taskApplyAmount = taskApplyAmount.add(wage.getApplicantAmount());
if(AuditStatus.PASS.getCode().equals(wage.getAuditStatus())){
taskAuditAmount = taskAuditAmount.add(wage.getApplicantAmount());
}
if(AuditStatus.AUDIT.getCode().equals(wage.getAuditStatus()) && fbsTaskDetailWageVO.getWageApplication() == null){
BgtWageApplicationListVO bgtWageApplicationListVO = BeanUtil.copyProperties(wage, BgtWageApplicationListVO.class);
fbsTaskDetailWageVO.setWageApplication(bgtWageApplicationListVO);
}
}
fbsTaskDetailWageVO.setTaskAuditAmount(taskAuditAmount);
fbsTaskDetailWageVO.setTaskApplyAmount(taskApplyAmount);
return fbsTaskDetailWageVO;
}
}

View File

@ -55,8 +55,8 @@ public class ZbfProjectSubcontractingApply implements Serializable {
private Long fbsUserId;
/** 申请状态0申请中 1已同意 2已拒绝 */
@Excel(name = "申请状态" , readConverterExp = "0=申请中,1=已同意,2=已拒绝")
@ApiModelProperty("申请状态0申请中 1已同意 2已拒绝")
@Excel(name = "申请状态" , readConverterExp = "0=申请中,1=已同意,2=已拒绝,3=已取消")
@ApiModelProperty("申请状态0=申请中,1=已同意,2=已拒绝,3=已取消")
private String applyStatus;
/** 删除标志0代表存在 2代表删除 */

View File

@ -17,4 +17,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<select id="queryPageListByTaskId" resultType="com.ruoyi.fbs.domain.vo.FbsProjectTaskApplyListVO">
select fpta.id,
fpta.task_id,
fpta.user_id,
fpta.apply_status,
bu.username,
bu.phone,
bu.avatar_name
from fbs_project_task_apply fpta
left join bgt_user bu on fpta.user_id = bu.user_id
where fpta.task_id = #{dto.taskId}
order by fpta.id desc
</select>
</mapper>

View File

@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE EXISTS (
SELECT 1
FROM zbf_project_subcontracting_apply zpsa
WHERE zpsa.fbs_user_id = #{dto.fbsUserId} and zpsa.apply_status != '1'
WHERE zpsa.fbs_user_id = #{dto.fbsUserId} and zpsa.apply_status in('0','2')
AND zp.id = zpsa.project_id
) order by zp.id desc
</select>

View File

@ -193,7 +193,7 @@
// 获取 URL 中的 userId 参数
const urlParams = new URLSearchParams(window.location.search);
this.userId = urlParams.get("userId");
// console.log("userId", this.userId);
console.log("userId", this.userId);
this.getRecruitList();
},
@ -227,7 +227,7 @@
this.loading = true;
try {
const response = await this.ajaxRequest({
url: `/ruoyi/app/bgt/apply/htmlList?recruitId=${val}&isUpload=${this.isFilter}`,
url: `/ruoyi/app/bgt/apply/htmlList?recruitId=${val}&isNotUpload=${this.isFilter}`,
method: "GET",
});
this.currentList = response.data;
@ -247,7 +247,7 @@
this.loading = true;
try {
const response = await this.ajaxRequest({
url: `/ruoyi/app/bgt/apply/htmlList?recruitId=${this.selectedTheme}&isUpload=${this.isFilter}`,
url: `/ruoyi/app/bgt/apply/htmlList?recruitId=${this.selectedTheme}&isNotUpload=${this.isFilter}`,
method: "GET",
});
this.currentList = response.data;
@ -369,7 +369,6 @@
userIds(newVal) {
const total = this.currentList.length;
this.checkAll = newVal.length === total && total > 0;
this.isFilter = newVal.length === total && total > 0;
this.isIndeterminate = newVal.length > 0 && newVal.length < total;
},
currentList(newVal) {