From 069529f78c68a3d27b4dcd54b205629f48e341e9 Mon Sep 17 00:00:00 2001 From: zt Date: Tue, 8 Apr 2025 10:41:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=BB=E5=8C=85=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppBgtProjectTaskProgressController.java | 17 +- .../fbs/AppFbsProjectController.java | 22 --- .../zbf/AppZbfProjectController.java | 82 +++++++- .../zbf/AppZbfProjectSectionController.java | 39 ++++ ...fProjectSubcontractingApplyController.java | 13 +- ...AppZbfProjectSubcontractingController.java | 48 +++++ .../controller/zbf/AppZbfUserController.java | 41 ++++ .../controller/zbf}/ZbfMessageController.java | 33 ++-- .../bgt/domain/vo/BgtWageApplicationVO.java | 9 + .../IBgtProjectTaskProgressService.java | 2 +- .../java/com/ruoyi/common/util/DataUtil.java | 36 ++++ .../fbs/domain/vo/FbsProgressListVO.java | 2 +- .../vo/FbsProjectSubcontractingListVO.java | 10 +- .../vo/FbsProjectTaskDetailProgressVO.java | 2 +- .../domain/vo/FbsProjectTaskDetailWageVO.java | 2 +- .../ruoyi/wgz/mapper/WgzAttendanceMapper.java | 14 +- .../wgz/service/IWgzAttendanceService.java | 13 +- .../impl/WgzAttendanceServiceImpl.java | 11 ++ .../zbf/domain/dto/ZbfProgressListDTO.java | 21 +++ .../domain/dto/ZbfProjectSubApplyListDTO.java | 25 +++ .../domain/dto/ZbfProjectSwitchListDTO.java | 19 ++ .../zbf/domain/dto/ZbfSubSwitchListDTO.java | 19 ++ .../zbf/domain/vo/ZbfAttendanceCountVO.java | 26 +++ .../domain/vo/ZbfDayAttendanceCountVO.java | 33 ++++ .../ruoyi/zbf/domain/vo/ZbfPersonCountVO.java | 23 +++ .../zbf/domain/vo/ZbfProgressListVO.java | 21 +++ .../domain/vo/ZbfProjectDetailProgressVO.java | 27 +++ .../domain/vo/ZbfProjectDetailSectionVO.java | 21 +++ .../zbf/domain/vo/ZbfProjectDetailVO.java | 29 +++ .../zbf/domain/vo/ZbfProjectDetailWageVO.java | 33 ++++ .../ruoyi/zbf/domain/vo/ZbfProjectListVO.java | 2 +- .../domain/vo/ZbfProjectSectionListVO.java | 2 +- .../ZbfProjectSubcontractingApplyListVO.java | 40 ++++ .../vo/ZbfProjectSubcontractingDetailVO.java | 53 ++++++ .../vo/ZbfProjectSubcontractingListVO.java | 7 +- .../zbf/domain/vo/ZbfWageApplicationVO.java | 89 +++++++++ .../zbf/mapper/ZbfProjectSectionMapper.java | 5 + .../ZbfProjectSubcontractingApplyMapper.java | 11 +- .../service/IZbfProjectSectionService.java | 8 + .../ruoyi/zbf/service/IZbfProjectService.java | 54 +++++- ...IZbfProjectSubcontractingApplyService.java | 13 +- .../IZbfProjectSubcontractingService.java | 1 + .../ruoyi/zbf/service/IZbfUserService.java | 6 + .../impl/ZbfProjectSectionServiceImpl.java | 30 +++ .../service/impl/ZbfProjectServiceImpl.java | 178 +++++++++++++++++- ...ProjectSubcontractingApplyServiceImpl.java | 11 ++ .../zbf/service/impl/ZbfUserServiceImpl.java | 18 ++ .../bgt/BgtProjectRecruitApplyMapper.xml | 4 +- .../mapper/bgt/BgtWageApplicationMapper.xml | 5 +- .../mapper/wgz/WgzAttendanceMapper.xml | 15 ++ .../mapper/zbf/ZbfProjectSectionMapper.xml | 7 + .../ZbfProjectSubcontractingApplyMapper.xml | 16 ++ 52 files changed, 1180 insertions(+), 88 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSectionController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfUserController.java rename {ruoyi-system/src/main/java/com/ruoyi/zbf/controller => ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf}/ZbfMessageController.java (96%) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProgressListDTO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubApplyListDTO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSwitchListDTO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfSubSwitchListDTO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfAttendanceCountVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfDayAttendanceCountVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfPersonCountVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProgressListVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailProgressVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailSectionVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailWageVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingApplyListVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfWageApplicationVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectTaskProgressController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectTaskProgressController.java index 4f519fb..4a71a04 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectTaskProgressController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectTaskProgressController.java @@ -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 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)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectController.java index 6c0f0f4..ca7e1b6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectController.java @@ -69,28 +69,6 @@ public class AppFbsProjectController extends BaseController { } } - -// @ApiOperation("分包商查看可报名项目详情") -// @GetMapping("/signUp/{id}") -// public AjaxResult signUpDetail(@NotNull(message = "主键不能为空") -// @PathVariable("id") Long id) { -// return AjaxResult.success(zbfProjectService.signUpDetail(id)); -// } -// -// @ApiOperation("分包商查看已申请项目详情") -// @GetMapping("/apply/{id}") -// public AjaxResult applyDetail(@NotNull(message = "主键不能为空") -// @PathVariable("id") Long id) { -// return AjaxResult.success(zbfProjectService.applyDetail(id)); -// } -// -// @ApiOperation("分包商查看已加入或已竣工项目详情") -// @GetMapping("/joinOrComplete/{id}") -// public AjaxResult joinOrCompleteDetail(@NotNull(message = "主键不能为空") -// @PathVariable("id") Long id) { -// return AjaxResult.success(zbfProjectService.joinOrCompleteDetail(id)); -// } - @ApiOperation("分包商查询我的项目列表-项目切换") @GetMapping("/switchList") public TableDataInfo switchList(FbsProjectListDTO dto) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java index d8374d2..c6da22d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java @@ -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 projectCount() { return AjaxResult.success(iZbfProjectService.projectCount()); } + @ApiOperation("总包方项目列表(精简)") + @GetMapping("/conciseList") + public TableDataInfo conciseList(@Validated ZbfProjectListDTO dto) { + return iZbfProjectService.conciseList(dto); + } + + + @ApiOperation("总包方项目详情-项目信息") + @GetMapping("/{id}") + public AjaxResult zbfInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return AjaxResult.success(iZbfProjectService.zbfInfo(id)); + } + + @ApiOperation("总包方项目详情-项目标段信息") + @GetMapping("/sectionInfo/{id}") + public AjaxResult sectionInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return AjaxResult.success(iZbfProjectService.sectionInfo(id)); + } + + @ApiOperation("总包方项目详情-用工数量") + @GetMapping("/personCount/{id}") + public AjaxResult personCount(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return AjaxResult.success(iZbfProjectService.personCount(id)); + } + + @ApiOperation("总包方项目详情-考勤情况") + @GetMapping("/attendanceCount/{id}") + public AjaxResult attendanceCount(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return AjaxResult.success(iZbfProjectService.attendanceCount(id)); + } + + @ApiOperation("总包方项目详情-用工进度") + @GetMapping("/progress") + public AjaxResult zbfProgress(Long projectId) { + return AjaxResult.success(iZbfProjectService.zbfProgress(projectId)); + } + + @ApiOperation("总包方项目详情-用工进度列表") + @GetMapping("/progressList") + public TableDataInfo zbfProgressList(ZbfProgressListDTO dto) { + return iZbfProjectService.zbfProgressList(dto); + } + + + @ApiOperation("总包方项目详情-付款情况") + @GetMapping("/wage") + public AjaxResult zbfWage(Long projectId) { + return AjaxResult.success(iZbfProjectService.zbfWage(projectId)); + } + + @ApiOperation("总包方项目详情-付款情况查看更多") + @GetMapping("/wageList") + public TableDataInfo zbfWageList(Long projectId) { + return iZbfProjectService.zbfWageList(projectId); + } + + + @ApiOperation("总包方项目详情-项目切换") + @GetMapping("/switchList") + public TableDataInfo zbfSwitchList(ZbfProjectSwitchListDTO dto) { + return iZbfProjectService.zbfSwitchList(dto); + } + + + + + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSectionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSectionController.java new file mode 100644 index 0000000..06259d4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSectionController.java @@ -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 zbfSubSwitchList(@Validated ZbfSubSwitchListDTO dto) { + return iZbfProjectSectionService.zbfSubSwitchList(dto); + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingApplyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingApplyController.java index 1ea208d..236fe58 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingApplyController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingApplyController.java @@ -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 getFbsList(ZbfProjectSubApplyListDTO dto) { + return iZbfProjectSubcontractingApplyService.getFbsList(dto); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingController.java new file mode 100644 index 0000000..e70ba33 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectSubcontractingController.java @@ -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 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); + } + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfUserController.java new file mode 100644 index 0000000..651be92 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfUserController.java @@ -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 edit(@Validated @RequestBody CompanyAuthenticateDTO dto) { + return AjaxResult.success(iZbfUserService.authenticate(dto)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/controller/ZbfMessageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/ZbfMessageController.java similarity index 96% rename from ruoyi-system/src/main/java/com/ruoyi/zbf/controller/ZbfMessageController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/ZbfMessageController.java index 1372f33..aa9a68c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/controller/ZbfMessageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/ZbfMessageController.java @@ -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 diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtWageApplicationVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtWageApplicationVO.java index 59163db..bbb948f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtWageApplicationVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtWageApplicationVO.java @@ -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; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectTaskProgressService.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectTaskProgressService.java index 98c0389..bbf9e47 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectTaskProgressService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectTaskProgressService.java @@ -76,7 +76,7 @@ public interface IBgtProjectTaskProgressService extends IServicePlus getProgressByTaskIds(List taskIds); diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/util/DataUtil.java b/ruoyi-system/src/main/java/com/ruoyi/common/util/DataUtil.java index d2e493f..00325fc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/util/DataUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/util/DataUtil.java @@ -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 zbfFillMissingDates(List countVOS, LocalDate startDate, LocalDate endDate) { + // 使用 HashSet 存储已有的日期,方便快速查找 + Set existingDates = new HashSet<>(); + for (ZbfDayAttendanceCountVO vo : countVOS) { + existingDates.add(vo.getDate()); + } + + // 创建一个新的列表,用于存储补充后的结果 + List 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; + } + + + + + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProgressListVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProgressListVO.java index ab69101..910d670 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProgressListVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProgressListVO.java @@ -7,7 +7,7 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) -@ApiModel("分包商任务进度列表试图对象") +@ApiModel("分包商任务进度列表视图对象") public class FbsProgressListVO { @ApiModelProperty("主键ID") diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectSubcontractingListVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectSubcontractingListVO.java index 14e5821..742bc2b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectSubcontractingListVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectSubcontractingListVO.java @@ -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; diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailProgressVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailProgressVO.java index 64ecf70..c8feb09 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailProgressVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailProgressVO.java @@ -15,7 +15,7 @@ import lombok.experimental.Accessors; @Data @NoArgsConstructor @Accessors(chain = true) -@ApiModel("App包工头项目详情-任务进度视图对象") +@ApiModel("App分包商项目详情-任务进度视图对象") public class FbsProjectTaskDetailProgressVO{ @ApiModelProperty("总进度") diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailWageVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailWageVO.java index 5b446ad..d5cb115 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailWageVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/FbsProjectTaskDetailWageVO.java @@ -17,7 +17,7 @@ import java.math.BigDecimal; @Data @NoArgsConstructor @Accessors(chain = true) -@ApiModel("App包工头项目详情-结算情况视图对象") +@ApiModel("App分包商项目详情-结算情况视图对象") public class FbsProjectTaskDetailWageVO { @ApiModelProperty("总金额") diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java index b8e1ed4..ef8139e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java @@ -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 { List countDayByTaskId(@Param("taskId") Long taskId, @Param("beginDate")LocalDate beginDate , @Param("endDate")LocalDate endDate); + List 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); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java index 3adfa8e..4a7b8b9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java @@ -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 { List countDayByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate); /** - * 统计某天应打卡人数 + * 统计项目每天打卡情况 + */ + List 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); /** * 总体考勤情况-统计 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java index 9fc98a3..ac6aa1c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java @@ -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 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); diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProgressListDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProgressListDTO.java new file mode 100644 index 0000000..2e81df6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProgressListDTO.java @@ -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; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubApplyListDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubApplyListDTO.java new file mode 100644 index 0000000..18b9aa5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubApplyListDTO.java @@ -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; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSwitchListDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSwitchListDTO.java new file mode 100644 index 0000000..906b9e3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSwitchListDTO.java @@ -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; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfSubSwitchListDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfSubSwitchListDTO.java new file mode 100644 index 0000000..7dd7f93 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfSubSwitchListDTO.java @@ -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; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfAttendanceCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfAttendanceCountVO.java new file mode 100644 index 0000000..e0ec177 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfAttendanceCountVO.java @@ -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 countList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfDayAttendanceCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfDayAttendanceCountVO.java new file mode 100644 index 0000000..0fa12e9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfDayAttendanceCountVO.java @@ -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; + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfPersonCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfPersonCountVO.java new file mode 100644 index 0000000..745f5ec --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfPersonCountVO.java @@ -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; + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProgressListVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProgressListVO.java new file mode 100644 index 0000000..e6cc7c7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProgressListVO.java @@ -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; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailProgressVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailProgressVO.java new file mode 100644 index 0000000..2cdc265 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailProgressVO.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailSectionVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailSectionVO.java new file mode 100644 index 0000000..ffeb1b1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailSectionVO.java @@ -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 sectionList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java new file mode 100644 index 0000000..0d2e013 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailWageVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailWageVO.java new file mode 100644 index 0000000..8a814d3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailWageVO.java @@ -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; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectListVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectListVO.java index 68ebf14..3fee20b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectListVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectListVO.java @@ -7,7 +7,7 @@ import lombok.Data; import java.util.List; @Data -@ApiModel("分包商项目列表") +@ApiModel("总包方项目列表") public class ZbfProjectListVO { @ApiModelProperty("主键ID") diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSectionListVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSectionListVO.java index c0d766d..8eb6263 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSectionListVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSectionListVO.java @@ -7,7 +7,7 @@ import lombok.Data; import java.util.List; @Data -@ApiModel("分包商项目标段列表") +@ApiModel("总包方项目标段列表") public class ZbfProjectSectionListVO { @ApiModelProperty("主键ID") diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingApplyListVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingApplyListVO.java new file mode 100644 index 0000000..be47398 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingApplyListVO.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java new file mode 100644 index 0000000..9bbe003 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingListVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingListVO.java index bfd6174..aa287e0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingListVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingListVO.java @@ -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; diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfWageApplicationVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfWageApplicationVO.java new file mode 100644 index 0000000..94f0c66 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfWageApplicationVO.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSectionMapper.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSectionMapper.java index cd5ba8d..911dc6c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSectionMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSectionMapper.java @@ -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 joinSectionList(@Param("page") Page page, @Param("dto") FbsProjectSectionListDTO dto); + // 总包方分包切换列表 + Page zbfSubSwitchList(@Param("page") Page page, @Param("dto") ZbfSubSwitchListDTO dto); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSubcontractingApplyMapper.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSubcontractingApplyMapper.java index 5c59e74..56ec3ba 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSubcontractingApplyMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/mapper/ZbfProjectSubcontractingApplyMapper.java @@ -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 { + + //总包方获取分包商申请列表 + Page getFbsList(@Param("page") Page page, @Param("dto") ZbfProjectSubApplyListDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSectionService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSectionService.java index c5c4928..957c48a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSectionService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSectionService.java @@ -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 fbsSubList(FbsProjectSectionListDTO dto) ; + + + /** + * 总包方分包切换列表 + */ + TableDataInfo zbfSubSwitchList(ZbfSubSwitchListDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java index 9f50e31..b82664c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java @@ -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 { TableDataInfo queryZbfList(ZbfProjectListDTO dto); /** - * 总包方查询自建项目统计 + * 总包方项目统计 */ ZbfProjectCountVO projectCount(); + /** + * 总包方项目列表(精简) + */ + TableDataInfo conciseList(ZbfProjectListDTO dto); + /** + * 总包方项目信息 + */ + ZbfProjectDetailVO zbfInfo(Long id); + + /** + * 总包方项目详情-标段信息 + */ + ZbfProjectDetailSectionVO sectionInfo(Long id); + + /** + * 总包方项目详情-用工数量 + */ + ZbfPersonCountVO personCount(Long id); + + /** + * 总包方项目详情-考勤情况 + */ + ZbfAttendanceCountVO attendanceCount(Long id); + + /** + * 总包方项目详情-用工进度 + */ + ZbfProjectDetailProgressVO zbfProgress(Long projectId); + + /** + * 总包方项目详情-用工进度列表 + */ + TableDataInfo zbfProgressList(ZbfProgressListDTO dto); + + /** + * 总包方项目详情-付款情况 + */ + ZbfProjectDetailWageVO zbfWage(Long projectId); + + /** + * 总包方项目详情-付款情况查看更多 + */ + TableDataInfo zbfWageList(Long projectId); + /** + * 总包方项目详情-项目切换 + */ + TableDataInfo zbfSwitchList(ZbfProjectSwitchListDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java index da26f83..b114b34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java @@ -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 getFbsList(ZbfProjectSubApplyListDTO dto); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingService.java index 38d7469..80c7a0c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingService.java @@ -53,4 +53,5 @@ public interface IZbfProjectSubcontractingService extends IServicePlus ids, Boolean isValid); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfUserService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfUserService.java index a060b44..cc142ec 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfUserService.java @@ -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 { * 通过userId查询用户 */ ZbfUser selectUserByUserId(Long userId); + + /** + * 企业认证 + */ + Long authenticate(CompanyAuthenticateDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSectionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSectionServiceImpl.java index d9dbcfb..b063d16 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSectionServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSectionServiceImpl.java @@ -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 zbfSubSwitchList(ZbfSubSwitchListDTO dto) { + Page queryDTOPage = new Page<>(); + queryDTOPage.setCurrent(dto.getPageNum()); + queryDTOPage.setSize(dto.getPageSize()); + dto.setZbfUserId(SecurityUtils.getAppUserId()); + Page queryVOPage = baseMapper.zbfSubSwitchList(queryDTOPage, dto); + for (ZbfProjectSectionListVO sectionListVO : queryVOPage.getRecords()){ + //分包处理 + List subListVO = new ArrayList<>(); + //查询标段下的所有的分包 + List subList = zbfProjectSubcontractingService.list(Wrappers.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); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java index 0b25df6..406a027 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java @@ -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 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 conciseList(ZbfProjectListDTO dto) { + LambdaQueryWrapper 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 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 sectionListVO = new ArrayList<>(); + int subNumber = 0; + //查询项目下的所有标段 + List sectionList = zbfProjectSectionService.list(Wrappers.lambdaQuery() + .eq(ZbfProjectSection::getProjectId, id)); + for (ZbfProjectSection zbfProjectSection : sectionList) { + //查询标段下的所有的分包 + List subList = zbfProjectSubcontractingService.list(Wrappers.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 list = fbsProjectTaskService.list(Wrappers.lambdaQuery() + .eq(FbsProjectTask::getProjectId, id) + .isNotNull(FbsProjectTask::getUserId) + ); + zbfPersonCountVO.setBgtCount(list.size()); + List taskIds = list.stream().map(FbsProjectTask::getId).collect(Collectors.toList()); + zbfPersonCountVO.setWgzCount(0); + if(CollectionUtil.isNotEmpty(taskIds)){ + //任务下的招工 + List recruitApplyList = bgtProjectRecruitApplyService.list(Wrappers.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 zbfDayAttendanceCountVOS = wgzAttendanceService.countDayByProjectId(id, previousDate, now); + List 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 taskList = fbsProjectTaskService.list(Wrappers.lambdaQuery() + .eq(FbsProjectTask::getProjectId, projectId) + ); + ZbfProjectDetailProgressVO vo = new ZbfProjectDetailProgressVO(); + List taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(taskIds)){ + List progressByTaskIds = bgtProjectTaskProgressService.getProgressByTaskIds(taskIds); + + vo.setProgress(progressByTaskIds.stream().mapToInt(BgtProjectTaskProgress::getProgress).sum()); + vo.setTotalProgress(taskList.size() * 100); + } + return vo; + } + + @Override + public TableDataInfo zbfProgressList(ZbfProgressListDTO dto) { + Page voPage = new Page<>(); + //查询所有创建的任务 + List taskList = fbsProjectTaskService.list(Wrappers.lambdaQuery() + .eq(FbsProjectTask::getProjectId, dto) + ); + List taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(taskIds)){ + TableDataInfo 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 subList = zbfProjectSubcontractingService.list(Wrappers.lambdaQuery() + .eq(ZbfProjectSubcontracting::getProjectId, projectId) + ); + List 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 passList= fbsWageApplicationService.getPassListBySubIds(subIds); + BigDecimal payAmount = passList.stream().map(FbsWageApplication::getApplicantAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + vo.setPayAmount(payAmount); + } + return vo; + } + + @Override + public TableDataInfo zbfWageList(Long projectId) { + return null; + } + + @Override + public TableDataInfo zbfSwitchList(ZbfProjectSwitchListDTO dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ZbfProject::getUserId, SecurityUtils.getAppUserId()); + wrapper.like(StrUtil.isNotBlank(dto.getProjectName()), ZbfProject::getProjectName, dto.getProjectName()); + Page result = page(PageUtils.buildPage(), wrapper); + return PageUtils.buildDataInfo(result); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java index 07cb1a7..b343349 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java @@ -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 getFbsList(ZbfProjectSubApplyListDTO dto) { + Page queryDTOPage = new Page<>(); + queryDTOPage.setCurrent(dto.getPageNum()); + queryDTOPage.setSize(dto.getPageSize()); + Page fbsList = baseMapper.getFbsList(queryDTOPage, dto); + return PageUtils.buildDataInfo(fbsList); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java index 754f44b..065e340 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java @@ -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 implements IZbfUserService { + @Autowired + private ICompanyService companyService; + @Override public ZbfUser queryById(Long id){ return getById(id); @@ -107,4 +115,14 @@ public class ZbfUserServiceImpl extends ServicePlusImpl public ZbfUser selectUserByUserId(Long userId) { return baseMapper.selectOne(new LambdaQueryWrapper().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(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml index d389fd8..36e5e5e 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml @@ -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 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') - order by bpra.create_time desc + order by bpra.id desc diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml index 9d19d06..53aa6b7 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtWageApplicationMapper.xml @@ -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 diff --git a/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml b/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml index 96b4a34..c1d0513 100644 --- a/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wgz/WgzAttendanceMapper.xml @@ -52,12 +52,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by date order by date + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingApplyMapper.xml b/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingApplyMapper.xml index 97b5970..3ab583d 100644 --- a/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingApplyMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingApplyMapper.xml @@ -19,5 +19,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +