总包方

This commit is contained in:
zt
2025-04-11 11:39:38 +08:00
parent f1814f781c
commit b52be6eeab
25 changed files with 410 additions and 71 deletions

View File

@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.fbs.domain.vo.FbsProjectSubcontractingDetailVO;
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
import com.ruoyi.zbf.service.IZbfProjectSectionService;
import com.ruoyi.zbf.service.IZbfProjectService;
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -32,6 +33,7 @@ public class AppFbsProjectSubcontractingController extends BaseController {
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;
private final IZbfProjectSectionService zbfProjectSectionService;
private final IZbfProjectService zbfProjectService;
@ApiOperation("分包商查询项目分包详细信息")
@GetMapping("/{id}")
@ -40,6 +42,7 @@ public class AppFbsProjectSubcontractingController extends BaseController {
ZbfProjectSubcontracting zbfProjectSubcontracting = iZbfProjectSubcontractingService.queryById(id);
FbsProjectSubcontractingDetailVO vo = BeanUtil.copyProperties(zbfProjectSubcontracting, FbsProjectSubcontractingDetailVO.class);
vo.setSectionName(zbfProjectSectionService.getById(vo.getSectionId()).getSectionName());
vo.setProjectImg(zbfProjectService.getById(vo.getProjectId()).getProjectImg());
return AjaxResult.success(vo);
}

View File

@ -1,15 +1,24 @@
package com.ruoyi.web.controller.fbs;
import cn.hutool.core.bean.BeanUtil;
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.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
import com.ruoyi.fbs.domain.dto.FbsMessageTaskApplyListDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.vo.AppTaskDetailVO;
import com.ruoyi.fbs.domain.vo.FbsProjectTaskApplyListVO;
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.*;
import javax.validation.constraints.NotNull;
@ -27,6 +36,7 @@ import javax.validation.constraints.NotNull;
public class AppFbsProjectTaskApplyController extends BaseController {
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
private final IFbsProjectTaskService iFbsProjectTaskService;
@ApiOperation("分包商选择包工头")
@ -38,5 +48,22 @@ public class AppFbsProjectTaskApplyController extends BaseController {
return AjaxResult.success(iFbsProjectTaskApplyService.choose(id));
}
@ApiOperation("分包商查询消息任务详情-基础信息")
@GetMapping("/base/{applyId}")
public AjaxResult<AppTaskDetailVO> base(@NotNull(message = "主键不能为空")
@PathVariable("applyId") Long applyId) {
FbsProjectTaskApply byId = iFbsProjectTaskApplyService.getById(applyId);
return AjaxResult.success(iFbsProjectTaskService.appQueryById(byId.getTaskId()));
}
@ApiOperation("分包商查询消息任务详情-申请列表")
@GetMapping("/taskApplyList")
public TableDataInfo<FbsProjectTaskApplyListVO> taskApplyList(@Validated FbsMessageTaskApplyListDTO dto) {
FbsTaskApplyListDTO fbsTaskApplyListDTO = BeanUtil.copyProperties(dto, FbsTaskApplyListDTO.class);
FbsProjectTaskApply byId = iFbsProjectTaskApplyService.getById(dto.getTaskApplyId());
fbsTaskApplyListDTO.setTaskId(byId.getTaskId());
return iFbsProjectTaskApplyService.queryPageListByTaskId(fbsTaskApplyListDTO);
}
}

View File

@ -2,7 +2,6 @@ package com.ruoyi.web.controller.fbs;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtUserService;
@ -18,10 +17,7 @@ import com.ruoyi.common.service.ICompanyService;
import com.ruoyi.common.util.DataUtil;
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.dto.FbsTaskSwitchListDTO;
import com.ruoyi.fbs.domain.dto.*;
import com.ruoyi.fbs.domain.vo.*;
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
@ -138,7 +134,7 @@ public class AppFbsProjectTaskController extends BaseController {
@ApiOperation("分包商查询任务详情-务工人员数量")
@GetMapping("/wgzList")
public TableDataInfo<BgtProjectRecruitApplyVO> fbsWgzList(@Validated BgtProjectTaskUserDTO dto) {
public TableDataInfo<BgtProjectRecruitApplyVO> fbsWgzList(@Validated FbsProjectTaskUserDTO dto) {
return iBgtProjectRecruitApplyService.fbsTaskUserList(dto);
}

View File

@ -2,7 +2,6 @@ package com.ruoyi.web.controller.zbf;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtUserService;
@ -14,10 +13,8 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.service.ICompanyService;
import com.ruoyi.common.util.DataUtil;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskSwitchListDTO;
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUserDTO;
import com.ruoyi.fbs.domain.vo.*;
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import com.ruoyi.fbs.service.IFbsUserService;
import com.ruoyi.wgz.domain.WgzUser;
@ -25,6 +22,10 @@ import com.ruoyi.wgz.service.IWgzUserService;
import com.ruoyi.zbf.domain.ZbfProject;
import com.ruoyi.zbf.domain.ZbfProjectSection;
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskDTO;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskUserDTO;
import com.ruoyi.zbf.domain.dto.ZbfTaskAllDTO;
import com.ruoyi.zbf.domain.vo.ZbfProgressVO;
import com.ruoyi.zbf.service.IZbfProjectSectionService;
import com.ruoyi.zbf.service.IZbfProjectService;
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
@ -53,7 +54,6 @@ import javax.validation.constraints.NotNull;
public class AppZbfProjectTaskController extends BaseController {
private final IFbsProjectTaskService iFbsProjectTaskService;
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
private final IBgtUserService iBgtUserService;
private final IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService;
private final IWgzUserService iWgzUserService;
@ -63,24 +63,18 @@ public class AppZbfProjectTaskController extends BaseController {
private final IFbsUserService iFbsUserService;
private final ICompanyService iCompanyService;
@ApiOperation("分包商查询任务详情-基础信息")
@GetMapping("/base/{id}")
@ApiOperation("总包方查询任务详情-基础信息")
@GetMapping("/base/{taskId}")
public AjaxResult<AppTaskDetailVO> base(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
@PathVariable("taskId") Long taskId) {
return AjaxResult.success(iFbsProjectTaskService.appQueryById(taskId));
}
@ApiOperation("分包商查询任务详情-申请列表")
@GetMapping("/taskApplyList")
public TableDataInfo<FbsProjectTaskApplyListVO> taskApplyList(@Validated FbsTaskApplyListDTO dto) {
return iFbsProjectTaskApplyService.queryPageListByTaskId(dto);
}
@ApiOperation("分包商查询任务详情-包工头信息")
@GetMapping("/bgtInfo/{id}")
@ApiOperation("总包方查询任务详情-包工头信息")
@GetMapping("/bgtInfo/{taskId}")
public AjaxResult<BgtUser> bgtInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
FbsProjectTask task = iFbsProjectTaskService.getById(id);
@PathVariable("taskId") Long taskId) {
FbsProjectTask task = iFbsProjectTaskService.getById(taskId);
if(task!=null&&task.getUserId()!=null){
BgtUser bgtUser = iBgtUserService.selectUserByUserId(task.getUserId());
return AjaxResult.success(bgtUser);
@ -88,34 +82,52 @@ public class AppZbfProjectTaskController extends BaseController {
return AjaxResult.success(new BgtUser());
}
@ApiOperation("分包商查询任务详情-任务进度")
@GetMapping("/progress/{id}")
@ApiOperation("总包方查询任务详情-单个-任务进度")
@GetMapping("/progress/{taskId}")
public AjaxResult<AppTaskDetailProgressVO> progress(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.progress(id));
@PathVariable("taskId") Long taskId) {
return AjaxResult.success(iFbsProjectTaskService.progress(taskId));
}
@ApiOperation("分包商查询任务详情-工资结算审批")
@GetMapping("/wage/{id}")
public AjaxResult<FbsTaskDetailWageVO> fbsWage(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return AjaxResult.success(iFbsProjectTaskService.fbsWage(id));
@ApiOperation("总包方查询任务详情-单个-工资结算审批")
@GetMapping("/wage/{taskId}")
public AjaxResult<FbsTaskDetailWageVO> taskWage(@NotNull(message = "主键不能为空")
@PathVariable("taskId") Long taskId) {
return AjaxResult.success(iFbsProjectTaskService.fbsWage(taskId));
}
@ApiOperation("分包商查询任务详情-务工人员数量")
@ApiOperation("总包方查询任务详情-单个-务工人员数量")
@GetMapping("/wgzList")
public TableDataInfo<BgtProjectRecruitApplyVO> fbsWgzList(@Validated BgtProjectTaskUserDTO dto) {
public TableDataInfo<BgtProjectRecruitApplyVO> taskWgzList(@Validated FbsProjectTaskUserDTO dto) {
return iBgtProjectRecruitApplyService.fbsTaskUserList(dto);
}
@ApiOperation("分包商查询任务详情-任务切换列表")
@GetMapping("/switchList")
public TableDataInfo<FbsProjectTaskListVO> switchList(FbsTaskSwitchListDTO dto) {
return iFbsProjectTaskService.switchList(dto);
@ApiOperation("总包方查询任务详情-总和-任务进度")
@GetMapping("/progressAll")
public AjaxResult<ZbfProgressVO> progressAll(@Validated ZbfTaskAllDTO dto) {
return AjaxResult.success(iFbsProjectTaskService.progressAll(dto));
}
@ApiOperation("分包商查询包工头信息(点头像)")
@ApiOperation("总包方查询任务详情-总和-工资结算审批")
@GetMapping("/wageAll")
public AjaxResult<FbsTaskDetailWageVO> taskWageAll(@Validated ZbfTaskAllDTO dto) {
return AjaxResult.success(iFbsProjectTaskService.taskWageAll(dto));
}
@ApiOperation("总包方查询任务详情-总和-务工人员数量")
@GetMapping("/wgzListAll")
public TableDataInfo<BgtProjectRecruitApplyVO> taskWgzListAll(@Validated ZbfProjectTaskUserDTO dto) {
return iBgtProjectRecruitApplyService.taskWgzListAll(dto);
}
// @ApiOperation("分包商查询任务详情-任务切换列表")
// @GetMapping("/switchList")
// public TableDataInfo<FbsProjectTaskListVO> switchList(FbsTaskSwitchListDTO dto) {
// return iFbsProjectTaskService.switchList(dto);
// }
@ApiOperation("总包方查询包工头信息(点头像)")
@GetMapping("/bgt/{userId}")
public AjaxResult<BgtUser> bgt(@NotNull(message = "主键不能为空")
@PathVariable("userId") Long userId) {
@ -124,7 +136,7 @@ public class AppZbfProjectTaskController extends BaseController {
return AjaxResult.success(bgtUser);
}
@ApiOperation("分包商查询务工者信息")
@ApiOperation("总包方查询务工者信息")
@GetMapping("/wgzInfo")
public AjaxResult<FbsGetWgzUserInfoVO> getWgzUserInfo(Long userId, Long recruitApplyId) {
WgzUser byUserId = iWgzUserService.findByUserId(userId);
@ -146,4 +158,9 @@ public class AppZbfProjectTaskController extends BaseController {
return AjaxResult.success(vo);
}
@ApiOperation("总包方查询任务详情-包工头任务列表")
@GetMapping("/bgtTaskList")
public TableDataInfo<FbsProjectTask> bgtTaskList(ZbfProjectTaskDTO dto) {
return iFbsProjectTaskService.bgtTaskList(dto);
}
}

View File

@ -9,9 +9,11 @@ import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUserDTO;
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
import com.ruoyi.wgz.bo.rests.WgzAppUserAllRecruitmentTwo;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskUserDTO;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
@ -48,7 +50,10 @@ public interface BgtProjectRecruitApplyMapper extends BaseMapperPlus<BgtProjectR
Page<BgtProjectRecruitApplyVO> taskUserList(@Param("page")Page<BgtProjectTaskUserDTO> queryDTOPage, @Param("dto") BgtProjectTaskUserDTO dto);
// 分包商 任务详情-务工者人员列表分页
Page<BgtProjectRecruitApplyVO> fbsTaskUserList(@Param("page")Page<BgtProjectTaskUserDTO> queryDTOPage, @Param("dto") BgtProjectTaskUserDTO dto);
Page<BgtProjectRecruitApplyVO> fbsTaskUserList(@Param("page")Page<FbsProjectTaskUserDTO> queryDTOPage, @Param("dto") FbsProjectTaskUserDTO dto);
// 总包方 查询任务详情-务工人员数量-所有
Page<BgtProjectRecruitApplyVO> taskWgzListAll(@Param("page")Page<ZbfProjectTaskUserDTO> queryDTOPage, @Param("dto") ZbfProjectTaskUserDTO dto);
/**
* 获取指定用户的所有招工

View File

@ -6,10 +6,12 @@ import com.ruoyi.bgt.domain.dto.*;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUserDTO;
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
import com.ruoyi.wgz.bo.rests.WgzAppUserAllRecruitmentTwo;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskUserDTO;
import org.springframework.validation.annotation.Validated;
import java.util.Collection;
@ -79,7 +81,14 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
/**
* 分包商 查询任务详情-务工人员数量
*/
TableDataInfo<BgtProjectRecruitApplyVO> fbsTaskUserList(BgtProjectTaskUserDTO dto);
TableDataInfo<BgtProjectRecruitApplyVO> fbsTaskUserList(FbsProjectTaskUserDTO dto);
/**
* 总包方 查询任务详情-务工人员数量-所有
*/
TableDataInfo<BgtProjectRecruitApplyVO> taskWgzListAll(ZbfProjectTaskUserDTO dto);
/**
* 查询列表

View File

@ -28,6 +28,7 @@ import com.ruoyi.common.service.IAsyncService;
import com.ruoyi.common.service.IWgzService;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUserDTO;
import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
@ -38,6 +39,7 @@ import com.ruoyi.wgz.domain.WgzMessage;
import com.ruoyi.wgz.domain.WgzScoreRecord;
import com.ruoyi.wgz.domain.WgzUser;
import com.ruoyi.wgz.service.*;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskUserDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
@ -199,14 +201,23 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
}
@Override
public TableDataInfo<BgtProjectRecruitApplyVO> fbsTaskUserList(BgtProjectTaskUserDTO dto) {
Page<BgtProjectTaskUserDTO> queryDTOPage = new Page<>();
public TableDataInfo<BgtProjectRecruitApplyVO> fbsTaskUserList(FbsProjectTaskUserDTO dto) {
Page<FbsProjectTaskUserDTO> queryDTOPage = new Page<>();
queryDTOPage.setCurrent(dto.getPageNum());
queryDTOPage.setSize(dto.getPageSize());
Page<BgtProjectRecruitApplyVO> queryVOPage = baseMapper.fbsTaskUserList(queryDTOPage, dto);
return PageUtils.buildDataInfo(queryVOPage);
}
@Override
public TableDataInfo<BgtProjectRecruitApplyVO> taskWgzListAll(ZbfProjectTaskUserDTO dto) {
Page<ZbfProjectTaskUserDTO> queryDTOPage = new Page<>();
queryDTOPage.setCurrent(dto.getPageNum());
queryDTOPage.setSize(dto.getPageSize());
Page<BgtProjectRecruitApplyVO> queryVOPage = baseMapper.taskWgzListAll(queryDTOPage, dto);
return PageUtils.buildDataInfo(queryVOPage);
}
@Override
public List<BgtProjectRecruitApplyVO> appAllList(BgtProjectRecruitApplyQueryDTO dto) {
if (dto.getTaskId() != null) {

View File

@ -19,6 +19,7 @@ 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.enums.AuditStatus;
import com.ruoyi.common.enums.ProjectTaskStatus;
import com.ruoyi.common.exception.BaseException;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
@ -29,7 +30,10 @@ import com.ruoyi.fbs.service.IFbsProjectTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.ruoyi.common.constants.BgtMessageConstant.*;
import static com.ruoyi.common.constants.FbsMessageConstant.*;
@ -88,15 +92,6 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public Boolean insert(BgtProjectTaskProgress bo) {
validEntityBeforeSave(bo);
//应该审核之后
// if(bo.getProgress() == 100){
// //更改任务状态
// fbsProjectTaskService.lambdaUpdate().set(FbsProjectTask::getStatus, ProjectTaskStatus.COMPLETE.getCode())
// .eq(FbsProjectTask::getId, bo.getTaskId()).update();
// //批量退场
// recruitApplyService.quitBatch(bo.getTaskId());
// }
bo.setUploaderId(SecurityUtils.getAppUserId());
boolean save = save(bo);
@ -182,9 +177,14 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public Boolean fbsAudit(BgtProjectTaskProgress bo) {
boolean b = updateById(bo);
FbsProjectTask task = taskService.getById(bo.getTaskId());
if(bo.getProgress() == 100){
//更改任务状态
taskService.lambdaUpdate().set(FbsProjectTask::getStatus, ProjectTaskStatus.COMPLETE.getCode())
.eq(FbsProjectTask::getId, bo.getTaskId()).update();
}
//分包商发消息到包工头
HashMap<String, String> mp = new HashMap<>();
mp.put("projectName", task.getTaskName());

View File

@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.ruoyi.bgt.bo.BgtWageApplicationQueryBo;
import com.ruoyi.bgt.domain.BgtMessage;
import com.ruoyi.bgt.domain.BgtProjectTaskProgress;
import com.ruoyi.bgt.domain.BgtWageApplication;
import com.ruoyi.bgt.domain.dto.BgtWageApplicationQueryDTO;
import com.ruoyi.bgt.domain.vo.BgtWageApplicationDetailVO;
@ -233,7 +232,7 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
.setMessageLargeType(BGT_LARGE_SETTLEMENT)
.setIsOperation(OPERATION_NO);
bgtMessageService.sendAMessage(bgtMessage);
fbsMessageService.operation(USERTYPE_BGT, bo.getUserId(), USERTYPE_FBS, SecurityUtils.getAppUserId(), bo.getId(), SqlHelper.table(BgtProjectTaskProgress.class).getTableName());
fbsMessageService.operation(USERTYPE_BGT, bo.getUserId(), USERTYPE_FBS, SecurityUtils.getAppUserId(), bo.getId(), SqlHelper.table(BgtWageApplication.class).getTableName());
return b;
}

View File

@ -0,0 +1,25 @@
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 FbsMessageTaskApplyListDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("任务申请id")
@NotNull(message = "任务申请id不能为空")
private Long taskApplyId;
@ApiModelProperty(value = "申请状态0=申请中,1=已同意,2=已拒绝,3=已取消)",hidden = true)
private String applyStatus;
}

View File

@ -0,0 +1,28 @@
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 FbsProjectTaskUserDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("任务Id")
@NotNull(message = "任务Id不能为空")
private Long taskId;
@ApiModelProperty("选择状态3-未进场5-进场6-离场")
private Integer status;
@ApiModelProperty("务工者名字")
private String username;
}

View File

@ -6,7 +6,7 @@ import lombok.Data;
@Data
@ApiModel("包工头项目任务详情-进度")
@ApiModel("项目任务详情-进度")
public class AppTaskDetailProgressVO {
@ApiModelProperty("主键ID")

View File

@ -21,6 +21,9 @@ public class FbsProjectDetailVO {
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目图片")
private String projectImg;
@ApiModelProperty("单位名称")
private String unitName;

View File

@ -50,6 +50,9 @@ public class FbsProjectSubcontractingDetailVO {
@ApiModelProperty("分包商用户ID")
private Long userId;
@ApiModelProperty("项目图片")
private String projectImg;
@ApiModelProperty("删除标志0代表存在 2代表删除")
private String delFlag;

View File

@ -24,4 +24,7 @@ public class FbsProjectTaskDetailProgressVO{
@ApiModelProperty("进度")
private Integer progress = 0;
@ApiModelProperty("进度百分制")
private Integer progressCompute = 0;
}

View File

@ -13,6 +13,9 @@ import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.domain.dto.FbsTaskListDTO;
import com.ruoyi.fbs.domain.dto.FbsTaskSwitchListDTO;
import com.ruoyi.fbs.domain.vo.*;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskDTO;
import com.ruoyi.zbf.domain.dto.ZbfTaskAllDTO;
import com.ruoyi.zbf.domain.vo.ZbfProgressVO;
import java.util.Collection;
import java.util.List;
@ -88,6 +91,11 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
*/
AppTaskDetailProgressVO progress(Long id);
/**
* 任务详情-进度-包工头总和
*/
ZbfProgressVO progressAll(ZbfTaskAllDTO dto);
/**
* 任务详情-结算
*/
@ -126,9 +134,20 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
*/
FbsTaskDetailWageVO fbsWage(Long id);
/**
* 总包方查询任务详情-工资结算审批-总和
*/
FbsTaskDetailWageVO taskWageAll(ZbfTaskAllDTO dto);
/**
* 分包商查询任务详情-任务切换列表
*/
TableDataInfo<FbsProjectTaskListVO> switchList(FbsTaskSwitchListDTO dto);
/**
* 总包方查询任务详情-包工头任务列表
*/
TableDataInfo<FbsProjectTask> bgtTaskList(ZbfProjectTaskDTO dto);
}

View File

@ -10,6 +10,8 @@ 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.bgt.service.IBgtUserService;
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.enums.TaskApplyStatus;
@ -52,6 +54,8 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
private IFbsProjectTaskService taskService;
@Autowired
private IFbsMessageService fbsMessageService;
@Autowired
private IBgtUserService bgtUserService;
@Override
public FbsProjectTaskApply queryById(Long id){
return getById(id);
@ -117,10 +121,16 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean appTaskApply(BgtTaskApplyDTO dto) {
FbsProjectTaskApply fbsProjectTaskApply = BeanUtil.copyProperties(dto, FbsProjectTaskApply.class);
fbsProjectTaskApply.setUserId(SecurityUtils.getAppUserId());
validEntityBeforeSave(fbsProjectTaskApply);
Long appUserId = SecurityUtils.getAppUserId();
BgtUser bgtUser = bgtUserService.selectUserByUserId(appUserId);
if (bgtUser == null || bgtUser.getIdentityCard() == null) {
throw new BaseException("当前用户还未实名认证!");
}
FbsProjectTaskApply fbsProjectTaskApply = BeanUtil.copyProperties(dto, FbsProjectTaskApply.class);
fbsProjectTaskApply.setUserId(appUserId);
validEntityBeforeSave(fbsProjectTaskApply);
boolean save = save(fbsProjectTaskApply);
//系统发消息到包工头
FbsProjectTask task = taskService.getById(dto.getTaskId());
// HashMap<String, String> mp = new HashMap<>();
@ -158,7 +168,7 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
.setIsOperation(OPERATION_NEED);
fbsMessageService.sendAMessage(fbsMessage);
return save(fbsProjectTaskApply);
return save;
}
@Override

View File

@ -7,6 +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.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.BgtProjectTaskProgress;
import com.ruoyi.bgt.domain.BgtWageApplication;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
@ -38,6 +39,9 @@ import com.ruoyi.wgz.service.IWgzAttendanceService;
import com.ruoyi.wgz.service.IWgzPayCalculationService;
import com.ruoyi.zbf.domain.ZbfProject;
import com.ruoyi.zbf.domain.ZbfProjectSection;
import com.ruoyi.zbf.domain.dto.ZbfProjectTaskDTO;
import com.ruoyi.zbf.domain.dto.ZbfTaskAllDTO;
import com.ruoyi.zbf.domain.vo.ZbfProgressVO;
import com.ruoyi.zbf.service.IZbfProjectSectionService;
import com.ruoyi.zbf.service.IZbfProjectService;
import org.springframework.beans.factory.annotation.Autowired;
@ -50,6 +54,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 分包商项目任务Service业务层处理
@ -76,6 +81,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
private IFbsProjectTaskApplyService fbsProjectTaskApplyService;
@Autowired
private IZbfProjectSectionService zbfProjectSectionService;
@Autowired
private IFbsProjectTaskService fbsProjectTaskService;
@Override
public FbsProjectTask queryById(Long id){
@ -231,6 +238,22 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
return appTaskDetailVO;
}
@Override
public ZbfProgressVO progressAll(ZbfTaskAllDTO dto) {
//获取包工头在这个分包下的所有任务
List<FbsProjectTask> list = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
.eq(FbsProjectTask::getSubId, dto.getSubId())
.eq(FbsProjectTask::getUserId, dto.getBgtUserId())
);
List<Long> taskIds = list.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
List<BgtProjectTaskProgress> progressByTaskIds = progressService.getProgressByTaskIds(taskIds);
ZbfProgressVO zbfProgressVO = new ZbfProgressVO();
Integer progress = progressByTaskIds.stream().mapToInt(BgtProjectTaskProgress::getProgress).sum();
zbfProgressVO.setProgress(progress);
zbfProgressVO.setTotalProgress(taskIds.size() * 100);
return zbfProgressVO;
}
@Override
public BgtTaskDetailWageVO wage(Long id) {
FbsProjectTask task = getById(id);
@ -377,6 +400,34 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
return fbsTaskDetailWageVO;
}
@Override
public FbsTaskDetailWageVO taskWageAll(ZbfTaskAllDTO dto) {
FbsTaskDetailWageVO vo = new FbsTaskDetailWageVO();
//获取包工头在这个分包下的所有任务
List<FbsProjectTask> list = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
.eq(FbsProjectTask::getSubId, dto.getSubId())
.eq(FbsProjectTask::getUserId, dto.getBgtUserId())
);
vo.setTaskAmount(list.stream().map(FbsProjectTask::getTaskAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
List<Long> taskIds = list.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
List<BgtWageApplication> wageList = wageApplicationService.list(Wrappers.<BgtWageApplication>lambdaQuery()
.in(BgtWageApplication::getTaskId, taskIds).orderByDesc(BgtWageApplication::getId));
vo.setWageApplication(BeanUtil.copyProperties(wageList.get(0), BgtWageApplicationListVO.class));
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());
}
}
vo.setTaskAuditAmount(taskAuditAmount);
vo.setTaskApplyAmount(taskApplyAmount);
return vo;
}
@Override
public TableDataInfo<FbsProjectTaskListVO> switchList(FbsTaskSwitchListDTO dto) {
@ -392,4 +443,15 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
fbsProjectTaskListVOPage.setRecords(fbsProjectTaskListVOS);
return PageUtils.buildDataInfo(fbsProjectTaskListVOPage);
}
@Override
public TableDataInfo<FbsProjectTask> bgtTaskList(ZbfProjectTaskDTO dto) {
LambdaQueryWrapper<FbsProjectTask> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(FbsProjectTask::getSubId,dto.getSubId());
wrapper.eq(FbsProjectTask::getUserId,dto.getBgtUserId());
wrapper.orderByDesc(FbsProjectTask::getId);
Page<FbsProjectTask> page = page(PageUtils.buildPage(), wrapper);
return PageUtils.buildDataInfo(page);
}
}

View File

@ -0,0 +1,26 @@
package com.ruoyi.zbf.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("分包商项目切换列表查询条件")
public class ZbfProjectTaskDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("分包ID")
@NotNull(message = "分包ID不能为空")
private Long subId;
@ApiModelProperty("包工头用户Id")
@NotNull(message = "包工头用户Id不能为空")
private Long bgtUserId;
}

View File

@ -0,0 +1,32 @@
package com.ruoyi.zbf.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("分包商任务详情务工者申请列表查询对象")
public class ZbfProjectTaskUserDTO {
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("包工头用户ID")
@NotNull(message = "包工头用户ID不能为空")
private Long bgtUserId;
@ApiModelProperty("分包ID")
@NotNull(message = "分包ID不能为空")
private Long subId;
@ApiModelProperty("选择状态5-进场6-离场")
private Integer status;
@ApiModelProperty("务工者名字")
private String username;
}

View File

@ -0,0 +1,20 @@
package com.ruoyi.zbf.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("总包方项目分包查看包工头所有任务查询参数")
public class ZbfTaskAllDTO {
@ApiModelProperty("包工头用户ID")
@NotNull(message = "包工头用户ID不能为空")
private Long bgtUserId;
@ApiModelProperty("分包ID")
@NotNull(message = "分包ID不能为空")
private Long subId;
}

View File

@ -514,6 +514,10 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
vo.setProgress(progressByTaskIds.stream().mapToInt(BgtProjectTaskProgress::getProgress).sum());
vo.setTotalProgress(taskList.size() * 100);
}
if(vo.getTotalProgress() != 0){
int i = new BigDecimal(vo.getProgress()).divide(new BigDecimal(vo.getTotalProgress()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).intValue();
vo.setProgressCompute(i);
}
return vo;
}

View File

@ -7,6 +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.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.ruoyi.common.core.domain.entity.FbsUser;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.ProjectStatus;
@ -17,6 +18,7 @@ import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.FbsMessage;
import com.ruoyi.fbs.service.IFbsMessageService;
import com.ruoyi.fbs.service.IFbsUserService;
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingApplyQueryBo;
import com.ruoyi.zbf.domain.ZbfMessage;
import com.ruoyi.zbf.domain.ZbfProject;
@ -34,6 +36,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.ruoyi.common.constants.BgtMessageConstant.HEADLINE;
import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
@ -58,6 +61,8 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl<Zb
private IFbsMessageService fbsMessageService;
@Autowired
private IZbfMessageService zbfMessageService;
@Autowired
private IFbsUserService fbsUserService;
@Override
@ -92,6 +97,10 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl<Zb
public Boolean insert(ZbfProjectSubcontractingApply bo) {
ZbfProjectSubcontractingApply add = BeanUtil.toBean(bo, ZbfProjectSubcontractingApply.class);
Long appUserId = SecurityUtils.getAppUserId();
FbsUser fbsUser = fbsUserService.selectUserByUserId(appUserId);
if( fbsUser.getCompanyId()==null){
throw new BaseException("尚未企业认证");
}
add.setFbsUserId(appUserId);
validEntityBeforeSave(add);
ZbfProjectSubcontracting sub = projectSubcontractingService.getById(bo.getSubId());
@ -230,7 +239,7 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl<Zb
fbsMessages.add(fbsMessage);
}
fbsMessageService.saveBatch(fbsMessages);
// fbsMessageService.operationBatch(USERTYPE_FBS,SecurityUtils.getAppUserId(),list.stream().map(FbsProjectTaskApply::getId).collect(Collectors.toList()),SqlHelper.table(FbsProjectTaskApply.class).getTableName());
zbfMessageService.operationBatch(USERTYPE_ZBF,SecurityUtils.getAppUserId(),list.stream().map(ZbfProjectSubcontractingApply::getId).collect(Collectors.toList()),SqlHelper.table(ZbfProjectSubcontractingApply.class).getTableName());
return super.updateBatchById(list);
}

View File

@ -306,6 +306,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by bpra.id desc
</select>
<select id="taskWgzListAll" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
select bpra.id,
bpra.entry_time,
bpra.leave_time,
bpra.recruit_id,
wu.user_id,
wu.phone,
wu.score,
wu.avatar_name,
wu.username,
wu.identity_card,
bpra.status,
wu.type_of_work,
fpt.task_name,
bpra.task_id
from bgt_project_recruit_apply bpra
left join wgz_user wu on bpra.user_id = wu.user_id
left join fbs_project_task fpt on fpt.id = bpra.task_id
where
fpt.sub_id = #{dto.subId} and fpt.user_id = #{dto.bgtUserId}
<if test="dto.username !=null and dto.username !='' ">
and wu.username like concat('%', #{dto.username}, '%')
</if>
<if test="dto.status != null">
AND bpra.status = #{dto.status}
</if>
<if test="dto.status == null">
AND bpra.status in ('5','6')
</if>
order by bpra.id desc
</select>
<select id="userAllRecruitment" resultType="com.ruoyi.wgz.bo.rests.WgzAppUserAllRecruitmentTwo">
SELECT

View File

@ -118,12 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="completeCount" resultType="integer">
SELECT zp.id,
unit_name,
project_name,
project_address,
project_img,
project_status
SELECT count(1)
FROM zbf_project zp
WHERE zp.project_status = '2' and
EXISTS (