总包方

This commit is contained in:
zt
2025-04-10 09:31:24 +08:00
parent 069529f78c
commit f1814f781c
52 changed files with 1119 additions and 98 deletions

View File

@ -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 = "主键不能为空")

View File

@ -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()));
}
}

View File

@ -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));
}

View File

@ -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) {

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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()));
}
}

View File

@ -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));
}
}