分包
This commit is contained in:
@ -16,7 +16,9 @@ import com.ruoyi.common.exception.BaseException;
|
|||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
|
import com.ruoyi.bgt.domain.dto.BgtTaskDTO;
|
||||||
|
import com.ruoyi.fbs.domain.FbsProjectTaskApply;
|
||||||
import com.ruoyi.fbs.domain.vo.*;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
|
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@ -42,6 +44,8 @@ public class AppBgtProjectTaskController extends BaseController {
|
|||||||
|
|
||||||
private final IFbsProjectTaskService iFbsProjectTaskService;
|
private final IFbsProjectTaskService iFbsProjectTaskService;
|
||||||
|
|
||||||
|
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
||||||
|
|
||||||
private final IBgtUserService bgtUserService;
|
private final IBgtUserService bgtUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,7 +72,13 @@ public class AppBgtProjectTaskController extends BaseController {
|
|||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public AjaxResult<AppTaskDetailVO> getInfo(@NotNull(message = "主键不能为空")
|
public AjaxResult<AppTaskDetailVO> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable("id") Long id) {
|
@PathVariable("id") Long id) {
|
||||||
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
|
AppTaskDetailVO appTaskDetailVO = iFbsProjectTaskService.appQueryById(id);
|
||||||
|
//申请状态
|
||||||
|
FbsProjectTaskApply applyByTaskId = iFbsProjectTaskApplyService.getApplyByTaskId(id);
|
||||||
|
if (applyByTaskId != null) {
|
||||||
|
appTaskDetailVO.setApplyStatus(applyByTaskId.getApplyStatus());
|
||||||
|
}
|
||||||
|
return AjaxResult.success(appTaskDetailVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("项目任务详细信息-考勤")
|
@ApiOperation("项目任务详细信息-考勤")
|
||||||
|
@ -4,13 +4,12 @@ import com.ruoyi.common.core.controller.BaseController;
|
|||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectDetailVO;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectListCountVO;
|
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectListVO;
|
|
||||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -56,26 +55,40 @@ public class AppFbsProjectController extends BaseController {
|
|||||||
return AjaxResult.success(zbfProjectService.myListCount());
|
return AjaxResult.success(zbfProjectService.myListCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("分包商查看可报名项目详情")
|
@ApiOperation("分包商查看可报名项目详情")
|
||||||
@GetMapping("/signUp/{id}")
|
@GetMapping("/detail/{id}")
|
||||||
public AjaxResult<FbsProjectDetailVO> signUpDetail(@NotNull(message = "主键不能为空")
|
public AjaxResult<FbsProjectDetailVO> detail(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable("id") Long id) {
|
@PathVariable("id") Long id, @Param("type") Integer type) {
|
||||||
|
//0-可报名项目 //1-已申请项目 //2-已加入或已竣工项目
|
||||||
|
if(type == 0){
|
||||||
return AjaxResult.success(zbfProjectService.signUpDetail(id));
|
return AjaxResult.success(zbfProjectService.signUpDetail(id));
|
||||||
|
}else {
|
||||||
|
return AjaxResult.success(zbfProjectService.applyAllDetail(id));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("分包商查看已申请项目详情")
|
|
||||||
@GetMapping("/apply/{id}")
|
|
||||||
public AjaxResult<FbsProjectDetailVO> applyDetail(@NotNull(message = "主键不能为空")
|
|
||||||
@PathVariable("id") Long id) {
|
|
||||||
return AjaxResult.success(zbfProjectService.applyDetail(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("分包商查看已加入或已竣工项目详情")
|
// @ApiOperation("分包商查看可报名项目详情")
|
||||||
@GetMapping("/joinOrComplete/{id}")
|
// @GetMapping("/signUp/{id}")
|
||||||
public AjaxResult<FbsProjectDetailVO> joinOrCompleteDetail(@NotNull(message = "主键不能为空")
|
// public AjaxResult<FbsProjectDetailVO> signUpDetail(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable("id") Long id) {
|
// @PathVariable("id") Long id) {
|
||||||
return AjaxResult.success(zbfProjectService.joinOrCompleteDetail(id));
|
// return AjaxResult.success(zbfProjectService.signUpDetail(id));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// @ApiOperation("分包商查看已申请项目详情")
|
||||||
|
// @GetMapping("/apply/{id}")
|
||||||
|
// public AjaxResult<FbsProjectDetailVO> applyDetail(@NotNull(message = "主键不能为空")
|
||||||
|
// @PathVariable("id") Long id) {
|
||||||
|
// return AjaxResult.success(zbfProjectService.applyDetail(id));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @ApiOperation("分包商查看已加入或已竣工项目详情")
|
||||||
|
// @GetMapping("/joinOrComplete/{id}")
|
||||||
|
// public AjaxResult<FbsProjectDetailVO> joinOrCompleteDetail(@NotNull(message = "主键不能为空")
|
||||||
|
// @PathVariable("id") Long id) {
|
||||||
|
// return AjaxResult.success(zbfProjectService.joinOrCompleteDetail(id));
|
||||||
|
// }
|
||||||
|
|
||||||
@ApiOperation("分包商查询我的项目列表-项目切换")
|
@ApiOperation("分包商查询我的项目列表-项目切换")
|
||||||
@GetMapping("/switchList")
|
@GetMapping("/switchList")
|
||||||
@ -83,6 +96,18 @@ public class AppFbsProjectController extends BaseController {
|
|||||||
return zbfProjectService.switchList(dto);
|
return zbfProjectService.switchList(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("分包商查询项目详情-用工进度")
|
||||||
|
@GetMapping("/progress")
|
||||||
|
public AjaxResult<FbsProjectTaskDetailProgressVO> fbsProgress(Long projectId) {
|
||||||
|
return AjaxResult.success(zbfProjectService.fbsProgress(projectId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("分包商查询项目详情-结算情况")
|
||||||
|
@GetMapping("/wage")
|
||||||
|
public AjaxResult<FbsProjectTaskDetailWageVO> fbsWage(Long projectId) {
|
||||||
|
return AjaxResult.success(zbfProjectService.fbsWage(projectId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// /**
|
// /**
|
||||||
|
@ -29,7 +29,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Api(value = "App分包商项目分包申请控制器", tags = {"App分包商"})
|
@Api(value = "App分包商项目分包申请控制器", tags = {"App分包商"})
|
||||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/app/fbs/apply")
|
@RequestMapping("/app/fbs/subApply")
|
||||||
public class AppFbsProjectSubcontractingApplyController extends BaseController {
|
public class AppFbsProjectSubcontractingApplyController extends BaseController {
|
||||||
|
|
||||||
private final IZbfProjectSubcontractingApplyService iZbfProjectSubcontractingApplyService;
|
private final IZbfProjectSubcontractingApplyService iZbfProjectSubcontractingApplyService;
|
||||||
|
@ -23,7 +23,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Api(value = "App分包商项目任务申请控制器", tags = {"App分包商"})
|
@Api(value = "App分包商项目任务申请控制器", tags = {"App分包商"})
|
||||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/app/fbs/apply")
|
@RequestMapping("/app/fbs/taskApply")
|
||||||
public class AppFbsProjectTaskApplyController extends BaseController {
|
public class AppFbsProjectTaskApplyController extends BaseController {
|
||||||
|
|
||||||
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.web.controller.fbs;
|
package com.ruoyi.web.controller.fbs;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
|
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
|
||||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
@ -10,8 +11,11 @@ import com.ruoyi.common.annotation.RepeatSubmit;
|
|||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.BgtUser;
|
import com.ruoyi.common.core.domain.entity.BgtUser;
|
||||||
|
import com.ruoyi.common.core.domain.entity.FbsUser;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.service.ICompanyService;
|
||||||
|
import com.ruoyi.common.util.DataUtil;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUpdateDTO;
|
import com.ruoyi.fbs.domain.dto.FbsProjectTaskUpdateDTO;
|
||||||
@ -21,6 +25,15 @@ import com.ruoyi.fbs.domain.dto.FbsTaskSwitchListDTO;
|
|||||||
import com.ruoyi.fbs.domain.vo.*;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
|
import com.ruoyi.fbs.service.IFbsUserService;
|
||||||
|
import com.ruoyi.wgz.domain.WgzUser;
|
||||||
|
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.service.IZbfProjectSectionService;
|
||||||
|
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||||
|
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -46,6 +59,12 @@ public class AppFbsProjectTaskController extends BaseController {
|
|||||||
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
||||||
private final IBgtUserService iBgtUserService;
|
private final IBgtUserService iBgtUserService;
|
||||||
private final IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService;
|
private final IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService;
|
||||||
|
private final IWgzUserService iWgzUserService;
|
||||||
|
private final IZbfProjectService iZbfProjectService;
|
||||||
|
private final IZbfProjectSectionService iZbfProjectSectionService;
|
||||||
|
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;
|
||||||
|
private final IFbsUserService iFbsUserService;
|
||||||
|
private final ICompanyService iCompanyService;
|
||||||
|
|
||||||
@ApiOperation("分包商发布任务")
|
@ApiOperation("分包商发布任务")
|
||||||
@Log(title = "分包商发布任务", businessType = BusinessType.INSERT)
|
@Log(title = "分包商发布任务", businessType = BusinessType.INSERT)
|
||||||
@ -129,4 +148,35 @@ public class AppFbsProjectTaskController extends BaseController {
|
|||||||
return iFbsProjectTaskService.switchList(dto);
|
return iFbsProjectTaskService.switchList(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("分包商查询包工头信息(点头像)")
|
||||||
|
@GetMapping("/bgt/{userId}")
|
||||||
|
public AjaxResult<BgtUser> bgt(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable("userId") Long userId) {
|
||||||
|
BgtUser bgtUser = iBgtUserService.selectUserByUserId(userId);
|
||||||
|
bgtUser.setAge(DataUtil.calculateAge(bgtUser.getBirthdate()));
|
||||||
|
return AjaxResult.success(bgtUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("分包商查询务工者信息")
|
||||||
|
@GetMapping("/wgzInfo")
|
||||||
|
public AjaxResult<FbsGetWgzUserInfoVO> getWgzUserInfo(Long userId, Long recruitApplyId) {
|
||||||
|
WgzUser byUserId = iWgzUserService.findByUserId(userId);
|
||||||
|
FbsGetWgzUserInfoVO vo = BeanUtil.copyProperties(byUserId, FbsGetWgzUserInfoVO.class);
|
||||||
|
BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getById(recruitApplyId);
|
||||||
|
vo.setWorkStatus(apply.getStatus());
|
||||||
|
vo.setEntryTime(apply.getEntryTime());
|
||||||
|
FbsProjectTask task = iFbsProjectTaskService.getById(apply.getTaskId());
|
||||||
|
ZbfProject project = iZbfProjectService.getById(task.getProjectId());
|
||||||
|
vo.setProjectName(project.getProjectName());
|
||||||
|
ZbfProjectSection projectSection = iZbfProjectSectionService.getById(task.getSectionId());
|
||||||
|
vo.setSectionName(projectSection.getSectionName());
|
||||||
|
ZbfProjectSubcontracting subcontracting = iZbfProjectSubcontractingService.getById(task.getSubId());
|
||||||
|
vo.setSubName(subcontracting.getSubName());
|
||||||
|
FbsUser fbsUser = iFbsUserService.selectUserByUserId(subcontracting.getUserId());
|
||||||
|
String companyName = iCompanyService.getCompanyNameById(fbsUser.getCompanyId());
|
||||||
|
vo.setCompanyName(companyName);
|
||||||
|
vo.setWorkerType("正式员工");
|
||||||
|
return AjaxResult.success(vo);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,11 @@ public enum SubcontractingApplyStatus
|
|||||||
|
|
||||||
//项目申请中的状态
|
//项目申请中的状态
|
||||||
public static List<String> getApplyStatus(){
|
public static List<String> getApplyStatus(){
|
||||||
return Arrays.asList(APPLY.getCode(),REFUSE.getCode());
|
return Arrays.asList(APPLY.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> getApplyAllStatus(){
|
||||||
|
return Arrays.asList(APPLY.getCode(),PASS.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
|||||||
import org.apache.ibatis.annotations.CacheNamespace;
|
import org.apache.ibatis.annotations.CacheNamespace;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 包工头项目任务进度Mapper接口
|
* 包工头项目任务进度Mapper接口
|
||||||
*
|
*
|
||||||
@ -20,4 +22,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
public interface BgtProjectTaskProgressMapper extends BaseMapperPlus<BgtProjectTaskProgress> {
|
public interface BgtProjectTaskProgressMapper extends BaseMapperPlus<BgtProjectTaskProgress> {
|
||||||
|
|
||||||
Page<BgtProjectTaskProgressVO> appQueryPageList(@Param("page") Page<BgtProjectTaskProgressQueryDTO> page, @Param("dto") BgtProjectTaskProgressQueryDTO dto);
|
Page<BgtProjectTaskProgressVO> appQueryPageList(@Param("page") Page<BgtProjectTaskProgressQueryDTO> page, @Param("dto") BgtProjectTaskProgressQueryDTO dto);
|
||||||
|
|
||||||
|
List<BgtProjectTaskProgress> getProgressByTaskIds(@Param("taskIds") List<Long> taskIds);
|
||||||
}
|
}
|
||||||
|
@ -74,4 +74,11 @@ public interface IBgtProjectTaskProgressService extends IServicePlus<BgtProjectT
|
|||||||
* 分包商审核
|
* 分包商审核
|
||||||
*/
|
*/
|
||||||
Boolean fbsAudit(BgtProjectTaskProgress bo);
|
Boolean fbsAudit(BgtProjectTaskProgress bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据Id查询任务最新进度
|
||||||
|
*/
|
||||||
|
List<BgtProjectTaskProgress> getProgressByTaskIds(List<Long> taskIds);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,4 +82,9 @@ public interface IBgtWageApplicationService extends IServicePlus<BgtWageApplicat
|
|||||||
* 分包商审核
|
* 分包商审核
|
||||||
*/
|
*/
|
||||||
Boolean fbsAudit(BgtWageApplication bo);
|
Boolean fbsAudit(BgtWageApplication bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取任务下先已审核通过的数据
|
||||||
|
*/
|
||||||
|
List<BgtWageApplication> getPassListByTaskIds(List<Long> taskIds);
|
||||||
}
|
}
|
||||||
|
@ -29,10 +29,7 @@ import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
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.BgtMessageConstant.*;
|
||||||
import static com.ruoyi.common.constants.FbsMessageConstant.*;
|
import static com.ruoyi.common.constants.FbsMessageConstant.*;
|
||||||
@ -173,6 +170,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
public Integer getLastProgress(Long taskId) {
|
public Integer getLastProgress(Long taskId) {
|
||||||
LambdaQueryWrapper<BgtProjectTaskProgress> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<BgtProjectTaskProgress> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(BgtProjectTaskProgress::getTaskId, taskId);
|
wrapper.eq(BgtProjectTaskProgress::getTaskId, taskId);
|
||||||
|
wrapper.eq(BgtProjectTaskProgress::getAuditStatus, AuditStatus.PASS.getCode());
|
||||||
wrapper.orderByDesc(BgtProjectTaskProgress::getProgress);
|
wrapper.orderByDesc(BgtProjectTaskProgress::getProgress);
|
||||||
List<BgtProjectTaskProgress> list = baseMapper.selectList(wrapper);
|
List<BgtProjectTaskProgress> list = baseMapper.selectList(wrapper);
|
||||||
return CollectionUtil.isEmpty(list)?0:list.get(0).getProgress();
|
return CollectionUtil.isEmpty(list)?0:list.get(0).getProgress();
|
||||||
@ -207,4 +205,9 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BgtProjectTaskProgress> getProgressByTaskIds(List<Long> taskIds) {
|
||||||
|
return baseMapper.getProgressByTaskIds(taskIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,4 +235,12 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
|
|||||||
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(BgtProjectTaskProgress.class).getTableName());
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BgtWageApplication> getPassListByTaskIds(List<Long> taskIds) {
|
||||||
|
LambdaQueryWrapper<BgtWageApplication> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(BgtWageApplication::getTaskId, taskIds)
|
||||||
|
.eq(BgtWageApplication::getAuditStatus, AuditStatus.PASS.getCode());
|
||||||
|
return list(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,9 @@ public class AppTaskDetailVO {
|
|||||||
@ApiModelProperty("备注")
|
@ApiModelProperty("备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("申请状态(0申请中 1已同意 2已拒绝 3已取消)")
|
||||||
|
private String applyStatus;
|
||||||
|
|
||||||
@ApiModelProperty("发布时间")
|
@ApiModelProperty("发布时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
@ -0,0 +1,104 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("分包商查看务工者个人基本信息返回对象")
|
||||||
|
public class FbsGetWgzUserInfoVO implements Serializable {
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty("唯一标识")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty("性别字典sys_user_sex")
|
||||||
|
private String gender;
|
||||||
|
|
||||||
|
@ApiModelProperty("民族")
|
||||||
|
private String nation;
|
||||||
|
|
||||||
|
@ApiModelProperty("出生日期")
|
||||||
|
private LocalDate birthdate;
|
||||||
|
|
||||||
|
@ApiModelProperty("年龄")
|
||||||
|
private Integer age;
|
||||||
|
|
||||||
|
@ApiModelProperty("身份证号码")
|
||||||
|
private String identityCard;
|
||||||
|
|
||||||
|
@ApiModelProperty("所在区域")
|
||||||
|
private String area;
|
||||||
|
|
||||||
|
@ApiModelProperty("地址")
|
||||||
|
private String site;
|
||||||
|
|
||||||
|
@ApiModelProperty("联系电话")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行")
|
||||||
|
private String bank;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行卡号")
|
||||||
|
private String cardNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("头像地址")
|
||||||
|
private String avatarName;
|
||||||
|
|
||||||
|
@ApiModelProperty("身份证正面图路径")
|
||||||
|
private String frontPath;
|
||||||
|
|
||||||
|
@ApiModelProperty("身份证反面图路径")
|
||||||
|
private String reverseSidePath;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行卡图路径")
|
||||||
|
private String bankCardPath;
|
||||||
|
|
||||||
|
@ApiModelProperty("评分")
|
||||||
|
private Double score;
|
||||||
|
|
||||||
|
@ApiModelProperty("工种,多个逗号分隔")
|
||||||
|
private String typeOfWork;
|
||||||
|
|
||||||
|
@ApiModelProperty("工种名")
|
||||||
|
private String typeOfWorkName;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否被选择")
|
||||||
|
private Boolean isChoose;
|
||||||
|
|
||||||
|
@ApiModelProperty("工作状态")
|
||||||
|
private String workStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否工资结清")
|
||||||
|
private Boolean isPay;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@ApiModelProperty("标段名称")
|
||||||
|
private String sectionName;
|
||||||
|
|
||||||
|
@ApiModelProperty("分包主题")
|
||||||
|
private String subName;
|
||||||
|
|
||||||
|
@ApiModelProperty("进场时间")
|
||||||
|
private LocalDate entryTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("劳务单位")
|
||||||
|
private String companyName;
|
||||||
|
|
||||||
|
@ApiModelProperty("员工类型")
|
||||||
|
private String workerType;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 包工头项目任务进度对象 bgt_project_task_progress
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-02-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("App包工头项目详情-任务进度视图对象")
|
||||||
|
public class FbsProjectTaskDetailProgressVO{
|
||||||
|
|
||||||
|
@ApiModelProperty("总进度")
|
||||||
|
private Integer totalProgress = 0;
|
||||||
|
|
||||||
|
@ApiModelProperty("进度")
|
||||||
|
private Integer progress = 0;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 包工头项目任务进度对象 bgt_project_task_progress
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-02-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("App包工头项目详情-结算情况视图对象")
|
||||||
|
public class FbsProjectTaskDetailWageVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("总金额")
|
||||||
|
private BigDecimal totalAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("接收金额")
|
||||||
|
private BigDecimal receiveAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("支付金额")
|
||||||
|
private BigDecimal payAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("支付总金额")
|
||||||
|
private BigDecimal payTotalAmount;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -80,4 +80,9 @@ public interface IFbsProjectTaskApplyService extends IServicePlus<FbsProjectTask
|
|||||||
* 分包商选择包工头
|
* 分包商选择包工头
|
||||||
*/
|
*/
|
||||||
Boolean choose(Long id);
|
Boolean choose(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取包工头该任务的最新申请
|
||||||
|
*/
|
||||||
|
FbsProjectTaskApply getApplyByTaskId(Long taskId);
|
||||||
}
|
}
|
||||||
|
@ -58,4 +58,9 @@ public interface IFbsWageApplicationService extends IServicePlus<FbsWageApplicat
|
|||||||
* 查询列表
|
* 查询列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<FbsWageApplication> record(FbsWageApplicationListDTO dto);
|
TableDataInfo<FbsWageApplication> record(FbsWageApplicationListDTO dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包下先已审核通过的数据
|
||||||
|
*/
|
||||||
|
List<FbsWageApplication> getPassListBySubIds(List<Long> subIds);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.ruoyi.fbs.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -223,9 +224,17 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
|
|||||||
throw new BaseException("该申请已取消");
|
throw new BaseException("该申请已取消");
|
||||||
}
|
}
|
||||||
FbsProjectTask task = taskService.getById(taskApply.getTaskId());
|
FbsProjectTask task = taskService.getById(taskApply.getTaskId());
|
||||||
if(task!=null && task.getUserId()!=null){
|
if(task == null){
|
||||||
|
throw new BaseException("该任务不存在");
|
||||||
|
}
|
||||||
|
if(task.getUserId()!=null){
|
||||||
throw new BaseException("该任务已被承接");
|
throw new BaseException("该任务已被承接");
|
||||||
}
|
}
|
||||||
|
if("0".equals(task.getStatus())){
|
||||||
|
task.setStatus("1");
|
||||||
|
}
|
||||||
|
task.setUserId(taskApply.getUserId());
|
||||||
|
taskService.updateById(task);
|
||||||
|
|
||||||
//拒绝其余包工头
|
//拒绝其余包工头
|
||||||
LambdaQueryWrapper<FbsProjectTaskApply> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<FbsProjectTaskApply> wrapper = new LambdaQueryWrapper<>();
|
||||||
@ -267,4 +276,14 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl<FbsProjectTa
|
|||||||
fbsMessageService.operationBatch(USERTYPE_FBS,SecurityUtils.getAppUserId(),list.stream().map(FbsProjectTaskApply::getId).collect(Collectors.toList()),SqlHelper.table(FbsProjectTaskApply.class).getTableName());
|
fbsMessageService.operationBatch(USERTYPE_FBS,SecurityUtils.getAppUserId(),list.stream().map(FbsProjectTaskApply::getId).collect(Collectors.toList()),SqlHelper.table(FbsProjectTaskApply.class).getTableName());
|
||||||
return super.updateBatchById(list);
|
return super.updateBatchById(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FbsProjectTaskApply getApplyByTaskId(Long taskId) {
|
||||||
|
LambdaQueryWrapper<FbsProjectTaskApply> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(FbsProjectTaskApply::getTaskId, taskId);
|
||||||
|
wrapper.eq(FbsProjectTaskApply::getUserId, SecurityUtils.getAppUserId());
|
||||||
|
wrapper.orderByDesc(FbsProjectTaskApply::getId);
|
||||||
|
List<FbsProjectTaskApply> list = list(wrapper);
|
||||||
|
return CollectionUtil.isEmpty(list)?null:list.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -354,6 +354,9 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
public FbsTaskDetailWageVO fbsWage(Long id) {
|
public FbsTaskDetailWageVO fbsWage(Long id) {
|
||||||
FbsTaskDetailWageVO fbsTaskDetailWageVO = new FbsTaskDetailWageVO();
|
FbsTaskDetailWageVO fbsTaskDetailWageVO = new FbsTaskDetailWageVO();
|
||||||
|
|
||||||
|
FbsProjectTask task = getById(id);
|
||||||
|
fbsTaskDetailWageVO.setTaskAmount(task.getTaskAmount());
|
||||||
|
|
||||||
List<BgtWageApplication> wageList = wageApplicationService.list(Wrappers.<BgtWageApplication>lambdaQuery()
|
List<BgtWageApplication> wageList = wageApplicationService.list(Wrappers.<BgtWageApplication>lambdaQuery()
|
||||||
.eq(BgtWageApplication::getTaskId, id).orderByDesc(BgtWageApplication::getId));
|
.eq(BgtWageApplication::getTaskId, id).orderByDesc(BgtWageApplication::getId));
|
||||||
|
|
||||||
|
@ -24,10 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static com.ruoyi.common.constants.BgtMessageConstant.HEADLINE;
|
import static com.ruoyi.common.constants.BgtMessageConstant.HEADLINE;
|
||||||
import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
|
import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
|
||||||
@ -153,4 +150,12 @@ public class FbsWageApplicationServiceImpl extends ServicePlusImpl<FbsWageApplic
|
|||||||
Page<FbsWageApplication> result = page(PageUtils.buildPage(), wrapper);
|
Page<FbsWageApplication> result = page(PageUtils.buildPage(), wrapper);
|
||||||
return PageUtils.buildDataInfo(result);
|
return PageUtils.buildDataInfo(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FbsWageApplication> getPassListBySubIds(List<Long> subIds) {
|
||||||
|
LambdaQueryWrapper<FbsWageApplication> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(FbsWageApplication::getSubId, subIds)
|
||||||
|
.eq(FbsWageApplication::getAuditStatus, AuditStatus.PASS.getCode());
|
||||||
|
return list(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,7 @@ package com.ruoyi.zbf.service;
|
|||||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectDetailVO;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectListCountVO;
|
|
||||||
import com.ruoyi.fbs.domain.vo.FbsProjectListVO;
|
|
||||||
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
||||||
import com.ruoyi.zbf.domain.ZbfProject;
|
import com.ruoyi.zbf.domain.ZbfProject;
|
||||||
import com.ruoyi.zbf.domain.dto.ZbfProjectAddDTO;
|
import com.ruoyi.zbf.domain.dto.ZbfProjectAddDTO;
|
||||||
@ -97,6 +95,11 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
|||||||
*/
|
*/
|
||||||
FbsProjectDetailVO signUpDetail(Long projectId);
|
FbsProjectDetailVO signUpDetail(Long projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包商查看所有申请项目详情
|
||||||
|
*/
|
||||||
|
FbsProjectDetailVO applyAllDetail(Long projectId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包商查看已申请项目详情
|
* 分包商查看已申请项目详情
|
||||||
*/
|
*/
|
||||||
@ -107,6 +110,18 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
|||||||
*/
|
*/
|
||||||
FbsProjectDetailVO joinOrCompleteDetail(Long projectId);
|
FbsProjectDetailVO joinOrCompleteDetail(Long projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包商查询项目详情-用工进度
|
||||||
|
*/
|
||||||
|
FbsProjectTaskDetailProgressVO fbsProgress(Long projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包商查询项目详情-结算情况
|
||||||
|
*/
|
||||||
|
FbsProjectTaskDetailWageVO fbsWage(Long projectId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总包方新增项目
|
* 总包方新增项目
|
||||||
*/
|
*/
|
||||||
@ -121,4 +136,7 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
|||||||
* 总包方查询自建项目统计
|
* 总包方查询自建项目统计
|
||||||
*/
|
*/
|
||||||
ZbfProjectCountVO projectCount();
|
ZbfProjectCountVO projectCount();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,22 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.bgt.domain.BgtProjectTaskProgress;
|
||||||
|
import com.ruoyi.bgt.domain.BgtWageApplication;
|
||||||
|
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
|
||||||
|
import com.ruoyi.bgt.service.IBgtWageApplicationService;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.ProjectStatus;
|
import com.ruoyi.common.enums.ProjectStatus;
|
||||||
import com.ruoyi.common.enums.SubcontractingApplyStatus;
|
import com.ruoyi.common.enums.SubcontractingApplyStatus;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
|
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||||
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||||
import com.ruoyi.fbs.domain.vo.*;
|
import com.ruoyi.fbs.domain.vo.*;
|
||||||
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
|
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||||
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
||||||
import com.ruoyi.zbf.domain.ZbfProject;
|
import com.ruoyi.zbf.domain.ZbfProject;
|
||||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||||
@ -36,6 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -54,6 +63,14 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
|||||||
private IZbfProjectSubcontractingService zbfProjectSubcontractingService;
|
private IZbfProjectSubcontractingService zbfProjectSubcontractingService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IZbfProjectSubcontractingApplyService zbfProjectSubcontractingApplyService;
|
private IZbfProjectSubcontractingApplyService zbfProjectSubcontractingApplyService;
|
||||||
|
@Autowired
|
||||||
|
private IFbsProjectTaskService fbsProjectTaskService;
|
||||||
|
@Autowired
|
||||||
|
private IBgtProjectTaskProgressService bgtProjectTaskProgressService;
|
||||||
|
@Autowired
|
||||||
|
private IFbsWageApplicationService fbsWageApplicationService;
|
||||||
|
@Autowired
|
||||||
|
private IBgtWageApplicationService bgtWageApplicationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ZbfProject queryById(Long id) {
|
public ZbfProject queryById(Long id) {
|
||||||
@ -332,6 +349,58 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
|||||||
return fbsProjectDetailVO;
|
return fbsProjectDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FbsProjectDetailVO applyAllDetail(Long projectId) {
|
||||||
|
ZbfProject byId = getById(projectId);
|
||||||
|
FbsProjectDetailVO fbsProjectDetailVO = BeanUtil.copyProperties(byId, FbsProjectDetailVO.class);
|
||||||
|
//查询项目下的所有申请中的申请和已拒绝的申请
|
||||||
|
List<ZbfProjectSubcontractingApply> applyList = zbfProjectSubcontractingApplyService.list(Wrappers.<ZbfProjectSubcontractingApply>lambdaQuery()
|
||||||
|
.eq(ZbfProjectSubcontractingApply::getProjectId, projectId)
|
||||||
|
.eq(ZbfProjectSubcontractingApply::getFbsUserId, SecurityUtils.getAppUserId())
|
||||||
|
.in(ZbfProjectSubcontractingApply::getApplyStatus, SubcontractingApplyStatus.getApplyAllStatus()));
|
||||||
|
HashMap<Long, String> map = applyList.stream()
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
ZbfProjectSubcontractingApply::getSubId,
|
||||||
|
ZbfProjectSubcontractingApply::getApplyStatus,
|
||||||
|
(existing, replacement) -> replacement,
|
||||||
|
HashMap::new
|
||||||
|
));
|
||||||
|
//标段处理
|
||||||
|
List<FbsProjectSectionListVO> sectionListVO = new ArrayList<>();
|
||||||
|
//查询项目下的所有标段
|
||||||
|
List<ZbfProjectSection> sectionList = zbfProjectSectionService.list(Wrappers.<ZbfProjectSection>lambdaQuery()
|
||||||
|
.eq(ZbfProjectSection::getProjectId, projectId));
|
||||||
|
for (ZbfProjectSection zbfProjectSection : sectionList) {
|
||||||
|
//分包处理
|
||||||
|
List<FbsProjectSubcontractingListVO> subListVO = new ArrayList<>();
|
||||||
|
//查询标段下的所有的分包
|
||||||
|
List<ZbfProjectSubcontracting> subList = zbfProjectSubcontractingService.list(Wrappers.<ZbfProjectSubcontracting>lambdaQuery()
|
||||||
|
.eq(ZbfProjectSubcontracting::getSectionId, zbfProjectSection.getId()));
|
||||||
|
//排除掉未申请、已拒绝、已取消的分包
|
||||||
|
for (ZbfProjectSubcontracting sub : subList) {
|
||||||
|
String status = map.get(sub.getId());
|
||||||
|
if (StrUtil.isBlank(status)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
FbsProjectSubcontractingListVO fbsProjectSubcontractingListVO = new FbsProjectSubcontractingListVO();
|
||||||
|
BeanUtil.copyProperties(sub, fbsProjectSubcontractingListVO);
|
||||||
|
fbsProjectSubcontractingListVO.setApplyStatus(status);
|
||||||
|
subListVO.add(fbsProjectSubcontractingListVO);
|
||||||
|
}
|
||||||
|
if (CollectionUtil.isEmpty(subListVO)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
FbsProjectSectionListVO fbsProjectSectionListVO = new FbsProjectSectionListVO();
|
||||||
|
BeanUtil.copyProperties(zbfProjectSection, fbsProjectSectionListVO);
|
||||||
|
fbsProjectSectionListVO.setSubList(subListVO);
|
||||||
|
|
||||||
|
sectionListVO.add(fbsProjectSectionListVO);
|
||||||
|
}
|
||||||
|
fbsProjectDetailVO.setSectionList(sectionListVO);
|
||||||
|
return fbsProjectDetailVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FbsProjectDetailVO applyDetail(Long projectId) {
|
public FbsProjectDetailVO applyDetail(Long projectId) {
|
||||||
ZbfProject byId = getById(projectId);
|
ZbfProject byId = getById(projectId);
|
||||||
@ -419,6 +488,63 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
|||||||
return sectionListVO;
|
return sectionListVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FbsProjectTaskDetailProgressVO fbsProgress(Long projectId) {
|
||||||
|
//查询所有创建的任务
|
||||||
|
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||||
|
.eq(FbsProjectTask::getCreateId, SecurityUtils.getAppUserId())
|
||||||
|
.eq(FbsProjectTask::getProjectId, projectId)
|
||||||
|
);
|
||||||
|
FbsProjectTaskDetailProgressVO vo = new FbsProjectTaskDetailProgressVO();
|
||||||
|
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||||
|
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||||
|
List<BgtProjectTaskProgress> progressByTaskIds = bgtProjectTaskProgressService.getProgressByTaskIds(taskIds);
|
||||||
|
|
||||||
|
vo.setProgress(progressByTaskIds.stream().mapToInt(BgtProjectTaskProgress::getProgress).sum());
|
||||||
|
vo.setTotalProgress(taskList.size() * 100);
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FbsProjectTaskDetailWageVO fbsWage(Long projectId) {
|
||||||
|
FbsProjectTaskDetailWageVO vo = new FbsProjectTaskDetailWageVO();
|
||||||
|
List<ZbfProjectSubcontracting> subList = zbfProjectSubcontractingService.list(Wrappers.<ZbfProjectSubcontracting>lambdaQuery()
|
||||||
|
.eq(ZbfProjectSubcontracting::getProjectId, projectId)
|
||||||
|
.eq(ZbfProjectSubcontracting::getUserId, SecurityUtils.getAppUserId())
|
||||||
|
);
|
||||||
|
List<Long> subIds = subList.stream().map(ZbfProjectSubcontracting::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//总金额
|
||||||
|
BigDecimal totalAmount = subList.stream().map(ZbfProjectSubcontracting::getSubAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
vo.setTotalAmount(totalAmount);
|
||||||
|
|
||||||
|
//接收金额
|
||||||
|
vo.setReceiveAmount(BigDecimal.ZERO);
|
||||||
|
if(CollectionUtil.isNotEmpty(subIds)){
|
||||||
|
List<FbsWageApplication> passList= fbsWageApplicationService.getPassListBySubIds(subIds);
|
||||||
|
BigDecimal receiveAmount = passList.stream().map(FbsWageApplication::getApplicantAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
vo.setReceiveAmount(receiveAmount);
|
||||||
|
|
||||||
|
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||||
|
.in(FbsProjectTask::getSubId, subIds)
|
||||||
|
.eq(FbsProjectTask::getCreateId, SecurityUtils.getAppUserId())
|
||||||
|
);
|
||||||
|
//支付总金额
|
||||||
|
BigDecimal payTotalAmount = taskList.stream().map(FbsProjectTask::getTaskAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
vo.setPayTotalAmount(payTotalAmount);
|
||||||
|
|
||||||
|
//已支付金额
|
||||||
|
vo.setPayAmount(BigDecimal.ZERO);
|
||||||
|
if(CollectionUtil.isNotEmpty(subIds)){
|
||||||
|
List<BgtWageApplication> payList = bgtWageApplicationService.getPassListByTaskIds(subIds);
|
||||||
|
BigDecimal payAmount = payList.stream().map(BgtWageApplication::getApplicantAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
vo.setPayAmount(payAmount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean add(ZbfProjectAddDTO dto) {
|
public Boolean add(ZbfProjectAddDTO dto) {
|
||||||
|
@ -54,4 +54,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getProgressByTaskIds" resultType="com.ruoyi.bgt.domain.BgtProjectTaskProgress">
|
||||||
|
SELECT t.*
|
||||||
|
FROM bgt_project_task_progress t
|
||||||
|
JOIN (
|
||||||
|
SELECT task_id, MAX(progress) AS maxProgress
|
||||||
|
FROM bgt_project_task_progress
|
||||||
|
WHERE audit_status = '2' and task_id IN
|
||||||
|
<foreach item="taskId" collection="taskIds" open="(" separator="," close=")">
|
||||||
|
#{taskId}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY task_id
|
||||||
|
) sub ON t.task_id = sub.task_id AND t.progress = sub.maxProgress
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
bu.avatar_name
|
bu.avatar_name
|
||||||
from fbs_project_task_apply fpta
|
from fbs_project_task_apply fpta
|
||||||
left join bgt_user bu on fpta.user_id = bu.user_id
|
left join bgt_user bu on fpta.user_id = bu.user_id
|
||||||
where fpta.task_id = #{dto.taskId}
|
where fpta.task_id = #{dto.taskId} and fpta.apply_status != '3'
|
||||||
<if test="dto.applyStatus != null and dto.applyStatus != ''">
|
<if test="dto.applyStatus != null and dto.applyStatus != ''">
|
||||||
and fpta.apply_status = #{dto.applyStatus}
|
and fpta.apply_status = #{dto.applyStatus}
|
||||||
</if>
|
</if>
|
||||||
|
@ -66,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
FROM fbs_project_task_apply
|
FROM fbs_project_task_apply
|
||||||
WHERE task_id = fpt.id
|
WHERE task_id = fpt.id
|
||||||
AND user_id = #{dto.userId}
|
AND user_id = #{dto.userId}
|
||||||
|
AND apply_status in ('0','1','2')
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test='dto.myTask and dto.status != null and dto.status == "0"'>
|
<if test='dto.myTask and dto.status != null and dto.status == "0"'>
|
||||||
@ -74,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
FROM fbs_project_task_apply
|
FROM fbs_project_task_apply
|
||||||
WHERE task_id = fpt.id
|
WHERE task_id = fpt.id
|
||||||
AND user_id = #{dto.userId}
|
AND user_id = #{dto.userId}
|
||||||
|
AND apply_status in ('0','1')
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.taskName != null and dto.taskName != '' ">
|
<if test="dto.taskName != null and dto.taskName != '' ">
|
||||||
|
@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
project_img,
|
project_img,
|
||||||
project_status
|
project_status
|
||||||
FROM zbf_project zp
|
FROM zbf_project zp
|
||||||
zp.id in (select zpsa.project_id from zbf_project_subcontracting_apply zpsa where zpsa.fbs_user_id = #{dto.fbsUserId})
|
where zp.id in (select zpsa.project_id from zbf_project_subcontracting_apply zpsa where zpsa.fbs_user_id = #{dto.fbsUserId})
|
||||||
order by zp.id desc
|
order by zp.id desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user