总包方
This commit is contained in:
@ -81,6 +81,18 @@ public class AppBgtProjectTaskController extends BaseController {
|
||||
return AjaxResult.success(appTaskDetailVO);
|
||||
}
|
||||
|
||||
@ApiOperation("项目任务通过申请获取基本信息")
|
||||
@GetMapping("/apply/{applyId}")
|
||||
public AjaxResult<AppTaskDetailVO> getInfoByApplyId(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("applyId") Long applyId) {
|
||||
FbsProjectTaskApply taskApply = iFbsProjectTaskApplyService.getById(applyId);
|
||||
AppTaskDetailVO appTaskDetailVO = iFbsProjectTaskService.appQueryById(taskApply.getTaskId());
|
||||
//申请状态
|
||||
appTaskDetailVO.setApplyStatus(taskApply.getApplyStatus());
|
||||
|
||||
return AjaxResult.success(appTaskDetailVO);
|
||||
}
|
||||
|
||||
@ApiOperation("项目任务详细信息-考勤")
|
||||
@GetMapping("/attendance/{id}")
|
||||
public AjaxResult<AppTaskDetailAttendanceVO> getInfoAttendance(@NotNull(message = "主键不能为空")
|
||||
|
@ -6,6 +6,7 @@ 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.fbs.domain.dto.FbsUserInfoUpdateDTO;
|
||||
import com.ruoyi.fbs.service.IFbsUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -36,8 +37,16 @@ public class AppFbsUserController extends BaseController {
|
||||
@Log(title = "分包商企业认证", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping()
|
||||
public AjaxResult<Long> edit(@Validated @RequestBody CompanyAuthenticateDTO dto) {
|
||||
public AjaxResult<Long> authenticate(@Validated @RequestBody CompanyAuthenticateDTO dto) {
|
||||
return AjaxResult.success(iFbsUserService.authenticate(dto));
|
||||
}
|
||||
|
||||
@ApiOperation("分包商更改头像")
|
||||
@Log(title = "分包商更改头像", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping("/avatar")
|
||||
public AjaxResult<Boolean> editAvatar(@Validated @RequestBody FbsUserInfoUpdateDTO dto) {
|
||||
return AjaxResult.success(iFbsUserService.editAvatar(dto.getAvatarName()));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,17 +9,19 @@ 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.ZbfUser;
|
||||
import com.ruoyi.common.core.domain.entity.FbsUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.domain.Company;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.exception.BaseException;
|
||||
import com.ruoyi.common.service.ICompanyService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageApplicationListDTO;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageAuditDTO;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageAuditListDTO;
|
||||
import com.ruoyi.fbs.service.IFbsUserService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
import com.ruoyi.zbf.service.IZbfUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -43,8 +45,8 @@ public class AppFbsWageApplicationController extends BaseController {
|
||||
|
||||
private final IFbsWageApplicationService iFbsWageApplicationService;
|
||||
private final IBgtWageApplicationService iBgtWageApplicationService;
|
||||
private final IZbfUserService iZbfUserService;
|
||||
private final IZbfProjectService iZbfProjectService;
|
||||
private final IFbsUserService iFbsUserService;
|
||||
private final ICompanyService iCompanyService;
|
||||
|
||||
@ApiOperation("分包商查询自己的工资申请列表")
|
||||
@GetMapping("/list")
|
||||
@ -59,16 +61,24 @@ public class AppFbsWageApplicationController extends BaseController {
|
||||
return AjaxResult.success(iFbsWageApplicationService.queryById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("分包商获取自己的公司信息")
|
||||
@GetMapping("/companyInfo")
|
||||
public AjaxResult<Company> getCompanyInfo() {
|
||||
FbsUser fbsUser = iFbsUserService.selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
Long id = fbsUser.getCompanyId();
|
||||
if (id == null) {
|
||||
throw new BaseException("未绑定公司");
|
||||
}
|
||||
return AjaxResult.success(iCompanyService.getById(id));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("分包商提交自己的工资申请")
|
||||
@Log(title = "分包商工资申请", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit
|
||||
@PostMapping()
|
||||
public AjaxResult<Boolean> add(@Validated @RequestBody FbsWageApplication bo) {
|
||||
ZbfProject project = iZbfProjectService.getById(bo.getProjectId());
|
||||
ZbfUser zbfUser = iZbfUserService.selectUserByUserId(project.getUserId());
|
||||
bo.setReviewerName(zbfUser.getUsername());
|
||||
bo.setReviewerId(zbfUser.getUserId());
|
||||
return AjaxResult.success(iFbsWageApplicationService.insert(bo));
|
||||
return AjaxResult.success(iFbsWageApplicationService.insertApply(bo));
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,11 +6,10 @@ import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
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.dto.ZbfProjectSwitchListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.*;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -35,6 +34,7 @@ import javax.validation.constraints.NotNull;
|
||||
public class AppZbfProjectController extends BaseController {
|
||||
|
||||
private final IZbfProjectService iZbfProjectService;
|
||||
private final IFbsWageApplicationService iFbsWageApplicationService;
|
||||
|
||||
|
||||
@ApiOperation("总包方新增项目")
|
||||
@ -65,36 +65,37 @@ public class AppZbfProjectController extends BaseController {
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-项目信息")
|
||||
@GetMapping("/{id}")
|
||||
@GetMapping("/{projectId}")
|
||||
public AjaxResult<ZbfProjectDetailVO> zbfInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfInfo(id));
|
||||
@PathVariable("projectId") Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfInfo(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-项目标段信息")
|
||||
@GetMapping("/sectionInfo/{id}")
|
||||
@GetMapping("/sectionInfo/{projectId}")
|
||||
public AjaxResult<ZbfProjectDetailSectionVO> sectionInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.sectionInfo(id));
|
||||
@PathVariable("projectId") Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.sectionInfo(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-用工数量")
|
||||
@GetMapping("/personCount/{id}")
|
||||
@GetMapping("/personCount/{projectId}")
|
||||
public AjaxResult<ZbfPersonCountVO> personCount(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.personCount(id));
|
||||
@PathVariable("projectId") Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.personCount(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-考勤情况")
|
||||
@GetMapping("/attendanceCount/{id}")
|
||||
@GetMapping("/attendanceCount/{projectId}")
|
||||
public AjaxResult<ZbfAttendanceCountVO> attendanceCount(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iZbfProjectService.attendanceCount(id));
|
||||
@PathVariable("projectId") Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.attendanceCount(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-用工进度")
|
||||
@GetMapping("/progress")
|
||||
public AjaxResult<ZbfProjectDetailProgressVO> zbfProgress(Long projectId) {
|
||||
@GetMapping("/progress/{projectId}")
|
||||
public AjaxResult<ZbfProgressVO> zbfProgress(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("projectId") Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfProgress(projectId));
|
||||
}
|
||||
|
||||
@ -106,18 +107,18 @@ public class AppZbfProjectController extends BaseController {
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-付款情况")
|
||||
@GetMapping("/wage")
|
||||
public AjaxResult<ZbfProjectDetailWageVO> zbfWage(Long projectId) {
|
||||
@GetMapping("/wage/{projectId}")
|
||||
public AjaxResult<ZbfProjectDetailWageVO> zbfWage(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("projectId")Long projectId) {
|
||||
return AjaxResult.success(iZbfProjectService.zbfWage(projectId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目详情-付款情况查看更多")
|
||||
@GetMapping("/wageList")
|
||||
public TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId) {
|
||||
return iZbfProjectService.zbfWageList(projectId);
|
||||
public TableDataInfo<FbsWageApplication> zbfWageList(ZbfWageApplicationListDTO dto) {
|
||||
return iFbsWageApplicationService.zbfWageList(dto);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("总包方项目详情-项目切换")
|
||||
@GetMapping("/switchList")
|
||||
public TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto) {
|
||||
|
@ -41,7 +41,7 @@ public class AppZbfProjectSubcontractingApplyController extends BaseController {
|
||||
return toAjax(iZbfProjectSubcontractingApplyService.choose(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-申请列表")
|
||||
@ApiOperation("总包方项目分包详情-分包商申请列表")
|
||||
@GetMapping("/fbsList/{subId}")
|
||||
public TableDataInfo<ZbfProjectSubcontractingApplyListVO> getFbsList(ZbfProjectSubApplyListDTO dto) {
|
||||
return iZbfProjectSubcontractingApplyService.getFbsList(dto);
|
||||
|
@ -3,14 +3,23 @@ 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.common.core.domain.entity.FbsUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.service.IFbsUserService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfProjectSubcontractingDetailVO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProgressListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubBgtListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfWageApplicationListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
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.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -32,9 +41,11 @@ public class AppZbfProjectSubcontractingController extends BaseController {
|
||||
|
||||
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;
|
||||
private final IZbfProjectSectionService iZbfProjectSectionService;
|
||||
private final IFbsUserService iFbsUserService;
|
||||
private final IFbsWageApplicationService iFbsWageApplicationService;
|
||||
|
||||
@ApiOperation("总包方项目分包详情-分包信息")
|
||||
@GetMapping("/info/{id}")
|
||||
@GetMapping("/{id}")
|
||||
public AjaxResult<ZbfProjectSubcontractingDetailVO> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
ZbfProjectSubcontracting zbfProjectSubcontracting = iZbfProjectSubcontractingService.queryById(id);
|
||||
@ -44,5 +55,53 @@ public class AppZbfProjectSubcontractingController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("总包方项目分包详情-分包商信息")
|
||||
@GetMapping("/fbsUser")
|
||||
public AjaxResult<FbsUser> fbsUser(Long fbsUserId) {
|
||||
return AjaxResult.success(iFbsUserService.selectUserByUserId(fbsUserId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-分包商人员总数")
|
||||
@GetMapping("/subPersonCount/{subId}")
|
||||
public AjaxResult<ZbfSubPersonCountVO> subPersonCount(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("subId") Long subId) {
|
||||
return AjaxResult.success(iZbfProjectSubcontractingService.subPersonCount(subId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-班组长列表")
|
||||
@GetMapping("/bgtList")
|
||||
public TableDataInfo<ZbfSubBgtListVO> bgtList(@Validated ZbfSubBgtListDTO dto) {
|
||||
return iZbfProjectSubcontractingService.bgtList(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-用工进度")
|
||||
@GetMapping("/progress/{subId}")
|
||||
public AjaxResult<ZbfProgressVO> zbfSubProgress(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("subId") Long subId) {
|
||||
return AjaxResult.success(iZbfProjectSubcontractingService.zbfSubProgress(subId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-用工进度列表")
|
||||
@GetMapping("/progressList")
|
||||
public TableDataInfo<ZbfProgressListVO> zbfSubProgressList(@Validated ZbfProgressListDTO dto) {
|
||||
return iZbfProjectSubcontractingService.zbfSubProgressList(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-付款情况")
|
||||
@GetMapping("/wage/{subId}")
|
||||
public AjaxResult<ZbfProjectDetailWageVO> zbfSubWage(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("subId")Long subId) {
|
||||
return AjaxResult.success(iZbfProjectSubcontractingService.zbfSubWage(subId));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方项目分包详情-付款情况查看更多")
|
||||
@GetMapping("/wageList")
|
||||
public TableDataInfo<FbsWageApplication> zbfSubWageList(ZbfWageApplicationListDTO dto) {
|
||||
return iFbsWageApplicationService.zbfWageList(dto);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,149 @@
|
||||
package com.ruoyi.web.controller.zbf;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||
import com.ruoyi.bgt.service.IBgtUserService;
|
||||
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.service.ICompanyService;
|
||||
import com.ruoyi.common.util.DataUtil;
|
||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.domain.dto.FbsTaskApplyListDTO;
|
||||
import com.ruoyi.fbs.domain.dto.FbsTaskSwitchListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.fbs.service.IFbsUserService;
|
||||
import com.ruoyi.wgz.domain.WgzUser;
|
||||
import com.ruoyi.wgz.service.IWgzUserService;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSectionService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.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.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/task")
|
||||
public class AppZbfProjectTaskController extends BaseController {
|
||||
|
||||
private final IFbsProjectTaskService iFbsProjectTaskService;
|
||||
private final IFbsProjectTaskApplyService iFbsProjectTaskApplyService;
|
||||
private final IBgtUserService iBgtUserService;
|
||||
private final IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService;
|
||||
private final IWgzUserService iWgzUserService;
|
||||
private final IZbfProjectService iZbfProjectService;
|
||||
private final IZbfProjectSectionService iZbfProjectSectionService;
|
||||
private final IZbfProjectSubcontractingService iZbfProjectSubcontractingService;
|
||||
private final IFbsUserService iFbsUserService;
|
||||
private final ICompanyService iCompanyService;
|
||||
|
||||
@ApiOperation("分包商查询任务详情-基础信息")
|
||||
@GetMapping("/base/{id}")
|
||||
public AjaxResult<AppTaskDetailVO> base(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iFbsProjectTaskService.appQueryById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询任务详情-申请列表")
|
||||
@GetMapping("/taskApplyList")
|
||||
public TableDataInfo<FbsProjectTaskApplyListVO> taskApplyList(@Validated FbsTaskApplyListDTO dto) {
|
||||
return iFbsProjectTaskApplyService.queryPageListByTaskId(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询任务详情-包工头信息")
|
||||
@GetMapping("/bgtInfo/{id}")
|
||||
public AjaxResult<BgtUser> bgtInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
FbsProjectTask task = iFbsProjectTaskService.getById(id);
|
||||
if(task!=null&&task.getUserId()!=null){
|
||||
BgtUser bgtUser = iBgtUserService.selectUserByUserId(task.getUserId());
|
||||
return AjaxResult.success(bgtUser);
|
||||
}
|
||||
return AjaxResult.success(new BgtUser());
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询任务详情-任务进度")
|
||||
@GetMapping("/progress/{id}")
|
||||
public AjaxResult<AppTaskDetailProgressVO> progress(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iFbsProjectTaskService.progress(id));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("分包商查询任务详情-工资结算审批")
|
||||
@GetMapping("/wage/{id}")
|
||||
public AjaxResult<FbsTaskDetailWageVO> fbsWage(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iFbsProjectTaskService.fbsWage(id));
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询任务详情-务工人员数量")
|
||||
@GetMapping("/wgzList")
|
||||
public TableDataInfo<BgtProjectRecruitApplyVO> fbsWgzList(@Validated BgtProjectTaskUserDTO dto) {
|
||||
return iBgtProjectRecruitApplyService.fbsTaskUserList(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询任务详情-任务切换列表")
|
||||
@GetMapping("/switchList")
|
||||
public TableDataInfo<FbsProjectTaskListVO> switchList(FbsTaskSwitchListDTO dto) {
|
||||
return iFbsProjectTaskService.switchList(dto);
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询包工头信息(点头像)")
|
||||
@GetMapping("/bgt/{userId}")
|
||||
public AjaxResult<BgtUser> bgt(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("userId") Long userId) {
|
||||
BgtUser bgtUser = iBgtUserService.selectUserByUserId(userId);
|
||||
bgtUser.setAge(DataUtil.calculateAge(bgtUser.getBirthdate()));
|
||||
return AjaxResult.success(bgtUser);
|
||||
}
|
||||
|
||||
@ApiOperation("分包商查询务工者信息")
|
||||
@GetMapping("/wgzInfo")
|
||||
public AjaxResult<FbsGetWgzUserInfoVO> getWgzUserInfo(Long userId, Long recruitApplyId) {
|
||||
WgzUser byUserId = iWgzUserService.findByUserId(userId);
|
||||
FbsGetWgzUserInfoVO vo = BeanUtil.copyProperties(byUserId, FbsGetWgzUserInfoVO.class);
|
||||
BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getById(recruitApplyId);
|
||||
vo.setWorkStatus(apply.getStatus());
|
||||
vo.setEntryTime(apply.getEntryTime());
|
||||
FbsProjectTask task = iFbsProjectTaskService.getById(apply.getTaskId());
|
||||
ZbfProject project = iZbfProjectService.getById(task.getProjectId());
|
||||
vo.setProjectName(project.getProjectName());
|
||||
ZbfProjectSection projectSection = iZbfProjectSectionService.getById(task.getSectionId());
|
||||
vo.setSectionName(projectSection.getSectionName());
|
||||
ZbfProjectSubcontracting subcontracting = iZbfProjectSubcontractingService.getById(task.getSubId());
|
||||
vo.setSubName(subcontracting.getSubName());
|
||||
FbsUser fbsUser = iFbsUserService.selectUserByUserId(subcontracting.getUserId());
|
||||
String companyName = iCompanyService.getCompanyNameById(fbsUser.getCompanyId());
|
||||
vo.setCompanyName(companyName);
|
||||
vo.setWorkerType("正式员工");
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ 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.domain.dto.ZfbUserInfoUpdateDTO;
|
||||
import com.ruoyi.zbf.service.IZbfUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -35,7 +36,15 @@ public class AppZbfUserController extends BaseController {
|
||||
@Log(title = "总包方企业认证", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping()
|
||||
public AjaxResult<Long> edit(@Validated @RequestBody CompanyAuthenticateDTO dto) {
|
||||
public AjaxResult<Long> authenticate(@Validated @RequestBody CompanyAuthenticateDTO dto) {
|
||||
return AjaxResult.success(iZbfUserService.authenticate(dto));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方更改头像")
|
||||
@Log(title = "总包方更改头像", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping("/avatar")
|
||||
public AjaxResult<Boolean> editAvatar(@Validated @RequestBody ZfbUserInfoUpdateDTO dto) {
|
||||
return AjaxResult.success(iZbfUserService.editAvatar(dto.getAvatarName()));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,53 @@
|
||||
package com.ruoyi.web.controller.zbf;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageAuditDTO;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 分包商工资申请Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-26
|
||||
*/
|
||||
@Api(value = "App总包方工资审核控制器", tags = {"App总包方"})
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
@RestController
|
||||
@RequestMapping("/app/zbf/application")
|
||||
public class AppZbfWageApplicationController extends BaseController {
|
||||
|
||||
private final IFbsWageApplicationService iFbsWageApplicationService;
|
||||
|
||||
@ApiOperation("总包方查询审核工资申请详细信息")
|
||||
@GetMapping("/audit/{id}")
|
||||
public AjaxResult<FbsWageApplication> getAuditInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(iFbsWageApplicationService.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("总包方审核分包商工资申请")
|
||||
@Log(title = "总包方审核分包商工资申请", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit
|
||||
@PutMapping("/audit")
|
||||
public AjaxResult<Boolean> audit(@Validated @RequestBody FbsWageAuditDTO dto) {
|
||||
FbsWageApplication bo = iFbsWageApplicationService.getById(dto.getId());
|
||||
BeanUtil.copyProperties(dto, bo);
|
||||
return AjaxResult.success(iFbsWageApplicationService.zbfAudit(bo));
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -62,11 +62,11 @@ public class AppUserDetailsServiceImpl implements UserDetailsService
|
||||
check(wgzUser,phone);
|
||||
userDetailsl = createLoginUser(wgzUser,Constants.WGZ);
|
||||
}else if (phone.contains(Constants.FBS)) {
|
||||
FbsUser fbsUser = fbsUserService.selectUserByPhone(phone.replace(Constants.FBS, ""));
|
||||
FbsUser fbsUser = fbsUserService.loginSelect(phone.replace(Constants.FBS, ""));
|
||||
check(fbsUser,phone);
|
||||
userDetailsl = createLoginUser(fbsUser,Constants.FBS);
|
||||
}else if (phone.contains(Constants.ZBF)) {
|
||||
ZbfUser zbfUser = zbfUserService.selectUserByPhone(phone.replace(Constants.ZBF, ""));
|
||||
ZbfUser zbfUser = zbfUserService.loginSelect(phone.replace(Constants.ZBF, ""));
|
||||
check(zbfUser,phone);
|
||||
userDetailsl = createLoginUser(zbfUser,Constants.ZBF);
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
|
||||
//判断申请金额
|
||||
List<BgtWageApplication> list = list(Wrappers.<BgtWageApplication>lambdaQuery().eq(BgtWageApplication::getTaskId, bo.getTaskId())
|
||||
.eq(BgtWageApplication::getUserId, SecurityUtils.getAppUserId())
|
||||
.eq(BgtWageApplication::getAuditStatus, AuditStatus.getUse()));
|
||||
.in(BgtWageApplication::getAuditStatus, AuditStatus.getUse()));
|
||||
//收款金额
|
||||
int taskUseAmount = list.stream()
|
||||
.map(BgtWageApplication::getApplicantAmount)
|
||||
@ -138,6 +138,7 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
|
||||
HashMap<String, String> fmp = new HashMap<>();
|
||||
fmp.put("projectName", task.getTaskName());
|
||||
fmp.put("auditor", SecurityUtils.getUsername());
|
||||
fmp.put("amount", bo.getApplicantAmount().toString());
|
||||
Map<String, String> fmap = bgtMessage(fmp, BGT_TYPE_SETTLEMENT_TO_FBS, true);
|
||||
FbsMessage fbsMessage = new FbsMessage()
|
||||
.setSenderType(USERTYPE_BGT)
|
||||
|
@ -17,7 +17,7 @@ public class BgtMessageConstant {
|
||||
public static final String BGT_SMALL_LEAVE = "3"; //小类型-请假
|
||||
public static final String BGT_SMALL_MAKE_UP = "4"; //小类型-补卡
|
||||
public static final String BGT_SMALL_REPORT_MAKE_UP = "5"; //小类型-日报补卡
|
||||
public static final String BGT_SMALL_PROGRESS = "5"; //小类型-任务进度
|
||||
public static final String BGT_SMALL_PROGRESS = "6"; //小类型-任务进度
|
||||
|
||||
public static final List<String> AUDIT_TYPE = Arrays.asList("2", "3", "4", "5");
|
||||
/**
|
||||
|
@ -11,7 +11,7 @@ import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
|
||||
public class FbsMessageConstant {
|
||||
// 公共常量
|
||||
|
||||
public static final String FBS_LARGE_TASK = "1"; //大类型-任务
|
||||
public static final String FBS_LARGE_TASK = "1"; //大类型-项目
|
||||
public static final String FBS_LARGE_SETTLEMENT = "2"; //大类型-结算
|
||||
public static final String FBS_LARGE_OTHER = "3"; //大类型-其它
|
||||
|
||||
|
@ -57,4 +57,9 @@ public interface ICompanyService extends IServicePlus<Company> {
|
||||
* 获取公司的名称
|
||||
*/
|
||||
String getCompanyNameById(Long id);
|
||||
|
||||
/**
|
||||
* 根据信用码获取公司
|
||||
*/
|
||||
Company getCompanyByCreditCode(String creditCode);
|
||||
}
|
||||
|
@ -98,4 +98,9 @@ public class CompanyServiceImpl extends ServicePlusImpl<CommonCompanyMapper, Com
|
||||
Company byId = getById(id);
|
||||
return byId.getCompanyName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Company getCompanyByCreditCode(String creditCode) {
|
||||
return getOne(Wrappers.lambdaQuery(Company.class).eq(Company::getCreditCode, creditCode));
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.ruoyi.common.util;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 校验工具类
|
||||
* @author zhangqiao
|
||||
@ -16,4 +18,40 @@ public class ValidUtil {
|
||||
// 简单的银行卡号校验逻辑,可以根据需要进行更复杂的校验
|
||||
return bankCard != null && bankCard.matches("\\d{16,19}");
|
||||
}
|
||||
|
||||
// 定义中国大陆手机号码的正则表达式
|
||||
private static final String MOBILE_REGEX = "^1[3-9]\\d{9}$";
|
||||
private static final Pattern MOBILE_PATTERN = Pattern.compile(MOBILE_REGEX);
|
||||
|
||||
public static boolean isValidChineseMobile(String phoneNumber) {
|
||||
if (phoneNumber == null) {
|
||||
return false;
|
||||
}
|
||||
// 使用正则表达式进行匹配
|
||||
return MOBILE_PATTERN.matcher(phoneNumber).matches();
|
||||
}
|
||||
|
||||
private static final String BASE_CODE_STRING = "0123456789ABCDEFGHJKLMNPQRTUWXY";
|
||||
private static final char[] BASE_CODE_ARRAY = BASE_CODE_STRING.toCharArray();
|
||||
private static final int[] WEIGHT = {1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28};
|
||||
|
||||
//统一社会信用代码校验
|
||||
public static boolean verifyCreditCode(String code) {
|
||||
if (code == null || code.length() != 18) {
|
||||
return false;
|
||||
}
|
||||
char[] inputCodeArray = code.toCharArray();
|
||||
char checkCode = inputCodeArray[17];
|
||||
int sum = 0;
|
||||
for (int i = 0; i < 17; i++) {
|
||||
int idx = BASE_CODE_STRING.indexOf(inputCodeArray[i]);
|
||||
if (idx == -1) {
|
||||
return false;
|
||||
}
|
||||
sum += idx * WEIGHT[i];
|
||||
}
|
||||
int modulus = sum % 31;
|
||||
int index = (31 - modulus) % 31;
|
||||
return checkCode == BASE_CODE_ARRAY[index];
|
||||
}
|
||||
}
|
||||
|
@ -88,6 +88,9 @@ public class FbsWageApplication implements Serializable {
|
||||
@ApiModelProperty("联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("申请单位")
|
||||
private String companyName;
|
||||
|
||||
/** 申请金额 */
|
||||
@Excel(name = "申请金额")
|
||||
@ApiModelProperty("申请金额")
|
||||
@ -114,6 +117,13 @@ public class FbsWageApplication implements Serializable {
|
||||
@ApiModelProperty("任务情况")
|
||||
private String taskSituation;
|
||||
|
||||
@ApiModelProperty("收方单")
|
||||
private String receipt;
|
||||
|
||||
@ApiModelProperty("请款单")
|
||||
private String payroll;
|
||||
|
||||
|
||||
/** 审核状态(1审核中 2已审核 3未通过) */
|
||||
@Excel(name = "审核状态" , readConverterExp = "1=审核中,2=已审核,3=未通过")
|
||||
@ApiModelProperty("审核状态(1审核中 2已审核 3未通过)")
|
||||
|
@ -34,10 +34,10 @@ public class FbsMessageDetailDTO {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate date;
|
||||
|
||||
@ApiModelProperty("大类型(字典bgt_message_large_type)")
|
||||
@ApiModelProperty("大类型(字典fbs_message_large_type)")
|
||||
private String messageLargeType;
|
||||
|
||||
@ApiModelProperty("小类型(字典bgt_message_small_type)")
|
||||
@ApiModelProperty("小类型(字典fbs_message_small_type)")
|
||||
private String messageSmallType;
|
||||
|
||||
@ApiModelProperty("是否待处理")
|
||||
|
@ -0,0 +1,16 @@
|
||||
package com.ruoyi.fbs.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商修改用户信息")
|
||||
public class FbsUserInfoUpdateDTO {
|
||||
|
||||
@ApiModelProperty("头像")
|
||||
@NotBlank(message = "头像不能为空")
|
||||
private String avatarName;
|
||||
}
|
@ -25,5 +25,8 @@ public class FbsWageApplicationListDTO {
|
||||
@ApiModelProperty("类型:0-申请中 1-已结算")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("项目Id")
|
||||
private Long projectId;
|
||||
|
||||
|
||||
}
|
||||
|
@ -85,6 +85,7 @@ public class AppTaskDetailVO {
|
||||
private String status;
|
||||
|
||||
@ApiModelProperty("创建者ID")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private Long createId;
|
||||
|
||||
/** 备注 */
|
||||
|
@ -40,10 +40,10 @@ public class FbsMessageDetailVO implements Serializable {
|
||||
@ApiModelProperty("副标题")
|
||||
private String subheading;
|
||||
|
||||
@ApiModelProperty("大类型(字典bgt_message_large_type)")
|
||||
@ApiModelProperty("大类型(字典fbs_message_large_type)")
|
||||
private String messageLargeType;
|
||||
|
||||
@ApiModelProperty("小类型(字典bgt_message_small_type)")
|
||||
@ApiModelProperty("小类型(字典fbs_message_small_type)")
|
||||
private String messageSmallType;
|
||||
|
||||
@ApiModelProperty("读状态(0未读 1已读)")
|
||||
|
@ -40,10 +40,10 @@ public class FbsMessageVO implements Serializable {
|
||||
@ApiModelProperty("副标题")
|
||||
private String subheading;
|
||||
|
||||
@ApiModelProperty("大类型(字典bgt_message_large_type)")
|
||||
@ApiModelProperty("大类型(字典fbs_message_large_type)")
|
||||
private String messageLargeType;
|
||||
|
||||
@ApiModelProperty("小类型(字典bgt_message_small_type)")
|
||||
@ApiModelProperty("小类型(字典fbs_message_small_type)")
|
||||
private String messageSmallType;
|
||||
|
||||
@ApiModelProperty("读状态(0未读 1已读)")
|
||||
|
@ -65,7 +65,23 @@ public interface IFbsUserService extends IServicePlus<FbsUser> {
|
||||
Long authenticate(CompanyAuthenticateDTO dto);
|
||||
|
||||
/**
|
||||
* 企业认证
|
||||
* 根据用户id查询用户
|
||||
*/
|
||||
FbsUser selectUserByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 根据信用代码查询用户
|
||||
*/
|
||||
FbsUser selectUserByCreditCode(String creditCode);
|
||||
|
||||
/**
|
||||
* 登录查询
|
||||
*/
|
||||
FbsUser loginSelect(String key);
|
||||
|
||||
/**
|
||||
* 修改头像
|
||||
*/
|
||||
Boolean editAvatar(String avatarName);
|
||||
|
||||
}
|
||||
|
@ -1,10 +1,11 @@
|
||||
package com.ruoyi.fbs.service;
|
||||
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.bo.FbsWageApplicationQueryBo;
|
||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.fbs.bo.FbsWageApplicationQueryBo;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageApplicationListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfWageApplicationListDTO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -54,6 +55,11 @@ public interface IFbsWageApplicationService extends IServicePlus<FbsWageApplicat
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 分包商提交自己的工资申请
|
||||
*/
|
||||
Boolean insertApply(FbsWageApplication bo);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
@ -63,4 +69,14 @@ public interface IFbsWageApplicationService extends IServicePlus<FbsWageApplicat
|
||||
* 获取分包下先已审核通过的数据
|
||||
*/
|
||||
List<FbsWageApplication> getPassListBySubIds(List<Long> subIds);
|
||||
|
||||
/**
|
||||
* 总包方查询列表
|
||||
*/
|
||||
TableDataInfo<FbsWageApplication> zbfWageList(ZbfWageApplicationListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方审核
|
||||
*/
|
||||
Boolean zbfAudit(FbsWageApplication bo);
|
||||
}
|
||||
|
@ -10,7 +10,9 @@ 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.exception.BaseException;
|
||||
import com.ruoyi.common.service.ICompanyService;
|
||||
import com.ruoyi.common.util.ValidUtil;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.bo.FbsUserQueryBo;
|
||||
@ -116,6 +118,26 @@ public class FbsUserServiceImpl extends ServicePlusImpl<FbsUserMapper, FbsUser>
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long authenticate(CompanyAuthenticateDTO dto) {
|
||||
|
||||
// 校验银行卡号
|
||||
if (!ValidUtil.isValidBankCard(dto.getCardNo())) {
|
||||
throw new BaseException("银行卡号格式不正确");
|
||||
}
|
||||
|
||||
//校验电话
|
||||
if (!ValidUtil.isValidChineseMobile(dto.getContactPhone())) {
|
||||
throw new BaseException("手机号格式不正确");
|
||||
}
|
||||
|
||||
boolean b = ValidUtil.verifyCreditCode(dto.getCreditCode());
|
||||
if (!b) {
|
||||
throw new BaseException("统一社会信用代码格式不正确");
|
||||
}
|
||||
|
||||
Company companyByCreditCode = companyService.getCompanyByCreditCode(dto.getCreditCode());
|
||||
if (companyByCreditCode != null) {
|
||||
throw new RuntimeException("该企业已认证");
|
||||
}
|
||||
Company company = BeanUtil.copyProperties(dto, Company.class);
|
||||
companyService.save(company);
|
||||
FbsUser fbsUser = selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
@ -128,4 +150,30 @@ public class FbsUserServiceImpl extends ServicePlusImpl<FbsUserMapper, FbsUser>
|
||||
public FbsUser selectUserByUserId(Long userId) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<FbsUser>().eq(FbsUser::getUserId, userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public FbsUser selectUserByCreditCode(String creditCode) {
|
||||
Company company = companyService.getCompanyByCreditCode(creditCode);
|
||||
if (company != null) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<FbsUser>().eq(FbsUser::getCompanyId, company.getId()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FbsUser loginSelect(String key) {
|
||||
FbsUser fbsUser = selectUserByPhone(key);
|
||||
if(fbsUser != null){
|
||||
return fbsUser;
|
||||
}
|
||||
fbsUser = selectUserByCreditCode(key);
|
||||
return fbsUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean editAvatar(String avatarName) {
|
||||
FbsUser fbsUser = selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
fbsUser.setAvatarName(avatarName);
|
||||
return updateById(fbsUser);
|
||||
}
|
||||
}
|
||||
|
@ -1,37 +1,50 @@
|
||||
package com.ruoyi.fbs.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
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.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.ruoyi.bgt.domain.BgtProjectTaskProgress;
|
||||
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.enums.AuditStatus;
|
||||
import com.ruoyi.common.exception.BaseException;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.bo.FbsWageApplicationQueryBo;
|
||||
import com.ruoyi.fbs.domain.FbsMessage;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.domain.dto.FbsWageApplicationListDTO;
|
||||
import com.ruoyi.fbs.mapper.FbsWageApplicationMapper;
|
||||
import com.ruoyi.fbs.service.IFbsMessageService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.zbf.domain.ZbfMessage;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfWageApplicationListDTO;
|
||||
import com.ruoyi.zbf.service.IZbfMessageService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||
import com.ruoyi.zbf.service.IZbfUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.ruoyi.common.constants.BgtMessageConstant.HEADLINE;
|
||||
import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
|
||||
import static com.ruoyi.common.constants.FbsMessageConstant.FBS_TYPE_SETTLEMENT_TO_ZBF;
|
||||
import static com.ruoyi.common.constants.FbsMessageConstant.fbsMessage;
|
||||
import static com.ruoyi.common.constants.FbsMessageConstant.*;
|
||||
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
|
||||
import static com.ruoyi.common.constants.ZbfMessageConstant.ZBF_LARGE_SETTLEMENT;
|
||||
import static com.ruoyi.common.constants.ZbfMessageConstant.*;
|
||||
|
||||
/**
|
||||
* 分包商工资申请Service业务层处理
|
||||
@ -48,6 +61,12 @@ public class FbsWageApplicationServiceImpl extends ServicePlusImpl<FbsWageApplic
|
||||
private IZbfProjectService projectService;
|
||||
@Autowired
|
||||
private IZbfProjectSubcontractingService projectSubcontractingService;
|
||||
@Autowired
|
||||
private IFbsMessageService fbsMessageService;
|
||||
@Autowired
|
||||
private IZbfUserService iZbfUserService;
|
||||
@Autowired
|
||||
private IZbfProjectService iZbfProjectService;
|
||||
|
||||
@Override
|
||||
public FbsWageApplication queryById(Long id){
|
||||
@ -145,8 +164,11 @@ public class FbsWageApplicationServiceImpl extends ServicePlusImpl<FbsWageApplic
|
||||
public TableDataInfo<FbsWageApplication> record(FbsWageApplicationListDTO dto) {
|
||||
LambdaQueryWrapper<FbsWageApplication> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(FbsWageApplication::getUserId, SecurityUtils.getAppUserId())
|
||||
.eq(dto.getType() == 0, FbsWageApplication::getAuditStatus, AuditStatus.AUDIT.getCode())
|
||||
.in(dto.getType() == 1, FbsWageApplication::getAuditStatus, AuditStatus.getAudit());
|
||||
.eq(dto.getProjectId()!=null,FbsWageApplication::getProjectId, dto.getProjectId())
|
||||
.eq(ObjectUtil.equal(dto.getType(),0), FbsWageApplication::getAuditStatus, AuditStatus.AUDIT.getCode())
|
||||
.in(ObjectUtil.equal(dto.getType(),1), FbsWageApplication::getAuditStatus, AuditStatus.getAudit())
|
||||
.orderByDesc(FbsWageApplication::getId)
|
||||
;
|
||||
Page<FbsWageApplication> result = page(PageUtils.buildPage(), wrapper);
|
||||
return PageUtils.buildDataInfo(result);
|
||||
}
|
||||
@ -158,4 +180,96 @@ public class FbsWageApplicationServiceImpl extends ServicePlusImpl<FbsWageApplic
|
||||
.eq(FbsWageApplication::getAuditStatus, AuditStatus.PASS.getCode());
|
||||
return list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<FbsWageApplication> zbfWageList(ZbfWageApplicationListDTO dto) {
|
||||
LambdaQueryWrapper<FbsWageApplication> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(FbsWageApplication::getReviewerId, SecurityUtils.getAppUserId())
|
||||
.eq(ObjectUtil.equal(dto.getType(),0), FbsWageApplication::getAuditStatus, AuditStatus.AUDIT.getCode())
|
||||
.in(ObjectUtil.equal(dto.getType(),1), FbsWageApplication::getAuditStatus, AuditStatus.getAudit())
|
||||
.eq(dto.getProjectId()!=null,FbsWageApplication::getProjectId, dto.getProjectId())
|
||||
.eq(dto.getSubId()!=null,FbsWageApplication::getSubId, dto.getSubId())
|
||||
;
|
||||
Page<FbsWageApplication> result = page(PageUtils.buildPage(), wrapper);
|
||||
return PageUtils.buildDataInfo(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean zbfAudit(FbsWageApplication bo) {
|
||||
boolean b = updateById(bo);
|
||||
ZbfProject project = projectService.getById(bo.getProjectId());
|
||||
ZbfProjectSubcontracting subcontracting = projectSubcontractingService.getById(bo.getSubId());
|
||||
//总包方发消息到分包商
|
||||
HashMap<String, String> mp = new HashMap<>();
|
||||
mp.put("projectName", project.getProjectName());
|
||||
mp.put("subName", subcontracting.getSubName());
|
||||
mp.put("auditor", SecurityUtils.getUsername());
|
||||
Map<String, String> map = zbfMessage(mp, ZBF_TYPE_PAY,AuditStatus.PASS.getCode().equals(bo.getAuditStatus()));
|
||||
FbsMessage fbsMessage = new FbsMessage()
|
||||
.setSenderType(USERTYPE_ZBF)
|
||||
.setSenderId(SecurityUtils.getAppUserId())
|
||||
.setRecipientType(USERTYPE_FBS)
|
||||
.setRecipientId(bo.getUserId())
|
||||
.setHeadline(map.get(HEADLINE))
|
||||
.setSubheading(map.get(SUBHEADING))
|
||||
.setTableId(bo.getId())
|
||||
.setTableName(SqlHelper.table(FbsWageApplication.class).getTableName())
|
||||
.setMessageLargeType(FBS_LARGE_SETTLEMENT)
|
||||
.setIsOperation(OPERATION_NO);
|
||||
fbsMessageService.sendAMessage(fbsMessage);
|
||||
zbfMessageService.operation(USERTYPE_BGT, bo.getUserId(), USERTYPE_FBS, SecurityUtils.getAppUserId(), bo.getId(), SqlHelper.table(BgtProjectTaskProgress.class).getTableName());
|
||||
return b;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertApply(FbsWageApplication bo) {
|
||||
FbsWageApplication add = BeanUtil.toBean(bo, FbsWageApplication.class);
|
||||
//判断申请金额
|
||||
List<FbsWageApplication> list = list(Wrappers.<FbsWageApplication>lambdaQuery()
|
||||
.eq(FbsWageApplication::getSubId, bo.getSubId())
|
||||
.eq(FbsWageApplication::getUserId, SecurityUtils.getAppUserId())
|
||||
.in(FbsWageApplication::getAuditStatus, AuditStatus.getUse()));
|
||||
//收款金额
|
||||
int taskUseAmount = list.stream()
|
||||
.map(FbsWageApplication::getApplicantAmount)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add).intValue();
|
||||
|
||||
//任务金额单位是万元,工资申请金额单位是元
|
||||
ZbfProjectSubcontracting subcontracting = projectSubcontractingService.getById(bo.getSubId());
|
||||
BigDecimal subAmount = subcontracting.getSubAmount();
|
||||
subAmount = subAmount.multiply(new BigDecimal(10000));
|
||||
|
||||
BigDecimal subtract = subAmount.subtract(new BigDecimal(String.valueOf(taskUseAmount)));
|
||||
if(subtract.compareTo(bo.getApplicantAmount()) < 0){
|
||||
throw new BaseException("申请金额已超出,剩余申请金额:"+subtract+"元");
|
||||
}
|
||||
|
||||
ZbfProject project = iZbfProjectService.getById(bo.getProjectId());
|
||||
ZbfUser zbfUser = iZbfUserService.selectUserByUserId(project.getUserId());
|
||||
add.setReviewerName(zbfUser.getUsername());
|
||||
add.setReviewerId(zbfUser.getUserId());
|
||||
add.setProjectName(project.getProjectName());
|
||||
add.setProjectAddress(project.getProjectAddress());
|
||||
boolean save = save(add);
|
||||
|
||||
//分包商发消息到总包方
|
||||
HashMap<String, String> fmp = new HashMap<>();
|
||||
fmp.put("auditor", SecurityUtils.getUsername());
|
||||
fmp.put("amount", bo.getApplicantAmount().toString());
|
||||
Map<String, String> fmap = fbsMessage(fmp, FBS_TYPE_SETTLEMENT_TO_ZBF, true);
|
||||
ZbfMessage zbfMessage = new ZbfMessage()
|
||||
.setSenderType(USERTYPE_FBS)
|
||||
.setSenderId(SecurityUtils.getAppUserId())
|
||||
.setRecipientType(USERTYPE_ZBF)
|
||||
.setRecipientId(add.getReviewerId())
|
||||
.setHeadline(fmap.get(HEADLINE))
|
||||
.setSubheading(fmap.get(SUBHEADING))
|
||||
.setTableId(add.getId())
|
||||
.setTableName(SqlHelper.table(FbsWageApplication.class).getTableName())
|
||||
.setMessageLargeType(ZBF_LARGE_SETTLEMENT)
|
||||
.setIsOperation(OPERATION_NEED);
|
||||
zbfMessageService.sendAMessage(zbfMessage);
|
||||
return save;
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,6 @@ import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
|
||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||
import com.ruoyi.common.enums.RecruitStatus;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.wgz.domain.WgzAttendance;
|
||||
@ -28,7 +27,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.reactive.TransactionalOperator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
@ -319,10 +317,6 @@ public class BusinessTask
|
||||
*/
|
||||
@Transactional
|
||||
public void leave(){
|
||||
System.out.println("????????????????");
|
||||
System.out.println("????????????????");
|
||||
System.out.println("????????????????");
|
||||
System.out.println("????????????????");
|
||||
List<WgzLeave> updataList = new ArrayList<>();
|
||||
List<WgzAttendance> attendanceList = new ArrayList<>();
|
||||
List<WgzMessage> messagesList = new ArrayList<>();
|
||||
|
@ -143,4 +143,9 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
|
||||
* 根据招工申请获取这一次已结算完毕的工资
|
||||
*/
|
||||
BigDecimal getAlreadyPay(Long userId, Long recruitApplyId);
|
||||
|
||||
/**
|
||||
* 获取任务下已审核通过的数据
|
||||
*/
|
||||
List<WgzPayCalculation> getPassListByTaskIds(List<Long> taskIds);
|
||||
}
|
||||
|
@ -336,8 +336,8 @@ public class WgzLeaveServiceImpl extends ServicePlusImpl<WgzLeaveMapper, WgzLeav
|
||||
//处理消息
|
||||
iBgtMessageService.operation(USERTYPE_WGZ, wgzLeave.getUserId(), USERTYPE_BGT, SecurityUtils.getAppUserId(), wgzLeave.getId(),SqlHelper.table(WgzLeave.class).getTableName());
|
||||
|
||||
// if(AuditStatus.PASS.getCode().equals(dto.getAuditorType())){
|
||||
// //考勤信息
|
||||
if(AuditStatus.PASS.getCode().equals(dto.getAuditorType())){
|
||||
//考勤信息
|
||||
// List<WgzAttendance> list = attendanceService.list(Wrappers.<WgzAttendance>lambdaQuery()
|
||||
// .eq(WgzAttendance::getRecruitId, recruit.getId())
|
||||
// .eq(WgzAttendance::getUserId, wgzLeave.getUserId())
|
||||
@ -348,16 +348,17 @@ public class WgzLeaveServiceImpl extends ServicePlusImpl<WgzLeaveMapper, WgzLeav
|
||||
// wgzAttendance.setExceptionType("7");
|
||||
// attendanceService.updateById(wgzAttendance);
|
||||
// }else {
|
||||
// WgzAttendance wgzAttendance = new WgzAttendance();
|
||||
// wgzAttendance.setRecruitId(recruit.getId());
|
||||
// wgzAttendance.setUserId(wgzLeave.getUserId());
|
||||
// wgzAttendance.setLeaveMarkId(wgzLeave.getId());
|
||||
// wgzAttendance.setDailyWage(recruit.getRecruitAmount());
|
||||
// wgzAttendance.setDate(wgzLeave.getStartTime().toLocalDate());
|
||||
// wgzAttendance.setExceptionType("7");
|
||||
// attendanceService.save(wgzAttendance);
|
||||
WgzAttendance wgzAttendance = new WgzAttendance();
|
||||
wgzAttendance.setApplyKey(wgzLeave.getApplyKey());
|
||||
wgzAttendance.setRecruitId(recruit.getId());
|
||||
wgzAttendance.setUserId(wgzLeave.getUserId());
|
||||
wgzAttendance.setLeaveMarkId(wgzLeave.getId());
|
||||
wgzAttendance.setDailyWage(recruit.getRecruitAmount());
|
||||
wgzAttendance.setDate(wgzLeave.getStartTime().toLocalDate());
|
||||
wgzAttendance.setExceptionType("7");
|
||||
attendanceService.save(wgzAttendance);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
return updateById(wgzLeave);
|
||||
}
|
||||
|
@ -657,4 +657,12 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
||||
}
|
||||
return addSum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WgzPayCalculation> getPassListByTaskIds(List<Long> taskIds) {
|
||||
LambdaQueryWrapper<WgzPayCalculation> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(WgzPayCalculation::getTaskId, taskIds)
|
||||
.eq(WgzPayCalculation::getAuditorType, AuditStatus.PASS.getCode());
|
||||
return list(wrapper);
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("总包方任务进度列表查询对象")
|
||||
@ -16,6 +18,7 @@ public class ZbfProgressListDTO {
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
private Long projectId;
|
||||
@ApiModelProperty("项目分包Id")
|
||||
@NotNull(message = "项目分包Id不能为空")
|
||||
private Long subId;
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
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 ZbfSubBgtListDTO {
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("分包ID")
|
||||
@NotNull(message = "分包ID不能为空")
|
||||
private Long subId;
|
||||
}
|
@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商项目分包切换列表查询条件")
|
||||
@ApiModel("总包方项目分包切换列表查询条件")
|
||||
public class ZbfSubSwitchListDTO {
|
||||
|
||||
@ApiModelProperty("分页大小")
|
||||
|
@ -0,0 +1,35 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 分包商工资申请分页查询对象 fbs_wage_application
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方工资审核查询对象")
|
||||
public class ZbfWageApplicationListDTO {
|
||||
|
||||
/** 分页大小 */
|
||||
@ApiModelProperty("分页大小")
|
||||
private Integer pageSize;
|
||||
/** 当前页数 */
|
||||
@ApiModelProperty("当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("类型:0-申请中 1-已结算")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("项目Id")
|
||||
private Long projectId;
|
||||
|
||||
@ApiModelProperty("项目分包Id")
|
||||
private Long subId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 包工头工资申请分页查询对象 bgt_wage_application
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel("App包工头工资申请分页查询对象")
|
||||
public class ZbfWageAuditDTO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
@NotNull(message = "主键ID不能为空")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("审核状态(1审核中 2已审核 3未通过)")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.ruoyi.zbf.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
@ApiModel("分包商修改用户信息")
|
||||
public class ZfbUserInfoUpdateDTO {
|
||||
|
||||
@ApiModelProperty("头像")
|
||||
@NotBlank(message = "头像不能为空")
|
||||
private String avatarName;
|
||||
}
|
@ -16,6 +16,6 @@ public class ZbfProgressListVO {
|
||||
@ApiModelProperty("进度")
|
||||
private Integer progress;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@ApiModelProperty("任务名称")
|
||||
private String taskName;
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
@ApiModel("App总包方项目详情-任务进度视图对象")
|
||||
public class ZbfProjectDetailProgressVO {
|
||||
public class ZbfProgressVO {
|
||||
|
||||
@ApiModelProperty("总进度")
|
||||
private Integer totalProgress = 0;
|
@ -0,0 +1,29 @@
|
||||
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 ZbfSubBgtListVO {
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("唯一标识")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("姓名")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("头像地址")
|
||||
private String avatarName;
|
||||
|
||||
|
||||
}
|
@ -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 ZbfSubPersonCountVO {
|
||||
|
||||
@ApiModelProperty("人员总数")
|
||||
private Integer totalCount;
|
||||
|
||||
@ApiModelProperty("进场总数")
|
||||
private Integer entryCount;
|
||||
|
||||
@ApiModelProperty("退场总数")
|
||||
private Integer leaveCount;
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,10 +1,13 @@
|
||||
package com.ruoyi.zbf.mapper;
|
||||
|
||||
|
||||
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.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubBgtListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.ZbfSubBgtListVO;
|
||||
import org.apache.ibatis.annotations.CacheNamespace;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 总包方项目分包Mapper接口
|
||||
@ -16,4 +19,5 @@ import org.apache.ibatis.annotations.CacheNamespace;
|
||||
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
|
||||
public interface ZbfProjectSubcontractingMapper extends BaseMapperPlus<ZbfProjectSubcontracting> {
|
||||
|
||||
Page<ZbfSubBgtListVO> bgtList(@Param("page") Page<ZbfSubBgtListDTO> page, @Param("dto") ZbfSubBgtListDTO dto);
|
||||
}
|
||||
|
@ -57,4 +57,16 @@ public interface IZbfMessageService extends IServicePlus<ZbfMessage> {
|
||||
* 发送消息
|
||||
*/
|
||||
Boolean sendAMessage(ZbfMessage bo);
|
||||
|
||||
/**
|
||||
* 已操作
|
||||
*/
|
||||
void operation(String senderType,Long senderId,String recipientType,Long recipientId,Long tableId,String tableName);
|
||||
|
||||
/**
|
||||
* 批量已操作
|
||||
*/
|
||||
void operationBatch(String recipientType,Long recipientId,List<Long> tableIds,String tableName);
|
||||
|
||||
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
||||
/**
|
||||
* 总包方项目详情-用工进度
|
||||
*/
|
||||
ZbfProjectDetailProgressVO zbfProgress(Long projectId);
|
||||
ZbfProgressVO zbfProgress(Long projectId);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-用工进度列表
|
||||
@ -184,10 +184,6 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
||||
*/
|
||||
ZbfProjectDetailWageVO zbfWage(Long projectId);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-付款情况查看更多
|
||||
*/
|
||||
TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId);
|
||||
/**
|
||||
* 总包方项目详情-项目切换
|
||||
*/
|
||||
|
@ -5,6 +5,10 @@ import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProgressListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubBgtListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -54,4 +58,28 @@ public interface IZbfProjectSubcontractingService extends IServicePlus<ZbfProjec
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 总包方项目分包详情-分包商人员总数
|
||||
*/
|
||||
ZbfSubPersonCountVO subPersonCount(Long subId);
|
||||
|
||||
/**
|
||||
* 总包方项目分包详情-班组长列表
|
||||
*/
|
||||
TableDataInfo<ZbfSubBgtListVO> bgtList(ZbfSubBgtListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方项目分包详情-用工进度
|
||||
*/
|
||||
ZbfProgressVO zbfSubProgress(Long subId);
|
||||
|
||||
/**
|
||||
* 总包方项目分包详情-用工进度列表
|
||||
*/
|
||||
TableDataInfo<ZbfProgressListVO> zbfSubProgressList(@Validated ZbfProgressListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方项目详情-付款情况
|
||||
*/
|
||||
ZbfProjectDetailWageVO zbfSubWage(Long subId);
|
||||
}
|
||||
|
@ -68,4 +68,19 @@ public interface IZbfUserService extends IServicePlus<ZbfUser> {
|
||||
* 企业认证
|
||||
*/
|
||||
Long authenticate(CompanyAuthenticateDTO dto);
|
||||
|
||||
/**
|
||||
* 根据信用代码查询用户
|
||||
*/
|
||||
ZbfUser selectUserByCreditCode(String creditCode);
|
||||
|
||||
/**
|
||||
* 登录查询
|
||||
*/
|
||||
ZbfUser loginSelect(String key);
|
||||
|
||||
/**
|
||||
* 修改头像
|
||||
*/
|
||||
Boolean editAvatar(String avatarName);
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.ruoyi.zbf.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||
@ -18,6 +19,8 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.OPERATION_ALREADY;
|
||||
|
||||
/**
|
||||
* 消息Service业务层处理
|
||||
*
|
||||
@ -96,4 +99,29 @@ public class ZbfMessageServiceImpl extends ServicePlusImpl<ZbfMessageMapper, Zbf
|
||||
public Boolean sendAMessage(ZbfMessage bo) {
|
||||
return save(bo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void operation(String senderType, Long senderId, String recipientType, Long recipientId, Long tableId, String tableName) {
|
||||
LambdaUpdateWrapper<ZbfMessage> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.eq(ZbfMessage::getRecipientId, recipientId);
|
||||
wrapper.eq(ZbfMessage::getRecipientType, recipientType);
|
||||
wrapper.eq(ZbfMessage::getSenderId, senderId);
|
||||
wrapper.eq(ZbfMessage::getSenderType, senderType);
|
||||
wrapper.eq(ZbfMessage::getTableId, tableId);
|
||||
wrapper.eq(ZbfMessage::getTableName, tableName);
|
||||
wrapper.set(ZbfMessage::getIsOperation, OPERATION_ALREADY);
|
||||
update(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void operationBatch(String recipientType, Long recipientId, List<Long> tableIds, String tableName) {
|
||||
LambdaUpdateWrapper<ZbfMessage> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.eq(ZbfMessage::getRecipientId, recipientId);
|
||||
wrapper.eq(ZbfMessage::getRecipientType, recipientType);
|
||||
wrapper.in(ZbfMessage::getTableId, tableIds);
|
||||
wrapper.eq(ZbfMessage::getTableName, tableName);
|
||||
wrapper.set(ZbfMessage::getIsOperation, OPERATION_ALREADY);
|
||||
update(wrapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,7 +27,9 @@ 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.domain.WgzPayCalculation;
|
||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProject;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSection;
|
||||
@ -77,6 +79,8 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
private IBgtProjectRecruitApplyService bgtProjectRecruitApplyService;
|
||||
@Autowired
|
||||
private IWgzAttendanceService wgzAttendanceService;
|
||||
@Autowired
|
||||
private IWgzPayCalculationService wgzPayCalculationService;
|
||||
|
||||
|
||||
@Override
|
||||
@ -519,7 +523,7 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getCreateId, SecurityUtils.getAppUserId())
|
||||
.eq(FbsProjectTask::getProjectId, dto)
|
||||
.eq(FbsProjectTask::getProjectId, dto.getProjectId())
|
||||
);
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||
@ -728,12 +732,12 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProjectDetailProgressVO zbfProgress(Long projectId) {
|
||||
public ZbfProgressVO zbfProgress(Long projectId) {
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, projectId)
|
||||
);
|
||||
ZbfProjectDetailProgressVO vo = new ZbfProjectDetailProgressVO();
|
||||
ZbfProgressVO vo = new ZbfProgressVO();
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||
List<BgtProjectTaskProgress> progressByTaskIds = bgtProjectTaskProgressService.getProgressByTaskIds(taskIds);
|
||||
@ -772,20 +776,32 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
BigDecimal totalAmount = subList.stream().map(ZbfProjectSubcontracting::getSubAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setTotalAmount(totalAmount);
|
||||
|
||||
//接收金额
|
||||
//已结算金额
|
||||
vo.setPayAmount(BigDecimal.ZERO);
|
||||
BigDecimal wgzAmount = 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);
|
||||
|
||||
//查询分包下的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.in(FbsProjectTask::getSubId, subIds)
|
||||
);
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(taskIds)){
|
||||
List<WgzPayCalculation> passListByTaskIds = wgzPayCalculationService.getPassListByTaskIds(taskIds);
|
||||
|
||||
for (WgzPayCalculation wgzPayCalculation : passListByTaskIds){
|
||||
BigDecimal multiply = wgzPayCalculation.getRecruitAmount().multiply(new BigDecimal(wgzPayCalculation.getNum()));
|
||||
wgzAmount = wgzAmount.add(multiply);
|
||||
}
|
||||
}
|
||||
}
|
||||
vo.setWgzAmount(wgzAmount);
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfWageApplicationVO> zbfWageList(Long projectId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto) {
|
||||
|
@ -1,22 +1,38 @@
|
||||
package com.ruoyi.zbf.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.service.IBgtProjectRecruitApplyService;
|
||||
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
|
||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
||||
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
||||
import com.ruoyi.zbf.bo.ZbfProjectSubcontractingQueryBo;
|
||||
import com.ruoyi.zbf.domain.ZbfProjectSubcontracting;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfProgressListDTO;
|
||||
import com.ruoyi.zbf.domain.dto.ZbfSubBgtListDTO;
|
||||
import com.ruoyi.zbf.domain.vo.*;
|
||||
import com.ruoyi.zbf.mapper.ZbfProjectSubcontractingMapper;
|
||||
import com.ruoyi.zbf.service.IZbfProjectSubcontractingService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 总包方项目分包Service业务层处理
|
||||
@ -27,6 +43,17 @@ import java.util.Map;
|
||||
@Service
|
||||
public class ZbfProjectSubcontractingServiceImpl extends ServicePlusImpl<ZbfProjectSubcontractingMapper, ZbfProjectSubcontracting> implements IZbfProjectSubcontractingService {
|
||||
|
||||
@Autowired
|
||||
private IFbsProjectTaskService fbsProjectTaskService;
|
||||
@Autowired
|
||||
private IBgtProjectRecruitApplyService bgtProjectRecruitApplyService;
|
||||
@Autowired
|
||||
private IBgtProjectTaskProgressService bgtProjectTaskProgressService;
|
||||
@Autowired
|
||||
private IFbsWageApplicationService fbsWageApplicationService;
|
||||
@Autowired
|
||||
private IWgzPayCalculationService wgzPayCalculationService;
|
||||
|
||||
@Override
|
||||
public ZbfProjectSubcontracting queryById(Long id){
|
||||
return getById(id);
|
||||
@ -86,4 +113,102 @@ public class ZbfProjectSubcontractingServiceImpl extends ServicePlusImpl<ZbfProj
|
||||
}
|
||||
return removeByIds(ids);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ZbfSubPersonCountVO subPersonCount(Long subId) {
|
||||
//查询分包下的所有任务
|
||||
int entryCount = 0;
|
||||
int leaveCount = 0;
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getSubId, subId));
|
||||
if (CollectionUtil.isNotEmpty(taskList)){
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
List<BgtProjectRecruitApply> recruitApplyList = bgtProjectRecruitApplyService.list(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
|
||||
.in(BgtProjectRecruitApply::getTaskId, taskIds)
|
||||
.in(BgtProjectRecruitApply::getStatus, RecruitApplyStatus.getWorkStatus()));
|
||||
entryCount = (int) recruitApplyList.stream().filter(recruitApply -> RecruitApplyStatus.WORKING.getCode().equals(recruitApply.getStatus())).count();
|
||||
leaveCount = (int) recruitApplyList.stream().filter(recruitApply -> RecruitApplyStatus.OUT_WORK.getCode().equals(recruitApply.getStatus())).count();
|
||||
}
|
||||
ZbfSubPersonCountVO vo = new ZbfSubPersonCountVO();
|
||||
vo.setEntryCount(entryCount);
|
||||
vo.setLeaveCount(leaveCount);
|
||||
vo.setTotalCount(entryCount+leaveCount);
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<ZbfSubBgtListVO> bgtList(ZbfSubBgtListDTO dto) {
|
||||
Page<ZbfSubBgtListDTO> queryDTOPage = new Page<>();
|
||||
queryDTOPage.setCurrent(dto.getPageNum());
|
||||
queryDTOPage.setSize(dto.getPageSize());
|
||||
Page<ZbfSubBgtListVO> page = baseMapper.bgtList(queryDTOPage, dto);
|
||||
return PageUtils.buildDataInfo(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfProgressVO zbfSubProgress(Long subId) {
|
||||
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getSubId, subId)
|
||||
);
|
||||
ZbfProgressVO vo = new ZbfProgressVO();
|
||||
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> zbfSubProgressList(ZbfProgressListDTO dto) {
|
||||
Page<ZbfProgressListVO> voPage = new Page<>();
|
||||
//查询所有创建的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getSubId, dto.getSubId())
|
||||
);
|
||||
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 zbfSubWage(Long subId) {
|
||||
ZbfProjectDetailWageVO vo = new ZbfProjectDetailWageVO();
|
||||
ZbfProjectSubcontracting subcontracting = getById(subId);
|
||||
//总金额
|
||||
vo.setTotalAmount(subcontracting.getSubAmount());
|
||||
|
||||
//已结算金额
|
||||
vo.setPayAmount(BigDecimal.ZERO);
|
||||
BigDecimal wgzAmount = BigDecimal.ZERO;
|
||||
|
||||
List<FbsWageApplication> passList = fbsWageApplicationService.getPassListBySubIds(Collections.singletonList(subId));
|
||||
BigDecimal payAmount = passList.stream().map(FbsWageApplication::getApplicantAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setPayAmount(payAmount);
|
||||
|
||||
//查询分包下的任务
|
||||
List<FbsProjectTask> taskList = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getSubId, subId)
|
||||
);
|
||||
List<Long> taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(taskIds)) {
|
||||
List<WgzPayCalculation> passListByTaskIds = wgzPayCalculationService.getPassListByTaskIds(taskIds);
|
||||
|
||||
for (WgzPayCalculation wgzPayCalculation : passListByTaskIds) {
|
||||
BigDecimal multiply = wgzPayCalculation.getRecruitAmount().multiply(new BigDecimal(wgzPayCalculation.getNum()));
|
||||
wgzAmount = wgzAmount.add(multiply);
|
||||
}
|
||||
}
|
||||
vo.setWgzAmount(wgzAmount);
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,9 @@ 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.exception.BaseException;
|
||||
import com.ruoyi.common.service.ICompanyService;
|
||||
import com.ruoyi.common.util.ValidUtil;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.zbf.bo.ZbfUserQueryBo;
|
||||
@ -118,6 +120,26 @@ public class ZbfUserServiceImpl extends ServicePlusImpl<ZbfUserMapper, ZbfUser>
|
||||
|
||||
@Override
|
||||
public Long authenticate(CompanyAuthenticateDTO dto) {
|
||||
|
||||
// 校验银行卡号
|
||||
if (!ValidUtil.isValidBankCard(dto.getCardNo())) {
|
||||
throw new BaseException("银行卡号格式不正确");
|
||||
}
|
||||
|
||||
//校验电话
|
||||
if (!ValidUtil.isValidChineseMobile(dto.getContactPhone())) {
|
||||
throw new BaseException("手机号格式不正确");
|
||||
}
|
||||
|
||||
boolean b = ValidUtil.verifyCreditCode(dto.getCreditCode());
|
||||
if (!b) {
|
||||
throw new BaseException("统一社会信用代码格式不正确");
|
||||
}
|
||||
|
||||
Company companyByCreditCode = companyService.getCompanyByCreditCode(dto.getCreditCode());
|
||||
if (companyByCreditCode != null) {
|
||||
throw new RuntimeException("该企业已认证");
|
||||
}
|
||||
Company company = BeanUtil.copyProperties(dto, Company.class);
|
||||
companyService.save(company);
|
||||
ZbfUser zbfUser = selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
@ -125,4 +147,30 @@ public class ZbfUserServiceImpl extends ServicePlusImpl<ZbfUserMapper, ZbfUser>
|
||||
updateById(zbfUser);
|
||||
return company.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfUser selectUserByCreditCode(String creditCode) {
|
||||
Company company = companyService.getCompanyByCreditCode(creditCode);
|
||||
if (company != null) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<ZbfUser>().eq(ZbfUser::getCompanyId, company.getId()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZbfUser loginSelect(String key) {
|
||||
ZbfUser zbfUser = selectUserByPhone(key);
|
||||
if(zbfUser != null){
|
||||
return zbfUser;
|
||||
}
|
||||
zbfUser = selectUserByCreditCode(key);
|
||||
return zbfUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean editAvatar(String avatarName) {
|
||||
ZbfUser zbfUser = selectUserByUserId(SecurityUtils.getAppUserId());
|
||||
zbfUser.setAvatarName(avatarName);
|
||||
return updateById(zbfUser);
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and bptp.task_id = #{dto.taskId}
|
||||
</if>
|
||||
</where>
|
||||
order by bptp.id desc
|
||||
</select>
|
||||
|
||||
<select id="getProgressByTaskIds" resultType="com.ruoyi.bgt.domain.BgtProjectTaskProgress">
|
||||
|
@ -21,5 +21,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="remark" column="remark"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="bgtList" resultType="com.ruoyi.zbf.domain.vo.ZbfSubBgtListVO">
|
||||
SELECT u.id,
|
||||
u.user_id,
|
||||
u.username,
|
||||
u.phone,
|
||||
u.avatar_name
|
||||
FROM fbs_project_task s
|
||||
LEFT JOIN bgt_user u ON s.user_id = u.user_id
|
||||
where s.sub_id = #{dto.subId} and s.user_id is not null
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Reference in New Issue
Block a user