总包方
This commit is contained in:
@ -7,15 +7,17 @@ import com.ruoyi.bgt.domain.dto.BgtProjectTaskProgressQueryDTO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtProjectTaskProgressDetailVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtProjectTaskProgressVO;
|
||||
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
|
||||
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.domain.entity.FbsUser;
|
||||
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.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.fbs.service.IFbsUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -39,7 +41,9 @@ public class AppBgtProjectTaskProgressController extends BaseController {
|
||||
|
||||
private final IBgtProjectTaskProgressService iBgtProjectTaskProgressService;
|
||||
|
||||
private final IBgtUserService iBgtUserService;
|
||||
private final IFbsUserService iFbsUserService;
|
||||
|
||||
private final IFbsProjectTaskService iFbsProjectTaskService;
|
||||
|
||||
/**
|
||||
* 查询包工头项目任务进度列表
|
||||
@ -70,9 +74,12 @@ public class AppBgtProjectTaskProgressController extends BaseController {
|
||||
@RepeatSubmit
|
||||
@PostMapping()
|
||||
public AjaxResult<Boolean> add(@Validated @RequestBody BgtProjectTaskProgressDTO dto) {
|
||||
BgtUser bgtUser = iBgtUserService.selectUserByUserId(dto.getReviewerId());
|
||||
|
||||
FbsProjectTask task = iFbsProjectTaskService.getById(dto.getTaskId());
|
||||
FbsUser fbsUser = iFbsUserService.selectUserByUserId(task.getCreateId());
|
||||
BgtProjectTaskProgress bgtProjectTaskProgress = BeanUtil.copyProperties(dto, BgtProjectTaskProgress.class);
|
||||
bgtProjectTaskProgress.setReviewerName(bgtUser.getUsername());
|
||||
bgtProjectTaskProgress.setReviewerName(fbsUser.getUsername());
|
||||
bgtProjectTaskProgress.setReviewerId(fbsUser.getUserId());
|
||||
return AjaxResult.success(iBgtProjectTaskProgressService.insert(bgtProjectTaskProgress));
|
||||
}
|
||||
|
||||
|
@ -69,28 +69,6 @@ public class AppFbsProjectController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @ApiOperation("分包商查看可报名项目详情")
|
||||
// @GetMapping("/signUp/{id}")
|
||||
// public AjaxResult<FbsProjectDetailVO> signUpDetail(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable("id") Long 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("分包商查询我的项目列表-项目切换")
|
||||
@GetMapping("/switchList")
|
||||
public TableDataInfo<FbsProjectListVO> switchList(FbsProjectListDTO dto) {
|
||||
|
@ -6,10 +6,12 @@ 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.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProgressListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectAddDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectCountVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectListVO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -18,6 +20,8 @@ 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
|
||||
*
|
||||
@ -47,11 +51,83 @@ public class AppZbfProjectController extends BaseController {
|
||||
return iZbfProjectService.queryZbfList(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("总包方查询自建项目统计")
|
||||
@ApiOperation("总包方项目统计")
|
||||
@GetMapping("/count")
|
||||
public AjaxResult<ZbfProjectCountVO> projectCount() {
|
||||
return AjaxResult.success(iZbfProjectService.projectCount());
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目列表(精简)")
|
||||
@GetMapping("/conciseList")
|
||||
public TableDataInfo<ZbfProject> conciseList(@Validated ZbfProjectListDTO dto) {
|
||||
return iZbfProjectService.conciseList(dto);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-项目信息")
|
||||
@GetMapping("/{id}")
|
||||
public AjaxResult<ZbfProjectDetailVO> zbfInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfInfo(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-项目标段信息")
|
||||
@GetMapping("/sectionInfo/{id}")
|
||||
public AjaxResult<ZbfProjectDetailSectionVO> sectionInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.sectionInfo(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-用工数量")
|
||||
@GetMapping("/personCount/{id}")
|
||||
public AjaxResult<ZbfPersonCountVO> personCount(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.personCount(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-考勤情况")
|
||||
@GetMapping("/attendanceCount/{id}")
|
||||
public AjaxResult<ZbfAttendanceCountVO> attendanceCount(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.attendanceCount(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-用工进度")
|
||||
@GetMapping("/progress")
|
||||
public AjaxResult<ZbfProjectDetailProgressVO> zbfProgress(Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfProgress(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-用工进度列表")
|
||||
@GetMapping("/progressList")
|
||||
public TableDataInfo<ZbfProgressListVO> zbfProgressList(ZbfProgressListDTO dto) {
|
||||
return iZbfProjectService.zbfProgressList(dto);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-付款情况")
|
||||
@GetMapping("/wage")
|
||||
public AjaxResult<ZbfProjectDetailWageVO> zbfWage(Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfWage(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-付款情况查看更多")
|
||||
@GetMapping("/wageList")
|
||||
public TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId) {
|
||||
return iZbfProjectService.zbfWageList(projectId);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-项目切换")
|
||||
@GetMapping("/switchList")
|
||||
public TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto) {
|
||||
return iZbfProjectService.zbfSwitchList(dto);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.ruoyi.web.controller.zbf;
|
||||
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSectionService;
|
||||
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.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 总包方项目标段Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-02-17
|
||||
*/
|
||||
@Api(value = "App总包方总包方项目标段控制器", tags = {"App总包方"})
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
@RestController
|
||||
@RequestMapping("/app/zbf/section")
|
||||
public class AppZbfProjectSectionController extends BaseController {
|
||||
|
||||
private final IZbfProjectSectionService iZbfProjectSectionService;
|
||||
|
||||
|
||||
@ApiOperation("总包方查询分包切换列表")
|
||||
@GetMapping("/zbfSubSwitchList")
|
||||
public TableDataInfo<ZbfProjectSectionListVO> zbfSubSwitchList(@Validated ZbfSubSwitchListDTO dto) {
|
||||
return iZbfProjectSectionService.zbfSubSwitchList(dto);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -4,16 +4,16 @@ 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.zbf.domain.dto.ZbfProjectSubApplyListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingApplyListVO;
|
||||
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.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
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;
|
||||
|
||||
@ -41,5 +41,10 @@ public class AppZbfProjectSubcontractingApplyController extends BaseController {
|
||||
return toAjax(iZbfProjectSubcontractingApplyService.choose(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-申请列表")
|
||||
@GetMapping("/fbsList/{subId}")
|
||||
public TableDataInfo<ZbfProjectSubcontractingApplyListVO> getFbsList(ZbfProjectSubApplyListDTO dto) {
|
||||
return iZbfProjectSubcontractingApplyService.getFbsList(dto);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.ruoyi.web.controller.zbf;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingDetailVO;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSectionService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 总包方项目分包Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-02-17
|
||||
*/
|
||||
@Api(value = "App总包方项目分包控制器", tags = {"App总包方"})
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
@RestController
|
||||
@RequestMapping("/app/zbf/subcontracting")
|
||||
public class AppZbfProjectSubcontractingController extends BaseController {
|
||||
|
||||
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;
|
||||
private final IZbfProjectSectionService iZbfProjectSectionService;
|
||||
|
||||
@ApiOperation("总包方项目分包详情-分包信息")
|
||||
@GetMapping("/info/{id}")
|
||||
public AjaxResult<ZbfProjectSubcontractingDetailVO> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
ZbfProjectSubcontracting zbfProjectSubcontracting = iZbfProjectSubcontractingService.queryById(id);
|
||||
ZbfProjectSubcontractingDetailVO vo = BeanUtil.copyProperties(zbfProjectSubcontracting, ZbfProjectSubcontractingDetailVO.class);
|
||||
vo.setSectionName(iZbfProjectSectionService.getById(vo.getSectionId()).getSectionName());
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.ruoyi.web.controller.zbf;
|
||||
|
||||
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.domain.dto.CompanyAuthenticateDTO;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.zbf.service.IZbfUserService;
|
||||
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.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* APP总包方用户Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-31
|
||||
*/
|
||||
@Api(value = "App总包方用户控制器", tags = {"App总包方"})
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
@RestController
|
||||
@RequestMapping("/app/zbf/user")
|
||||
public class AppZbfUserController extends BaseController {
|
||||
|
||||
private final IZbfUserService iZbfUserService;
|
||||
|
||||
@ApiOperation("总包方企业认证")
|
||||
@Log(title = "总包方企业认证", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping()
|
||||
public AjaxResult<Long> edit(@Validated @RequestBody CompanyAuthenticateDTO dto) {
|
||||
return AjaxResult.success(iZbfUserService.authenticate(dto));
|
||||
}
|
||||
}
|
@ -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.ZbfMessage;
|
||||
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.ZbfMessageQueryBo;
|
||||
import com.ruoyi.zbf.service.IZbfMessageService;
|
||||
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.ZbfMessageQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfMessage;
|
||||
import com.ruoyi.zbf.service.IZbfMessageService;
|
||||
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
|
@ -48,6 +48,15 @@ public class BgtWageApplicationVO {
|
||||
@ApiModelProperty("任务地址")
|
||||
private String taskAddress;
|
||||
|
||||
@ApiModelProperty("用工情况")
|
||||
private String employmentSituation;
|
||||
|
||||
@ApiModelProperty("完工情况")
|
||||
private String completionSituation;
|
||||
|
||||
@ApiModelProperty("任务情况")
|
||||
private String taskSituation;
|
||||
|
||||
@ApiModelProperty("审核状态(1审核中 2已审核 3未审核)")
|
||||
private String auditStatus;
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ public interface IBgtProjectTaskProgressService extends IServicePlus<BgtProjectT
|
||||
Boolean fbsAudit(BgtProjectTaskProgress bo);
|
||||
|
||||
/**
|
||||
* 根据任务Id查询任务最新进度-列表
|
||||
* 根据任务Id查询各个任务最新进度-列表
|
||||
*/
|
||||
List<BgtProjectTaskProgress> getProgressByTaskIds(List<Long> taskIds);
|
||||
|
||||
|
@ -3,6 +3,7 @@ package com.ruoyi.common.util;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfDayAttendanceCountVO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@ -123,4 +124,39 @@ public class DataUtil {
|
||||
Period period = Period.between(birth, now);
|
||||
return period.getYears();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------总包方-----------------------------------------------------
|
||||
|
||||
public static List<ZbfDayAttendanceCountVO> zbfFillMissingDates(List<ZbfDayAttendanceCountVO> countVOS, LocalDate startDate, LocalDate endDate) {
|
||||
// 使用 HashSet 存储已有的日期,方便快速查找
|
||||
Set<LocalDate> existingDates = new HashSet<>();
|
||||
for (ZbfDayAttendanceCountVO vo : countVOS) {
|
||||
existingDates.add(vo.getDate());
|
||||
}
|
||||
|
||||
// 创建一个新的列表,用于存储补充后的结果
|
||||
List<ZbfDayAttendanceCountVO> filledList = new ArrayList<>(countVOS);
|
||||
|
||||
// 遍历日期范围,补充缺失的日期
|
||||
LocalDate currentDate = startDate;
|
||||
while (!currentDate.isAfter(endDate)) {
|
||||
if (!existingDates.contains(currentDate)) {
|
||||
// 如果当前日期不在已有日期集合中,创建一个新的 BgtAttendanceCountVO 对象并添加到结果列表中
|
||||
filledList.add(new ZbfDayAttendanceCountVO(0,currentDate));
|
||||
}
|
||||
// 日期递增一天
|
||||
currentDate = currentDate.plusDays(1);
|
||||
}
|
||||
|
||||
// 对结果列表按日期排序
|
||||
filledList.sort(Comparator.comparing(ZbfDayAttendanceCountVO::getDate));
|
||||
|
||||
return filledList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("分包商任务进度列表试图对象")
|
||||
@ApiModel("分包商任务进度列表视图对象")
|
||||
public class FbsProgressListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
|
@ -10,7 +10,6 @@ import java.math.BigDecimal;
|
||||
@ApiModel("分包商项目分包列表")
|
||||
public class FbsProjectSubcontractingListVO {
|
||||
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@ -20,19 +19,18 @@ public class FbsProjectSubcontractingListVO {
|
||||
@ApiModelProperty("项目地址")
|
||||
private String projectAddress;
|
||||
|
||||
/** 标段ID */
|
||||
@ApiModelProperty("标段ID")
|
||||
private Long sectionId;
|
||||
/** 分包主题 */
|
||||
|
||||
@ApiModelProperty("分包主题")
|
||||
private String subName;
|
||||
/** 分包描述 */
|
||||
|
||||
@ApiModelProperty("分包描述")
|
||||
private String subDescribe;
|
||||
/** 分包金额 */
|
||||
|
||||
@ApiModelProperty("分包金额")
|
||||
private BigDecimal subAmount;
|
||||
/** 资质要求 */
|
||||
|
||||
@ApiModelProperty("资质要求")
|
||||
private String qualification;
|
||||
|
||||
|
@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("App包工头项目详情-任务进度视图对象")
|
||||
@ApiModel("App分包商项目详情-任务进度视图对象")
|
||||
public class FbsProjectTaskDetailProgressVO{
|
||||
|
||||
@ApiModelProperty("总进度")
|
||||
|
@ -17,7 +17,7 @@ import java.math.BigDecimal;
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("App包工头项目详情-结算情况视图对象")
|
||||
@ApiModel("App分包商项目详情-结算情况视图对象")
|
||||
public class FbsProjectTaskDetailWageVO {
|
||||
|
||||
@ApiModelProperty("总金额")
|
||||
|
@ -1,10 +1,11 @@
|
||||
package com.ruoyi.wgz.mapper;
|
||||
|
||||
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
|
||||
import com.ruoyi.wgz.domain.WgzAttendance;
|
||||
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
||||
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
|
||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
|
||||
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
|
||||
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
||||
import com.ruoyi.wgz.domain.WgzAttendance;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfDayAttendanceCountVO;
|
||||
import org.apache.ibatis.annotations.CacheNamespace;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -28,8 +29,13 @@ public interface WgzAttendanceMapper extends BaseMapperPlus<WgzAttendance> {
|
||||
List<BgtDayAttendanceCountVO> countDayByTaskId(@Param("taskId") Long taskId, @Param("beginDate")LocalDate beginDate
|
||||
, @Param("endDate")LocalDate endDate);
|
||||
|
||||
List<ZbfDayAttendanceCountVO> countDayByProjectId(@Param("projectId") Long projectId, @Param("beginDate")LocalDate beginDate
|
||||
, @Param("endDate")LocalDate endDate);
|
||||
|
||||
Integer dayTotalNum(@Param("taskId") Long taskId, @Param("date")LocalDate date);
|
||||
|
||||
Integer dayTotalNumByProjectId(@Param("projectId") Long projectId, @Param("date")LocalDate date);
|
||||
|
||||
Integer monthTotalNum(@Param("taskId") Long taskId, @Param("beginDate")LocalDate beginDate
|
||||
, @Param("endDate")LocalDate endDate);
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import com.ruoyi.wgz.bo.res.WgzAppCardReplacementApplicationRes;
|
||||
import com.ruoyi.wgz.bo.res.WgzAppPunchTheCalendarRecordRes;
|
||||
import com.ruoyi.wgz.bo.res.WgzAppUserClockingConditionRes;
|
||||
import com.ruoyi.wgz.domain.WgzAttendance;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfDayAttendanceCountVO;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@ -115,10 +116,20 @@ public interface IWgzAttendanceService extends IServicePlus<WgzAttendance> {
|
||||
List<BgtDayAttendanceCountVO> countDayByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate);
|
||||
|
||||
/**
|
||||
* 统计某天应打卡人数
|
||||
* 统计项目每天打卡情况
|
||||
*/
|
||||
List<ZbfDayAttendanceCountVO> countDayByProjectId(Long projectId, LocalDate beginDate, LocalDate endDate);
|
||||
|
||||
/**
|
||||
* 统计任务某天应打卡人数
|
||||
*/
|
||||
Integer dayTotalNum(Long taskId,LocalDate date);
|
||||
|
||||
/**
|
||||
* 统计项目某天应打卡人数
|
||||
*/
|
||||
Integer dayTotalNumByProjectId(Long projectId,LocalDate date);
|
||||
|
||||
Integer monthTotalNum(Long taskId,LocalDate beginDate, LocalDate endDate);
|
||||
/**
|
||||
* 总体考勤情况-统计
|
||||
|
@ -37,6 +37,7 @@ import com.ruoyi.wgz.domain.WgzReissueacard;
|
||||
import com.ruoyi.wgz.mapper.WgzAttendanceMapper;
|
||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||
import com.ruoyi.wgz.service.IWgzReissueacardService;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfDayAttendanceCountVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -459,11 +460,21 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
|
||||
return baseMapper.countDayByTaskId(taskId, beginDate, endDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ZbfDayAttendanceCountVO> countDayByProjectId(Long projectId, LocalDate beginDate, LocalDate endDate) {
|
||||
return baseMapper.countDayByProjectId(projectId, beginDate, endDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer dayTotalNum(Long taskId,LocalDate date){
|
||||
return baseMapper.dayTotalNum(taskId,date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer dayTotalNumByProjectId(Long projectId, LocalDate date) {
|
||||
return baseMapper.dayTotalNumByProjectId(projectId,date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer monthTotalNum(Long taskId,LocalDate beginDate, LocalDate endDate){
|
||||
return baseMapper.monthTotalNum(taskId,beginDate,endDate);
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("总包方任务进度列表查询对象")
|
||||
public class ZbfProgressListDTO {
|
||||
/** 分页大小 */
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
private Long projectId;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
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 ZbfProjectSubApplyListDTO {
|
||||
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("分包ID")
|
||||
@NotNull(message = "分包ID不能为空")
|
||||
private Long subId;
|
||||
|
||||
@ApiModelProperty("名字")
|
||||
private String username;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目切换列表查询条件")
|
||||
public class ZbfProjectSwitchListDTO {
|
||||
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目分包切换列表查询条件")
|
||||
public class ZbfSubSwitchListDTO {
|
||||
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("总包方用户")
|
||||
private Long zbfUserId;
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方考勤统计")
|
||||
public class ZbfAttendanceCountVO {
|
||||
|
||||
@ApiModelProperty("人员总数")
|
||||
private Integer totalCount;
|
||||
|
||||
@ApiModelProperty("到岗人数")
|
||||
private Integer reportToDutyNum;
|
||||
|
||||
@ApiModelProperty("到岗率")
|
||||
private Integer rate;
|
||||
|
||||
@ApiModelProperty("列表")
|
||||
List<ZbfDayAttendanceCountVO> countList;
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 考勤打卡对象 wgz_attendance
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel("务工者每天考勤打卡统计对象")
|
||||
public class ZbfDayAttendanceCountVO {
|
||||
|
||||
@ApiModelProperty("到岗人数")
|
||||
private Integer reportToDutyNum;
|
||||
|
||||
@ApiModelProperty("日期")
|
||||
private LocalDate date;
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方用工数量统计")
|
||||
public class ZbfPersonCountVO {
|
||||
|
||||
@ApiModelProperty("人员总数")
|
||||
private Integer totalCount;
|
||||
|
||||
@ApiModelProperty("班组长")
|
||||
private Integer bgtCount;
|
||||
|
||||
@ApiModelProperty("务工者")
|
||||
private Integer wgzCount;
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("总包方项目进度列表视图对象")
|
||||
public class ZbfProgressListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("进度")
|
||||
private Integer progress;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
private String taskName;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.ruoyi.zbf.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 ZbfProjectDetailProgressVO {
|
||||
|
||||
@ApiModelProperty("总进度")
|
||||
private Integer totalProgress = 0;
|
||||
|
||||
@ApiModelProperty("进度")
|
||||
private Integer progress = 0;
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方项目详情-标段信息")
|
||||
public class ZbfProjectDetailSectionVO {
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty("包总数")
|
||||
private Integer subNumber;
|
||||
|
||||
@ApiModelProperty("标段列表")
|
||||
private List<ZbfProjectSectionListVO> sectionList;
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方项目详情")
|
||||
public class ZbfProjectDetailVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("单位名称")
|
||||
private String unitName;
|
||||
|
||||
@ApiModelProperty("项目地址")
|
||||
private String projectAddress;
|
||||
|
||||
@ApiModelProperty("项目图片")
|
||||
private String projectImg;
|
||||
|
||||
@ApiModelProperty("项目状态(0-未开工,1-已开工,2已竣工,3已停工)")
|
||||
private String projectStatus;
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.ruoyi.zbf.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 ZbfProjectDetailWageVO {
|
||||
|
||||
@ApiModelProperty("总金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("已结算金额")
|
||||
private BigDecimal payAmount;
|
||||
|
||||
@ApiModelProperty("劳务工资")
|
||||
private BigDecimal wgzAmount;
|
||||
|
||||
|
||||
}
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目列表")
|
||||
@ApiModel("总包方项目列表")
|
||||
public class ZbfProjectListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目标段列表")
|
||||
@ApiModel("总包方项目标段列表")
|
||||
public class ZbfProjectSectionListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
|
@ -0,0 +1,40 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方项目分包申请列表")
|
||||
public class ZbfProjectSubcontractingApplyListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
private Long projectId;
|
||||
|
||||
@ApiModelProperty("标段ID")
|
||||
private Long sectionId;
|
||||
|
||||
@ApiModelProperty("分包ID")
|
||||
private Long subId;
|
||||
|
||||
@ApiModelProperty("分包商用户ID")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private Long fbsUserId;
|
||||
|
||||
@ApiModelProperty("姓名")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty("电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("电话")
|
||||
private String avatarName;
|
||||
|
||||
@ApiModelProperty("申请状态(0申请中 1已同意 2已拒绝 3 已取消)")
|
||||
private String applyStatus;
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 总包方项目分包对象 zbf_project_subcontracting
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-02-17
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("总包方项目分包详情视图对象")
|
||||
public class ZbfProjectSubcontractingDetailVO {
|
||||
|
||||
/** 主键ID */
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
private Long projectId;
|
||||
|
||||
@ApiModelProperty("标段ID")
|
||||
private Long sectionId;
|
||||
|
||||
@ApiModelProperty("标段名")
|
||||
private String sectionName;
|
||||
|
||||
@ApiModelProperty("分包主题")
|
||||
private String subName;
|
||||
|
||||
@ApiModelProperty("分包描述")
|
||||
private String subDescribe;
|
||||
|
||||
@ApiModelProperty("分包金额")
|
||||
private BigDecimal subAmount;
|
||||
|
||||
@ApiModelProperty("资质要求")
|
||||
private String qualification;
|
||||
|
||||
@ApiModelProperty("分包商用户ID")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -7,7 +8,7 @@ import lombok.Data;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目分包列表")
|
||||
@ApiModel("总包方项目分包列表")
|
||||
public class ZbfProjectSubcontractingListVO {
|
||||
|
||||
|
||||
@ -36,6 +37,10 @@ public class ZbfProjectSubcontractingListVO {
|
||||
@ApiModelProperty("资质要求")
|
||||
private String qualification;
|
||||
|
||||
@ApiModelProperty("用户Id")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("申请状态(0=申请中,1=已同意,2=已拒绝,3=已取消)")
|
||||
private String applyStatus;
|
||||
|
||||
|
@ -0,0 +1,89 @@
|
||||
package com.ruoyi.zbf.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 lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 分包商工资申请对象 fbs_wage_application
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-26
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("总包方工资申请审核视图对象")
|
||||
public class ZbfWageApplicationVO {
|
||||
|
||||
@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 projectAddress;
|
||||
|
||||
@ApiModelProperty("申请人ID")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("申请人")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty("银行")
|
||||
private String bank;
|
||||
|
||||
@ApiModelProperty("银行卡号")
|
||||
private String cardNo;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("申请金额")
|
||||
private BigDecimal applicantAmount;
|
||||
|
||||
@ApiModelProperty("申请时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime applyTime;
|
||||
|
||||
@ApiModelProperty("用工情况")
|
||||
private String employmentSituation;
|
||||
|
||||
@ApiModelProperty("完工情况")
|
||||
private String completionSituation;
|
||||
|
||||
@ApiModelProperty("任务情况")
|
||||
private String taskSituation;
|
||||
|
||||
@ApiModelProperty("审核状态(1审核中 2已审核 3未通过)")
|
||||
private String auditStatus;
|
||||
|
||||
@ApiModelProperty("审核人Id")
|
||||
private Long reviewerId;
|
||||
|
||||
@ApiModelProperty("审核人名字")
|
||||
private String reviewerName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -7,6 +7,8 @@ import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
|
||||
import com.ruoyi.fbs.domain.dto.FbsProjectSectionListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.FbsProjectSectionListVO;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO;
|
||||
import org.apache.ibatis.annotations.CacheNamespace;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -23,4 +25,7 @@ public interface ZbfProjectSectionMapper extends BaseMapperPlus<ZbfProjectSectio
|
||||
// 查询分包商已加入的项目标段
|
||||
Page<FbsProjectSectionListVO> joinSectionList(@Param("page") Page<FbsProjectSectionListDTO> page, @Param("dto") FbsProjectSectionListDTO dto);
|
||||
|
||||
// 总包方分包切换列表
|
||||
Page<ZbfProjectSectionListVO> zbfSubSwitchList(@Param("page") Page<ZbfSubSwitchListDTO> page, @Param("dto") ZbfSubSwitchListDTO dto);
|
||||
|
||||
}
|
||||
|
@ -1,9 +1,13 @@
|
||||
package com.ruoyi.zbf.mapper;
|
||||
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
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.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSubApplyListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingApplyListVO;
|
||||
import org.apache.ibatis.annotations.CacheNamespace;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 总包方项目分包申请Mapper接口
|
||||
@ -15,4 +19,7 @@ import org.apache.ibatis.annotations.CacheNamespace;
|
||||
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
|
||||
public interface ZbfProjectSubcontractingApplyMapper extends BaseMapperPlus<ZbfProjectSubcontractingApply> {
|
||||
|
||||
|
||||
//总包方获取分包商申请列表
|
||||
Page<ZbfProjectSubcontractingApplyListVO> getFbsList(@Param("page") Page<ZbfProjectSubApplyListDTO> page, @Param("dto") ZbfProjectSubApplyListDTO dto);
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ import com.ruoyi.fbs.domain.dto.FbsProjectSectionListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.FbsProjectSectionListVO;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSectionQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -61,4 +63,10 @@ public interface IZbfProjectSectionService extends IServicePlus<ZbfProjectSectio
|
||||
* 分包商查询自己的项目分包列表
|
||||
*/
|
||||
TableDataInfo<FbsProjectSectionListVO> fbsSubList(FbsProjectSectionListDTO dto) ;
|
||||
|
||||
|
||||
/**
|
||||
* 总包方分包切换列表
|
||||
*/
|
||||
TableDataInfo<ZbfProjectSectionListVO> zbfSubSwitchList(ZbfSubSwitchListDTO dto);
|
||||
}
|
||||
|
@ -8,10 +8,11 @@ import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProgressListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectAddDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectCountVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectListVO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -139,10 +140,57 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
||||
TableDataInfo<ZbfProjectListVO> queryZbfList(ZbfProjectListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方查询自建项目统计
|
||||
* 总包方项目统计
|
||||
*/
|
||||
ZbfProjectCountVO projectCount();
|
||||
|
||||
/**
|
||||
* 总包方项目列表(精简)
|
||||
*/
|
||||
TableDataInfo<ZbfProject> conciseList(ZbfProjectListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方项目信息
|
||||
*/
|
||||
ZbfProjectDetailVO zbfInfo(Long id);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-标段信息
|
||||
*/
|
||||
ZbfProjectDetailSectionVO sectionInfo(Long id);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-用工数量
|
||||
*/
|
||||
ZbfPersonCountVO personCount(Long id);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-考勤情况
|
||||
*/
|
||||
ZbfAttendanceCountVO attendanceCount(Long id);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-用工进度
|
||||
*/
|
||||
ZbfProjectDetailProgressVO zbfProgress(Long projectId);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-用工进度列表
|
||||
*/
|
||||
TableDataInfo<ZbfProgressListVO> zbfProgressList(ZbfProgressListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-付款情况
|
||||
*/
|
||||
ZbfProjectDetailWageVO zbfWage(Long projectId);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-付款情况查看更多
|
||||
*/
|
||||
TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId);
|
||||
/**
|
||||
* 总包方项目详情-项目切换
|
||||
*/
|
||||
TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto);
|
||||
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package com.ruoyi.zbf.service;
|
||||
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingApplyQueryBo;
|
||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingApplyQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSubApplyListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingApplyListVO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -57,4 +59,11 @@ public interface IZbfProjectSubcontractingApplyService extends IServicePlus<ZbfP
|
||||
* 总包方选择分包商
|
||||
*/
|
||||
Boolean choose(Long id);
|
||||
|
||||
/**
|
||||
* 总包方查看分包商申请列表
|
||||
*/
|
||||
TableDataInfo<ZbfProjectSubcontractingApplyListVO> getFbsList(ZbfProjectSubApplyListDTO dto);
|
||||
|
||||
|
||||
}
|
||||
|
@ -53,4 +53,5 @@ public interface IZbfProjectSubcontractingService extends IServicePlus<ZbfProjec
|
||||
* @return
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.ruoyi.zbf.service;
|
||||
import com.ruoyi.common.core.domain.entity.ZbfUser;
|
||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.domain.dto.CompanyAuthenticateDTO;
|
||||
import com.ruoyi.zbf.bo.ZbfUserQueryBo;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -62,4 +63,9 @@ public interface IZbfUserService extends IServicePlus<ZbfUser> {
|
||||
* 通过userId查询用户
|
||||
*/
|
||||
ZbfUser selectUserByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 企业认证
|
||||
*/
|
||||
Long authenticate(CompanyAuthenticateDTO dto);
|
||||
}
|
||||
|
@ -15,6 +15,9 @@ import com.ruoyi.fbs.domain.vo.FbsProjectSubcontractingListVO;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSectionQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingListVO;
|
||||
import com.ruoyi.zbf.mapper.ZbfProjectSectionMapper;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSectionService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||
@ -121,4 +124,31 @@ public class ZbfProjectSectionServiceImpl extends ServicePlusImpl<ZbfProjectSect
|
||||
|
||||
return PageUtils.buildDataInfo(queryVOPage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfProjectSectionListVO> zbfSubSwitchList(ZbfSubSwitchListDTO dto) {
|
||||
Page<ZbfSubSwitchListDTO> queryDTOPage = new Page<>();
|
||||
queryDTOPage.setCurrent(dto.getPageNum());
|
||||
queryDTOPage.setSize(dto.getPageSize());
|
||||
dto.setZbfUserId(SecurityUtils.getAppUserId());
|
||||
Page<ZbfProjectSectionListVO> queryVOPage = baseMapper.zbfSubSwitchList(queryDTOPage, dto);
|
||||
for (ZbfProjectSectionListVO sectionListVO : queryVOPage.getRecords()){
|
||||
//分包处理
|
||||
List<ZbfProjectSubcontractingListVO> subListVO = new ArrayList<>();
|
||||
//查询标段下的所有的分包
|
||||
List<ZbfProjectSubcontracting> subList = zbfProjectSubcontractingService.list(Wrappers.<ZbfProjectSubcontracting>lambdaQuery()
|
||||
.eq(ZbfProjectSubcontracting::getSectionId, sectionListVO.getId())
|
||||
);
|
||||
|
||||
for (ZbfProjectSubcontracting sub : subList){
|
||||
ZbfProjectSubcontractingListVO zbfProjectSubcontractingListVO = new ZbfProjectSubcontractingListVO();
|
||||
BeanUtil.copyProperties(sub, zbfProjectSubcontractingListVO);
|
||||
zbfProjectSubcontractingListVO.setProjectAddress(sectionListVO.getProjectAddress());
|
||||
subListVO.add(zbfProjectSubcontractingListVO);
|
||||
}
|
||||
sectionListVO.setSubList(subListVO);
|
||||
|
||||
}
|
||||
return PageUtils.buildDataInfo(queryVOPage);
|
||||
}
|
||||
}
|
||||
|
@ -6,14 +6,18 @@ import cn.hutool.core.util.StrUtil;
|
||||
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.service.IBgtProjectRecruitApplyService;
|
||||
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.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.ProjectStatus;
|
||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||
import com.ruoyi.common.enums.SubcontractingApplyStatus;
|
||||
import com.ruoyi.common.util.DataUtil;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||
@ -23,19 +27,14 @@ import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectAddDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSectionAddDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSubcontractingAddDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectCountVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectListVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingListVO;
|
||||
import com.ruoyi.zbf.domain.dto.*;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
import com.ruoyi.zbf.mapper.ZbfProjectMapper;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSectionService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
@ -46,6 +45,8 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -72,6 +73,11 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
private IFbsWageApplicationService fbsWageApplicationService;
|
||||
@Autowired
|
||||
private IBgtWageApplicationService bgtWageApplicationService;
|
||||
@Autowired
|
||||
private IBgtProjectRecruitApplyService bgtProjectRecruitApplyService;
|
||||
@Autowired
|
||||
private IWgzAttendanceService wgzAttendanceService;
|
||||
|
||||
|
||||
@Override
|
||||
public ZbfProject queryById(Long id) {
|
||||
@ -632,9 +638,161 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
List<ZbfProject> list = list(wrapper);
|
||||
zbfProjectCountVO.setAllCount(list.size());
|
||||
long startCount = list.stream().filter(zbfProject -> StrUtil.equals(zbfProject.getProjectStatus(), ProjectStatus.START.getCode())).count();
|
||||
long completeCcount = list.stream().filter(zbfProject -> StrUtil.equals(zbfProject.getProjectStatus(), ProjectStatus.COMPLETE.getCode())).count();
|
||||
long completeCount = list.stream().filter(zbfProject -> StrUtil.equals(zbfProject.getProjectStatus(), ProjectStatus.COMPLETE.getCode())).count();
|
||||
zbfProjectCountVO.setStartCount((int) startCount);
|
||||
zbfProjectCountVO.setCompleteCount((int) completeCcount);
|
||||
zbfProjectCountVO.setCompleteCount((int) completeCount);
|
||||
return zbfProjectCountVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfProject> conciseList(ZbfProjectListDTO dto) {
|
||||
LambdaQueryWrapper<ZbfProject> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ZbfProject::getUserId, SecurityUtils.getAppUserId());
|
||||
wrapper.like(StrUtil.isNotBlank(dto.getProjectName()), ZbfProject::getProjectName, dto.getProjectName());
|
||||
wrapper.eq(StrUtil.isNotBlank(dto.getProjectStatus()), ZbfProject::getProjectStatus, dto.getProjectStatus());
|
||||
Page<ZbfProject> result = page(PageUtils.buildPage(), wrapper);
|
||||
return PageUtils.buildDataInfo(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProjectDetailVO zbfInfo(Long id) {
|
||||
ZbfProject project = getById(id);
|
||||
return BeanUtil.copyProperties(project, ZbfProjectDetailVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProjectDetailSectionVO sectionInfo(Long id) {
|
||||
ZbfProjectDetailSectionVO zbfProjectDetailSectionVO = new ZbfProjectDetailSectionVO();
|
||||
//标段处理
|
||||
List<ZbfProjectSectionListVO> sectionListVO = new ArrayList<>();
|
||||
int subNumber = 0;
|
||||
//查询项目下的所有标段
|
||||
List<ZbfProjectSection> sectionList = zbfProjectSectionService.list(Wrappers.<ZbfProjectSection>lambdaQuery()
|
||||
.eq(ZbfProjectSection::getProjectId, id));
|
||||
for (ZbfProjectSection zbfProjectSection : sectionList) {
|
||||
//查询标段下的所有的分包
|
||||
List<ZbfProjectSubcontracting> subList = zbfProjectSubcontractingService.list(Wrappers.<ZbfProjectSubcontracting>lambdaQuery()
|
||||
.eq(ZbfProjectSubcontracting::getSectionId, zbfProjectSection.getId()));
|
||||
ZbfProjectSectionListVO zbfProjectSectionListVO = new ZbfProjectSectionListVO();
|
||||
BeanUtil.copyProperties(zbfProjectSection, zbfProjectSectionListVO);
|
||||
zbfProjectSectionListVO.setSubList(BeanUtil.copyToList(subList, ZbfProjectSubcontractingListVO.class));
|
||||
subNumber += subList.size();
|
||||
sectionListVO.add(zbfProjectSectionListVO);
|
||||
}
|
||||
zbfProjectDetailSectionVO.setSectionList(sectionListVO);
|
||||
zbfProjectDetailSectionVO.setSubNumber(subNumber);
|
||||
return zbfProjectDetailSectionVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfPersonCountVO personCount(Long id) {
|
||||
ZbfPersonCountVO zbfPersonCountVO = new ZbfPersonCountVO();
|
||||
List<FbsProjectTask> list = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, id)
|
||||
.isNotNull(FbsProjectTask::getUserId)
|
||||
);
|
||||
zbfPersonCountVO.setBgtCount(list.size());
|
||||
List<Long> taskIds = list.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
zbfPersonCountVO.setWgzCount(0);
|
||||
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||
//任务下的招工
|
||||
List<BgtProjectRecruitApply> recruitApplyList = bgtProjectRecruitApplyService.list(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
|
||||
.in(BgtProjectRecruitApply::getTaskId, taskIds)
|
||||
.in(BgtProjectRecruitApply::getStatus, RecruitApplyStatus.getWorkStatus())
|
||||
);
|
||||
zbfPersonCountVO.setWgzCount(recruitApplyList.size());
|
||||
}
|
||||
zbfPersonCountVO.setTotalCount(zbfPersonCountVO.getBgtCount()+zbfPersonCountVO.getWgzCount());
|
||||
return zbfPersonCountVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfAttendanceCountVO attendanceCount(Long id) {
|
||||
ZbfAttendanceCountVO vo = new ZbfAttendanceCountVO();
|
||||
LocalDate now = LocalDate.now();
|
||||
LocalDate previousDate = now.minusDays(7);
|
||||
List<ZbfDayAttendanceCountVO> zbfDayAttendanceCountVOS = wgzAttendanceService.countDayByProjectId(id, previousDate, now);
|
||||
List<ZbfDayAttendanceCountVO> countList = DataUtil.zbfFillMissingDates(zbfDayAttendanceCountVOS, previousDate, now);
|
||||
ZbfDayAttendanceCountVO zbfDayAttendanceCountVO = countList.get(countList.size() - 1);
|
||||
vo.setReportToDutyNum(zbfDayAttendanceCountVO.getReportToDutyNum());
|
||||
vo.setCountList(countList);
|
||||
Integer total = wgzAttendanceService.dayTotalNumByProjectId(id, now);
|
||||
vo.setTotalCount(total);
|
||||
vo.setRate(0);
|
||||
if(total!=null && total>0){
|
||||
int rate = new BigDecimal(vo.getReportToDutyNum()).divide(new BigDecimal(total), 2, RoundingMode.HALF_UP)
|
||||
.multiply(new BigDecimal(100)).intValue();
|
||||
vo.setRate(rate);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProjectDetailProgressVO zbfProgress(Long projectId) {
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, projectId)
|
||||
);
|
||||
ZbfProjectDetailProgressVO vo = new ZbfProjectDetailProgressVO();
|
||||
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 TableDataInfo<ZbfProgressListVO> zbfProgressList(ZbfProgressListDTO dto) {
|
||||
Page<ZbfProgressListVO> voPage = new Page<>();
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, dto)
|
||||
);
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||
TableDataInfo<BgtProjectTaskProgress> progressByTaskIds = bgtProjectTaskProgressService.getProgressByTaskIds(dto.getPageSize(), dto.getPageNum(), taskIds);
|
||||
voPage.setTotal(progressByTaskIds.getTotal());
|
||||
voPage.setRecords(BeanUtil.copyToList(progressByTaskIds.getRows(), ZbfProgressListVO.class));
|
||||
}
|
||||
return PageUtils.buildDataInfo(voPage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProjectDetailWageVO zbfWage(Long projectId) {
|
||||
ZbfProjectDetailWageVO vo = new ZbfProjectDetailWageVO();
|
||||
List<ZbfProjectSubcontracting> subList = zbfProjectSubcontractingService.list(Wrappers.<ZbfProjectSubcontracting>lambdaQuery()
|
||||
.eq(ZbfProjectSubcontracting::getProjectId, projectId)
|
||||
);
|
||||
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.setPayAmount(BigDecimal.ZERO);
|
||||
if(CollectionUtil.isNotEmpty(subIds)){
|
||||
List<FbsWageApplication> passList= fbsWageApplicationService.getPassListBySubIds(subIds);
|
||||
BigDecimal payAmount = passList.stream().map(FbsWageApplication::getApplicantAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setPayAmount(payAmount);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto) {
|
||||
LambdaQueryWrapper<ZbfProject> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ZbfProject::getUserId, SecurityUtils.getAppUserId());
|
||||
wrapper.like(StrUtil.isNotBlank(dto.getProjectName()), ZbfProject::getProjectName, dto.getProjectName());
|
||||
Page<ZbfProject> result = page(PageUtils.buildPage(), wrapper);
|
||||
return PageUtils.buildDataInfo(result);
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ import com.ruoyi.zbf.domain.ZbfMessage;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontractingApply;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProjectSubApplyListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingApplyListVO;
|
||||
import com.ruoyi.zbf.mapper.ZbfProjectSubcontractingApplyMapper;
|
||||
import com.ruoyi.zbf.service.IZbfMessageService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
@ -231,4 +233,13 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl<Zb
|
||||
// fbsMessageService.operationBatch(USERTYPE_FBS,SecurityUtils.getAppUserId(),list.stream().map(FbsProjectTaskApply::getId).collect(Collectors.toList()),SqlHelper.table(FbsProjectTaskApply.class).getTableName());
|
||||
return super.updateBatchById(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfProjectSubcontractingApplyListVO> getFbsList(ZbfProjectSubApplyListDTO dto) {
|
||||
Page<ZbfProjectSubApplyListDTO> queryDTOPage = new Page<>();
|
||||
queryDTOPage.setCurrent(dto.getPageNum());
|
||||
queryDTOPage.setSize(dto.getPageSize());
|
||||
Page<ZbfProjectSubcontractingApplyListVO> fbsList = baseMapper.getFbsList(queryDTOPage, dto);
|
||||
return PageUtils.buildDataInfo(fbsList);
|
||||
}
|
||||
}
|
||||
|
@ -8,10 +8,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.domain.entity.ZbfUser;
|
||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.domain.Company;
|
||||
import com.ruoyi.common.domain.dto.CompanyAuthenticateDTO;
|
||||
import com.ruoyi.common.service.ICompanyService;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.zbf.bo.ZbfUserQueryBo;
|
||||
import com.ruoyi.zbf.mapper.ZbfUserMapper;
|
||||
import com.ruoyi.zbf.service.IZbfUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -27,6 +32,9 @@ import java.util.Map;
|
||||
@Service
|
||||
public class ZbfUserServiceImpl extends ServicePlusImpl<ZbfUserMapper, ZbfUser> implements IZbfUserService {
|
||||
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
|
||||
@Override
|
||||
public ZbfUser queryById(Long id){
|
||||
return getById(id);
|
||||
@ -107,4 +115,14 @@ public class ZbfUserServiceImpl extends ServicePlusImpl<ZbfUserMapper, ZbfUser>
|
||||
public ZbfUser selectUserByUserId(Long userId) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<ZbfUser>().eq(ZbfUser::getUserId, userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long authenticate(CompanyAuthenticateDTO dto) {
|
||||
Company company = BeanUtil.copyProperties(dto, Company.class);
|
||||
companyService.save(company);
|
||||
ZbfUser zbfUser = selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
zbfUser.setCompanyId(company.getId());
|
||||
updateById(zbfUser);
|
||||
return company.getId();
|
||||
}
|
||||
}
|
||||
|
@ -288,7 +288,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
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 = bpr.task_id
|
||||
left join fbs_project_task fpt on fpt.id = bpra.task_id
|
||||
<where>
|
||||
<if test="dto.username !=null and dto.username !='' ">
|
||||
and wu.username like concat('%', #{dto.username}, '%')
|
||||
@ -303,7 +303,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND bpra.status in ('5','6')
|
||||
</if>
|
||||
</where>
|
||||
order by bpra.create_time desc
|
||||
order by bpra.id desc
|
||||
</select>
|
||||
|
||||
|
||||
|
@ -82,7 +82,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
bwa.id,
|
||||
bwa.username,
|
||||
bwa.project_name,
|
||||
bwa.audit_status
|
||||
bwa.audit_status,
|
||||
bwa.employment_situation,
|
||||
bwa.completion_situation,
|
||||
bwa.task_situation
|
||||
from bgt_wage_application bwa
|
||||
<where>
|
||||
<if test="dto.reviewerId != null ">
|
||||
|
@ -52,12 +52,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
group by date order by date
|
||||
</select>
|
||||
|
||||
<select id="countDayByProjectId" resultType="com.ruoyi.zbf.domain.vo.ZbfDayAttendanceCountVO">
|
||||
select count(1) as reportToDutyNum,
|
||||
date
|
||||
from wgz_attendance
|
||||
where date between #{beginDate} and #{endDate}
|
||||
and (clock_in_time is not null or clock_out_time is not null)
|
||||
and recruit_id in (select id from bgt_project_recruit where project_id = #{projectId} )
|
||||
group by date order by date
|
||||
</select>
|
||||
|
||||
|
||||
<select id="dayTotalNum" resultType="Integer">
|
||||
select count(1) from bgt_project_recruit_apply where entry_time <= #{date} and ((leave_time is null and status = '5')or leave_time>=#{date})
|
||||
and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} )
|
||||
</select>
|
||||
|
||||
<select id="dayTotalNumByProjectId" resultType="Integer">
|
||||
select count(1) from bgt_project_recruit_apply where entry_time <= #{date} and ((leave_time is null and status = '5')or leave_time>=#{date})
|
||||
and recruit_id in (select id from bgt_project_recruit where project_id = #{projectId} )
|
||||
</select>
|
||||
|
||||
<select id="monthTotalNum" resultType="Integer">
|
||||
select count(1)
|
||||
from bgt_project_recruit_apply
|
||||
|
@ -31,4 +31,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
</select>
|
||||
|
||||
<select id="zbfSubSwitchList" resultType="com.ruoyi.zbf.domain.vo.ZbfProjectSectionListVO">
|
||||
SELECT zps.id,zps.project_id,zps.section_name
|
||||
FROM zbf_project_section zps
|
||||
left JOIN zbf_project zp ON zps.project_id = zp.id
|
||||
WHERE zp.user_id = #{dto.zbfUserId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
@ -19,5 +19,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="remark" column="remark"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="getFbsList" resultType="com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingApplyListVO">
|
||||
select zpsa.id,
|
||||
zpsa.project_id,
|
||||
zpsa.section_id,
|
||||
zpsa.sub_id,
|
||||
zpsa.fbs_user_id,
|
||||
zpsa.apply_status,
|
||||
fu.username,
|
||||
fu.phone,
|
||||
fu.avatar_name
|
||||
from zbf_project_subcontracting_apply zpsa left join fbs_user fu on zpsa.fbs_user_id = fu.user_id
|
||||
where zpsa.sub_id = #{dto.subId}
|
||||
<if test="dto.username != null and dto.username != ''">
|
||||
and fu.username like concat('%', #{dto.username}, '%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Reference in New Issue
Block a user