diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitApplyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitApplyController.java index 8574830..2277dc2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitApplyController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtProjectRecruitApplyController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.bgt; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; +import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyConsentDTO; import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO; import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO; import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; @@ -9,6 +10,9 @@ 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.wgz.bo.req.WgzAppPersonalBasicInformationReq; +import com.ruoyi.wgz.bo.res.WgzAppPersonalBasicInformationRes; +import com.ruoyi.wgz.service.IWgzUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -32,7 +36,7 @@ public class AppBgtProjectRecruitApplyController extends BaseController { private final IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService; - + private final IWgzUserService wgzUserService; @ApiOperation("App务工者列表") @GetMapping("/list") @@ -40,10 +44,12 @@ public class AppBgtProjectRecruitApplyController extends BaseController { return iBgtProjectRecruitApplyService.appQueryList(dto); } + @ApiOperation("App务工者个人详情") + @GetMapping() + public AjaxResult userPersonalBasicInformation(@Validated WgzAppPersonalBasicInformationReq req) { + return AjaxResult.success(wgzUserService.userPersonalBasicInformation(req)); + } - /** - * 新增包工头招工申请 - */ @ApiOperation("App务工者招工报名") @Log(title = "App务工者招工报名", businessType = BusinessType.INSERT) @RepeatSubmit @@ -52,6 +58,14 @@ public class AppBgtProjectRecruitApplyController extends BaseController { return toAjax(iBgtProjectRecruitApplyService.insert(bo) ? 1 : 0); } + @ApiOperation("App同意申请") + @Log(title = "App同意申请", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping() + public AjaxResult consent(@Validated @RequestBody BgtProjectRecruitApplyConsentDTO dto) { + return toAjax(iBgtProjectRecruitApplyService.consent(dto)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskApplyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskApplyController.java index 1c1a36c..d65b025 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskApplyController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/fbs/AppFbsProjectTaskApplyController.java @@ -5,17 +5,14 @@ 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.FbsProjectTaskApply; +import com.ruoyi.fbs.domain.dto.TaskApplyDTO; import com.ruoyi.fbs.service.IFbsProjectTaskApplyService; 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.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 分包商项目任务申请Controller @@ -35,13 +32,21 @@ public class AppFbsProjectTaskApplyController extends BaseController { /** * 新增分包商项目任务申请 */ - @ApiOperation("App申请承接") - @Log(title = "App项目任务申请承接", businessType = BusinessType.INSERT) + @ApiOperation("App申请承接项目任务") + @Log(title = "App申请承接项目任务", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping() - public AjaxResult add(@Validated @RequestBody FbsProjectTaskApply bo) { - return toAjax(iFbsProjectTaskApplyService.insert(bo) ? 1 : 0); + public AjaxResult appTaskApply(@Validated @RequestBody TaskApplyDTO dto) { + return toAjax(iFbsProjectTaskApplyService.appTaskApply(dto) ? 1 : 0); } + @ApiOperation("App取消申请项目任务") + @Log(title = "App取消申请项目任务" , businessType = BusinessType.DELETE) + @DeleteMapping() + public AjaxResult cancelApply(TaskApplyDTO dto) { + return toAjax(iFbsProjectTaskApplyService.cancelApply(dto) ? 1 : 0); + } + + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index e5ffb9c..d9f21c6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -140,10 +140,10 @@ public class Constants /** * 包工头用户标志 前缀 */ - public static final String BGT = "bgt_"; + public static final String BGT = "bgt"; /** * 务工者用户标志 前缀 */ - public static final String WGZ = "wgz_"; + public static final String WGZ = "wgz"; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ProjectTaskStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ProjectTaskStatus.java new file mode 100644 index 0000000..6b57152 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ProjectTaskStatus.java @@ -0,0 +1,33 @@ +package com.ruoyi.common.enums; + +/** + * 用户状态 + * + * @author ruoyi + */ +public enum ProjectTaskStatus +{ + APPLY("0", "申请中"), + PROGRESS("1", "进行中"), + COMPLETE("2", "已完成"), + ; + + private final String code; + private final String info; + + ProjectTaskStatus(String code, String info) + { + this.code = code; + this.info = info; + } + + public String getCode() + { + return code; + } + + public String getInfo() + { + return info; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruit.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruit.java index b0f956b..c8c1c5f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruit.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruit.java @@ -24,114 +24,160 @@ import java.time.LocalDateTime; @ApiModel("包工头招工视图对象") public class BgtProjectRecruit implements Serializable { - private static final long serialVersionUID=1L; + private static final long serialVersionUID = 1L; - /** 主键ID */ - @ApiModelProperty("主键ID") + /** + * 主键ID + */ + @ApiModelProperty("主键ID") @TableId(value = "id", type = IdType.AUTO) - private Long id; + private Long id; - /** 项目ID */ - @Excel(name = "项目ID") - @ApiModelProperty("项目ID") - private Long projectId; + /** + * 项目ID + */ + @Excel(name = "项目ID") + @ApiModelProperty("项目ID") + private Long projectId; - /** 标段ID */ - @Excel(name = "标段ID") - @ApiModelProperty("标段ID") - private Long sectionId; + /** + * 标段ID + */ + @Excel(name = "标段ID") + @ApiModelProperty("标段ID") + private Long sectionId; - /** 分包ID */ - @Excel(name = "分包ID") - @ApiModelProperty("分包ID") - private Long subId; + /** + * 分包ID + */ + @Excel(name = "分包ID") + @ApiModelProperty("分包ID") + private Long subId; - /** 任务ID */ - @Excel(name = "任务ID") - @ApiModelProperty("任务ID") - private Long taskId; + /** + * 任务ID + */ + @Excel(name = "任务ID") + @ApiModelProperty("任务ID") + private Long taskId; - /** 招工名称 */ - @Excel(name = "招工名称") - @ApiModelProperty("招工名称") - private String recruitName; + /** + * 招工名称 + */ + @Excel(name = "招工名称") + @ApiModelProperty("招工名称") + private String recruitName; - /** 招工地址 */ - @Excel(name = "招工地址") - @ApiModelProperty("招工地址") - private String recruitAddress; + /** + * 招工地址 + */ + @Excel(name = "招工地址") + @ApiModelProperty("招工地址") + private String recruitAddress; - /** 招工金额 */ - @Excel(name = "招工金额") - @ApiModelProperty("招工金额") - private Long recruitAmount; + /** + * 招工金额 + */ + @Excel(name = "招工金额") + @ApiModelProperty("招工金额") + private Long recruitAmount; - /** 招工数量 */ - @Excel(name = "招工数量") - @ApiModelProperty("招工数量") - private Long recruitStaffNum; + /** + * 招工数量 + */ + @Excel(name = "招工数量") + @ApiModelProperty("招工数量") + private Long recruitStaffNum; - /** 招工开始时间 */ - @Excel(name = "招工开始时间") - @ApiModelProperty("招工开始时间") - private String recruitBeginTime; + /** + * 招工开始时间 + */ + @Excel(name = "招工开始时间") + @ApiModelProperty("招工开始时间") + private String recruitBeginTime; - /** 联系人 */ - @Excel(name = "联系人") - @ApiModelProperty("联系人") - private String recruitContactPerson; + /** + * 联系人 + */ + @Excel(name = "联系人") + @ApiModelProperty("联系人") + private String recruitContactPerson; - /** 联系电话 */ - @Excel(name = "联系电话") - @ApiModelProperty("联系电话") - private String recruitContactPhone; + /** + * 联系电话 + */ + @Excel(name = "联系电话") + @ApiModelProperty("联系电话") + private String recruitContactPhone; - /** 招工描述 */ - @Excel(name = "招工描述") - @ApiModelProperty("招工描述") - private String subDescribe; + /** + * 招工描述 + */ + @Excel(name = "招工描述") + @ApiModelProperty("招工描述") + private String subDescribe; - /** 招工要求 */ - @Excel(name = "招工要求") - @ApiModelProperty("招工要求") - private String recruitRequirement; + /** + * 招工要求 + */ + @Excel(name = "招工要求") + @ApiModelProperty("招工要求") + private String recruitRequirement; + + @ApiModelProperty("上班时间") + private String beginWorkTime; + + @ApiModelProperty("下班时间") + private String endWorkTime; @ApiModelProperty("创建者ID") private Long userId; - /** 删除标志(0代表存在 2代表删除) */ - @Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除") - @ApiModelProperty("删除标志(0代表存在 2代表删除)") + /** + * 删除标志(0代表存在 2代表删除) + */ + @Excel(name = "删除标志", readConverterExp = "0=代表存在,2=代表删除") + @ApiModelProperty("删除标志(0代表存在 2代表删除)") // @TableLogic - private String delFlag; + private String delFlag; - /** 创建者 */ - @Excel(name = "创建者") - @ApiModelProperty("创建者") - @TableField(fill = FieldFill.INSERT) - private String createBy; + /** + * 创建者 + */ + @Excel(name = "创建者") + @ApiModelProperty("创建者") + @TableField(fill = FieldFill.INSERT) + private String createBy; - /** 创建时间 */ - @Excel(name = "创建时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("创建时间") - @TableField(fill = FieldFill.INSERT) - private LocalDateTime createTime; + /** + * 创建时间 + */ + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; - /** 更新者 */ - @Excel(name = "更新者") - @ApiModelProperty("更新者") - @TableField(fill = FieldFill.INSERT_UPDATE) - private String updateBy; + /** + * 更新者 + */ + @Excel(name = "更新者") + @ApiModelProperty("更新者") + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; - /** 更新时间 */ - @Excel(name = "更新时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("更新时间") - @TableField(fill = FieldFill.INSERT_UPDATE) - private LocalDateTime updateTime; + /** + * 更新时间 + */ + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("更新时间") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; - /** 备注 */ - @Excel(name = "备注") - @ApiModelProperty("备注") - private String remark; + /** + * 备注 + */ + @Excel(name = "备注") + @ApiModelProperty("备注") + private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyConsentDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyConsentDTO.java new file mode 100644 index 0000000..c89c8aa --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyConsentDTO.java @@ -0,0 +1,36 @@ +package com.ruoyi.bgt.domain.dto; + +import com.ruoyi.common.domain.dto.AnnexDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 包工头招工申请对象 bgt_project_recruit_apply + * + * @author ruoyi + * @date 2025-02-18 + */ +@Data +@ApiModel("包工头同意申请对象") +public class BgtProjectRecruitApplyConsentDTO implements Serializable { + + private static final long serialVersionUID=1L; + + /** 主键ID */ + @ApiModelProperty("主键ID") + private Long id; + + @ApiModelProperty("进场时间") + private String entryTime; + + @ApiModelProperty("入场材料") + List entryMaterials; + + @ApiModelProperty("保险") + List insurances; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyQueryDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyQueryDTO.java index 473cc78..b419069 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyQueryDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtProjectRecruitApplyQueryDTO.java @@ -6,16 +6,17 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotEmpty; +import java.util.List; @Data @EqualsAndHashCode(callSuper = true) @ApiModel("包工头招工申请列表查询对象") public class BgtProjectRecruitApplyQueryDTO extends BaseEntity { - @ApiModelProperty("招工ID") - @NotNull(message = "招工ID不能为空") - private Long recruitId; + @ApiModelProperty("招工ID列表") + @NotEmpty(message = "招工ID列表不能为空") + private List recruitIds; @ApiModelProperty("选择状态(0未选择 1已选择)") private String status; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitApplyVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitApplyVO.java index fc0d203..8589658 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitApplyVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitApplyVO.java @@ -22,6 +22,9 @@ public class BgtProjectRecruitApplyVO implements Serializable { private static final long serialVersionUID=1L; + @ApiModelProperty("主键ID") + private Long id; + @ApiModelProperty("务工者用户ID") private Long userId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectRecruitApplyService.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectRecruitApplyService.java index b2417af..13b3b12 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectRecruitApplyService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/IBgtProjectRecruitApplyService.java @@ -2,6 +2,7 @@ package com.ruoyi.bgt.service; import com.ruoyi.bgt.bo.BgtProjectRecruitApplyQueryBo; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; +import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyConsentDTO; import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO; import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; @@ -72,4 +73,9 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus implements IBgtProjectRecruitApplyService { + + @Autowired + private IAnnexService annexService; + @Override public BgtProjectRecruitApply queryById(Long id){ return getById(id); @@ -88,6 +99,27 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl list = baseMapper.selectList(Wrappers.lambdaQuery() + .eq(BgtProjectRecruitApply::getUserId, recruitApply.getUserId()) + .eq(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.PASS.getCode()) + .isNotNull(BgtProjectRecruitApply::getLeaveTime)); + + if(CollectionUtil.isNotEmpty(list)){ + throw new BaseException("该务工者已进入其他工地"); + } + recruitApply.setEntryTime(dto.getEntryTime()); + recruitApply.setStatus(RecruitApplyStatus.PASS.getCode()); + dto.getEntryMaterials().addAll(dto.getInsurances()); + annexService.insertBatch(dto.getEntryMaterials()); + return updateById(recruitApply); + } + + /** * LC-APP相关 diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java index 4a52a0b..5bd54b0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitServiceImpl.java @@ -23,9 +23,7 @@ import com.ruoyi.fbs.service.IFbsProjectTaskService; 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.util.*; /** * 包工头招工Service业务层处理 @@ -39,7 +37,6 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl queryVOPage = baseMapper.appQueryPageList(queryDTOPage, dto); for(BgtProjectRecruitVO vo : queryVOPage.getRecords()) { BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO(); - bgtProjectRecruitApplyQueryDTO.setRecruitId(vo.getId()); + bgtProjectRecruitApplyQueryDTO.setRecruitIds(Collections.singletonList(vo.getId())); bgtProjectRecruitApplyQueryDTO.setStatus(dto.getStatus()); vo.setApplylist(bgtProjectRecruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO)); } @@ -132,11 +129,10 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl implem return annex; }) .collect(Collectors.toList()); - baseMapper.insertAll(annexes); + if(CollectionUtil.isNotEmpty(annexes)){ + super.saveAll(annexes); + } } @Override diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/AppTaskDTO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/AppTaskDTO.java index b2b0db7..1269e28 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/AppTaskDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/AppTaskDTO.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data @ApiModel("app项目任务列表查询条件") public class AppTaskDTO { @@ -19,6 +21,12 @@ public class AppTaskDTO { @ApiModelProperty("承接人") private Long userId; - @ApiModelProperty("任务状态(1进行中 2已完成)") + @ApiModelProperty("任务状态(0申请中 1进行中 2已完成)") private String status; + + @ApiModelProperty("是否我的任务") + private Boolean myTask; + + @ApiModelProperty(value = "申请任务ID",hidden = true) + private List taskIds; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/TaskApplyDTO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/TaskApplyDTO.java index 596d4b3..dd9847b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/TaskApplyDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/dto/TaskApplyDTO.java @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data -@ApiModel("app申请承接任务") +@ApiModel("app申请/取消项目任务") public class TaskApplyDTO { @ApiModelProperty("任务ID") diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskDetailVO.java index 16f96a1..87aee78 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskDetailVO.java @@ -1,11 +1,13 @@ package com.ruoyi.fbs.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; @Data @@ -66,4 +68,9 @@ public class AppTaskDetailVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; + + @ApiModelProperty("申请者列表") + List applylist; + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskApplyService.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskApplyService.java index fe93936..0162257 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskApplyService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskApplyService.java @@ -54,5 +54,18 @@ public interface IFbsProjectTaskApplyService extends IServicePlus ids, Boolean isValid); + /** + * 申请承接 + */ Boolean appTaskApply(TaskApplyDTO dto); + + /** + * 获取包工头申请的所有任务ID + */ + List getTaskIdsByUserId(Long userId); + + /** + * 取消申请 + */ + Boolean cancelApply(TaskApplyDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java index 10b4c6a..4b67328 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/IFbsProjectTaskService.java @@ -63,5 +63,8 @@ public interface IFbsProjectTaskService extends IServicePlus { */ TableDataInfo appQueryPageList(AppTaskDTO dto); + /** + * 任务详情 + */ AppTaskDetailVO appQueryById(Long id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java index f615409..1b9e7ae 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java @@ -1,11 +1,13 @@ package com.ruoyi.fbs.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; 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.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.fbs.bo.FbsProjectTaskApplyQueryBo; import com.ruoyi.fbs.domain.FbsProjectTaskApply; @@ -17,6 +19,7 @@ import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 分包商项目任务申请Service业务层处理 @@ -75,8 +78,9 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl list = baseMapper.selectList(wrapper); - - //TODO 做一些数据校验,如唯一约束 + if (CollUtil.isNotEmpty(list)) { + throw new BaseException("该任务已申请"); + } } @Override @@ -91,6 +95,19 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl getTaskIdsByUserId(Long userId) { + List list = baseMapper.selectList(Wrappers.lambdaQuery().eq(FbsProjectTaskApply::getUserId, userId)); + return list.stream().map(FbsProjectTaskApply::getTaskId).collect(Collectors.toList()); + } + + @Override + public Boolean cancelApply(TaskApplyDTO dto) { + int delete = baseMapper.delete(Wrappers.lambdaQuery().eq(FbsProjectTaskApply::getTaskId, dto.getTaskId()) + .eq(FbsProjectTaskApply::getUserId, dto.getUserId())); + return delete>0; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java index 15ff71f..84e147d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskServiceImpl.java @@ -1,12 +1,20 @@ 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.ruoyi.bgt.bo.BgtProjectRecruitQueryBo; +import com.ruoyi.bgt.domain.BgtProjectRecruit; +import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO; +import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; +import com.ruoyi.bgt.service.IBgtProjectRecruitService; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.ProjectTaskStatus; +import com.ruoyi.common.enums.RecruitApplyStatus; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo; import com.ruoyi.fbs.domain.FbsProjectTask; @@ -14,15 +22,18 @@ import com.ruoyi.fbs.domain.dto.AppTaskDTO; import com.ruoyi.fbs.domain.vo.AppTaskDetailVO; import com.ruoyi.fbs.domain.vo.AppTaskVO; import com.ruoyi.fbs.mapper.FbsProjectTaskMapper; +import com.ruoyi.fbs.service.IFbsProjectTaskApplyService; import com.ruoyi.fbs.service.IFbsProjectTaskService; import com.ruoyi.zbf.domain.ZbfProject; import com.ruoyi.zbf.service.IZbfProjectService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 分包商项目任务Service业务层处理 @@ -36,6 +47,16 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl appTaskDTOPage = new Page<>(); appTaskDTOPage.setCurrent(dto.getPageNum()); appTaskDTOPage.setSize(dto.getPageSize()); + if(dto.getMyTask() && ObjectUtil.equals(ProjectTaskStatus.APPLY.getCode(),dto.getStatus())){ + List taskIds = taskApplyService.getTaskIdsByUserId(dto.getUserId()); + dto.setTaskIds(taskIds); + } Page appTaskVOPage = baseMapper.appQueryPageList(appTaskDTOPage, dto); return PageUtils.buildDataInfo(appTaskVOPage); } @@ -116,8 +141,21 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList()); + + BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO(); + bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds); + bgtProjectRecruitApplyQueryDTO.setStatus(RecruitApplyStatus.PASS.getCode()); + appTaskDetailVO.setApplylist(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO)); + + + return appTaskDetailVO; } } diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml index e045d0a..8fb27cb 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"