优化
This commit is contained in:
@ -60,8 +60,8 @@ public class AppBgtProjectRecruitController extends BaseController {
|
|||||||
@Log(title = "App发布招工", businessType = BusinessType.INSERT)
|
@Log(title = "App发布招工", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit
|
@RepeatSubmit
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public AjaxResult<Void> add(@Validated @RequestBody BgtProjectRecruit bo) {
|
public AjaxResult<Boolean> add(@Validated @RequestBody BgtProjectRecruit bo) {
|
||||||
return toAjax(iBgtProjectRecruitService.insert(bo) ? 1 : 0);
|
return AjaxResult.success(iBgtProjectRecruitService.insert(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package com.ruoyi.web.controller.common;
|
package com.ruoyi.web.controller.common;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.Validator;
|
||||||
import com.ruoyi.bgt.service.IBgtUserService;
|
import com.ruoyi.bgt.service.IBgtUserService;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.BgtUser;
|
import com.ruoyi.common.core.domain.entity.BgtUser;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
import com.ruoyi.common.core.domain.model.BgtLoginBody;
|
import com.ruoyi.common.core.domain.model.BgtLoginBody;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
@ -11,15 +13,21 @@ import com.ruoyi.common.utils.ServletUtils;
|
|||||||
import com.ruoyi.framework.web.service.AppLoginService;
|
import com.ruoyi.framework.web.service.AppLoginService;
|
||||||
import com.ruoyi.framework.web.service.SysPermissionService;
|
import com.ruoyi.framework.web.service.SysPermissionService;
|
||||||
import com.ruoyi.framework.web.service.TokenService;
|
import com.ruoyi.framework.web.service.TokenService;
|
||||||
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
import com.ruoyi.system.service.ISysMenuService;
|
import com.ruoyi.system.service.ISysMenuService;
|
||||||
import com.ruoyi.wgz.service.IWgzUserService;
|
import com.ruoyi.wgz.service.IWgzUserService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,6 +35,8 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
@Api(value = "App登录验证", tags = {"App登录验证"})
|
||||||
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||||
@RestController
|
@RestController
|
||||||
public class AppLoginController
|
public class AppLoginController
|
||||||
{
|
{
|
||||||
@ -48,6 +58,9 @@ public class AppLoginController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IWgzUserService wgzUserService;
|
private IWgzUserService wgzUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysDictTypeService dictTypeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录方法
|
* 登录方法
|
||||||
*
|
*
|
||||||
@ -55,6 +68,7 @@ public class AppLoginController
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/app/login")
|
@PostMapping("/app/login")
|
||||||
|
@ApiOperation("登录")
|
||||||
public AjaxResult login(@RequestBody BgtLoginBody loginBody)
|
public AjaxResult login(@RequestBody BgtLoginBody loginBody)
|
||||||
{
|
{
|
||||||
Map<String,Object> ajax = new HashMap<>();
|
Map<String,Object> ajax = new HashMap<>();
|
||||||
@ -71,6 +85,7 @@ public class AppLoginController
|
|||||||
* @return 用户信息
|
* @return 用户信息
|
||||||
*/
|
*/
|
||||||
@GetMapping("/app/getInfo")
|
@GetMapping("/app/getInfo")
|
||||||
|
@ApiOperation("获取用户信息")
|
||||||
public AjaxResult getInfo()
|
public AjaxResult getInfo()
|
||||||
{
|
{
|
||||||
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
|
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
|
||||||
@ -103,6 +118,19 @@ public class AppLoginController
|
|||||||
return AjaxResult.success("test");
|
return AjaxResult.success("test");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/dict/type")
|
||||||
|
@ApiOperation("获取字典")
|
||||||
|
public AjaxResult dictType(String dictType)
|
||||||
|
{
|
||||||
|
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
|
||||||
|
if (Validator.isNull(data))
|
||||||
|
{
|
||||||
|
data = new ArrayList<SysDictData>();
|
||||||
|
}
|
||||||
|
return AjaxResult.success(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 获取用户信息
|
// * 获取用户信息
|
||||||
// *
|
// *
|
||||||
|
@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包商项目任务Controller
|
* 分包商项目任务Controller
|
||||||
@ -25,7 +26,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
* @date 2025-02-17
|
* @date 2025-02-17
|
||||||
*/
|
*/
|
||||||
@Api(value = "App分包商项目任务控制器", tags = {"分包商项目任务管理"})
|
@Api(value = "App包工头项目任务控制器", tags = {"App包工头项目任务管理"})
|
||||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/app/fbs/task")
|
@RequestMapping("/app/fbs/task")
|
||||||
@ -36,12 +37,18 @@ public class AppFbsProjectTaskController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* app项目任务列表
|
* app项目任务列表
|
||||||
*/
|
*/
|
||||||
@ApiOperation("App包工头任务列表")
|
@ApiOperation("App包工头任务列表/我的任务")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<AppTaskVO> list(@Validated AppTaskDTO dto) {
|
public TableDataInfo<AppTaskVO> list(@Validated AppTaskDTO dto) {
|
||||||
return iFbsProjectTaskService.appQueryPageList(dto);
|
return iFbsProjectTaskService.appQueryPageList(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("App包工头任务列表(不分页)")
|
||||||
|
@GetMapping("/listAll")
|
||||||
|
public AjaxResult<List<AppTaskVO>> list() {
|
||||||
|
return AjaxResult.success(iFbsProjectTaskService.appQueryList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("App获取项目任务详细信息")
|
@ApiOperation("App获取项目任务详细信息")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
|
@ -203,7 +203,7 @@ swagger:
|
|||||||
# 是否开启swagger
|
# 是否开启swagger
|
||||||
enabled: true
|
enabled: true
|
||||||
# 请求前缀
|
# 请求前缀
|
||||||
pathMapping: /ruoyi
|
pathMapping: /
|
||||||
# 标题
|
# 标题
|
||||||
title: '标题:RuoYi-Vue-Plus后台管理系统_接口文档'
|
title: '标题:RuoYi-Vue-Plus后台管理系统_接口文档'
|
||||||
# 描述
|
# 描述
|
||||||
|
@ -36,6 +36,9 @@ public class BgtProjectTaskProgress implements Serializable {
|
|||||||
@ApiModelProperty("项目ID")
|
@ApiModelProperty("项目ID")
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目ID")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
/** 标段ID */
|
/** 标段ID */
|
||||||
@Excel(name = "标段ID")
|
@Excel(name = "标段ID")
|
||||||
@ApiModelProperty("标段ID")
|
@ApiModelProperty("标段ID")
|
||||||
@ -51,6 +54,12 @@ public class BgtProjectTaskProgress implements Serializable {
|
|||||||
@ApiModelProperty("任务ID")
|
@ApiModelProperty("任务ID")
|
||||||
private Long taskId;
|
private Long taskId;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务名")
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
@ApiModelProperty("用工数量")
|
||||||
|
private Integer taskStaffNum;
|
||||||
|
|
||||||
/** 进度名称 */
|
/** 进度名称 */
|
||||||
@Excel(name = "进度名称")
|
@Excel(name = "进度名称")
|
||||||
@ApiModelProperty("进度名称")
|
@ApiModelProperty("进度名称")
|
||||||
@ -61,11 +70,17 @@ public class BgtProjectTaskProgress implements Serializable {
|
|||||||
@ApiModelProperty("负责人")
|
@ApiModelProperty("负责人")
|
||||||
private String director;
|
private String director;
|
||||||
|
|
||||||
|
@ApiModelProperty("上传人ID")
|
||||||
|
private Long uploaderId;
|
||||||
|
|
||||||
/** 上传人 */
|
/** 上传人 */
|
||||||
@Excel(name = "上传人")
|
@Excel(name = "上传人")
|
||||||
@ApiModelProperty("上传人")
|
@ApiModelProperty("上传人")
|
||||||
private String uploader;
|
private String uploader;
|
||||||
|
|
||||||
|
@ApiModelProperty("上传时间")
|
||||||
|
private LocalDateTime uploadTime;
|
||||||
|
|
||||||
/** 进度 */
|
/** 进度 */
|
||||||
@Excel(name = "进度")
|
@Excel(name = "进度")
|
||||||
@ApiModelProperty("进度")
|
@ApiModelProperty("进度")
|
||||||
|
@ -39,6 +39,9 @@ public class BgtWageApplication implements Serializable {
|
|||||||
@ApiModelProperty("项目ID")
|
@ApiModelProperty("项目ID")
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名")
|
||||||
|
private Long projectName;
|
||||||
|
|
||||||
/** 标段ID */
|
/** 标段ID */
|
||||||
@Excel(name = "标段ID")
|
@Excel(name = "标段ID")
|
||||||
@ApiModelProperty("标段ID")
|
@ApiModelProperty("标段ID")
|
||||||
@ -54,11 +57,35 @@ public class BgtWageApplication implements Serializable {
|
|||||||
@ApiModelProperty("任务ID")
|
@ApiModelProperty("任务ID")
|
||||||
private Long taskId;
|
private Long taskId;
|
||||||
|
|
||||||
/** 申请人ID */
|
@ApiModelProperty("任务名")
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
@ApiModelProperty("用工数量")
|
||||||
|
private Integer taskStaffNum;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务地址")
|
||||||
|
private String taskAddress;
|
||||||
|
|
||||||
|
/** 申请人ID */
|
||||||
@Excel(name = "申请人ID")
|
@Excel(name = "申请人ID")
|
||||||
@ApiModelProperty("申请人ID")
|
@ApiModelProperty("申请人ID")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
|
@ApiModelProperty("申请人姓名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty("联系电话")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行")
|
||||||
|
private String bank;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行卡号")
|
||||||
|
private String cardNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("申请时间")
|
||||||
|
private String applyTime;
|
||||||
|
|
||||||
/** 申请金额 */
|
/** 申请金额 */
|
||||||
@Excel(name = "申请金额")
|
@Excel(name = "申请金额")
|
||||||
@ApiModelProperty("申请金额")
|
@ApiModelProperty("申请金额")
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package com.ruoyi.bgt.domain.dto;
|
package com.ruoyi.bgt.domain.dto;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 包工头项目任务进度分页查询对象 bgt_project_task_progress
|
* 包工头项目任务进度分页查询对象 bgt_project_task_progress
|
||||||
@ -14,9 +12,8 @@ import lombok.EqualsAndHashCode;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ApiModel("App包工头项目任务进度分页查询对象")
|
@ApiModel("App包工头项目任务进度分页查询对象")
|
||||||
public class BgtProjectTaskProgressQueryDTO extends BaseEntity {
|
public class BgtProjectTaskProgressQueryDTO {
|
||||||
|
|
||||||
/** 分页大小 */
|
/** 分页大小 */
|
||||||
@ApiModelProperty("分页大小")
|
@ApiModelProperty("分页大小")
|
||||||
@ -29,4 +26,7 @@ public class BgtProjectTaskProgressQueryDTO extends BaseEntity {
|
|||||||
@ApiModelProperty("审核状态(1审核中 2已审核 3未审核)")
|
@ApiModelProperty("审核状态(1审核中 2已审核 3未审核)")
|
||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "上传人Id",hidden = true)
|
||||||
|
private Long uploaderId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,6 @@ public class BgtProjectTaskProgressVO implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty("上传时间")
|
@ApiModelProperty("上传时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime uploadTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,14 +25,15 @@ import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
|
|||||||
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
|
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
|
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
|
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes;
|
|
||||||
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
|
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 包工头招工Service业务层处理
|
* 包工头招工Service业务层处理
|
||||||
@ -88,6 +89,7 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
|
|||||||
@Override
|
@Override
|
||||||
public Boolean insert(BgtProjectRecruit bo) {
|
public Boolean insert(BgtProjectRecruit bo) {
|
||||||
BgtProjectRecruit add = BeanUtil.toBean(bo, BgtProjectRecruit.class);
|
BgtProjectRecruit add = BeanUtil.toBean(bo, BgtProjectRecruit.class);
|
||||||
|
add.setUserId(SecurityUtils.getAppUserId());
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
return save(add);
|
return save(add);
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,8 @@ import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
|
|||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import com.ruoyi.zbf.domain.ZbfProject;
|
|
||||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -114,6 +113,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
Page<BgtProjectTaskProgressQueryDTO> queryDTOPage = new Page<>();
|
Page<BgtProjectTaskProgressQueryDTO> queryDTOPage = new Page<>();
|
||||||
queryDTOPage.setCurrent(dto.getPageNum());
|
queryDTOPage.setCurrent(dto.getPageNum());
|
||||||
queryDTOPage.setSize(dto.getPageSize());
|
queryDTOPage.setSize(dto.getPageSize());
|
||||||
|
dto.setUploaderId(SecurityUtils.getAppUserId());
|
||||||
Page<BgtProjectTaskProgressVO> queryVOPage = baseMapper.appQueryPageList(queryDTOPage, dto);
|
Page<BgtProjectTaskProgressVO> queryVOPage = baseMapper.appQueryPageList(queryDTOPage, dto);
|
||||||
return PageUtils.buildDataInfo(queryVOPage);
|
return PageUtils.buildDataInfo(queryVOPage);
|
||||||
}
|
}
|
||||||
@ -121,14 +121,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
@Override
|
@Override
|
||||||
public BgtProjectTaskProgressDetailVO appQueryById(Long id) {
|
public BgtProjectTaskProgressDetailVO appQueryById(Long id) {
|
||||||
BgtProjectTaskProgress progress = getById(id);
|
BgtProjectTaskProgress progress = getById(id);
|
||||||
BgtProjectTaskProgressDetailVO bean = BeanUtil.toBean(progress, BgtProjectTaskProgressDetailVO.class);
|
return BeanUtil.toBean(progress, BgtProjectTaskProgressDetailVO.class);
|
||||||
ZbfProject project = zbfProjectService.getById(progress.getProjectId());
|
|
||||||
bean.setProjectName(project.getProjectName());
|
|
||||||
FbsProjectTask task = fbsProjectTaskService.getById(progress.getTaskId());
|
|
||||||
bean.setTaskName(task.getTaskName());
|
|
||||||
bean.setTaskAddress(task.getTaskAddress());
|
|
||||||
bean.setTaskStaffNum(task.getTaskStaffNum());
|
|
||||||
return bean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -14,13 +14,10 @@ import com.ruoyi.bgt.domain.vo.BgtWageApplicationVO;
|
|||||||
import com.ruoyi.bgt.mapper.BgtWageApplicationMapper;
|
import com.ruoyi.bgt.mapper.BgtWageApplicationMapper;
|
||||||
import com.ruoyi.bgt.service.IBgtUserService;
|
import com.ruoyi.bgt.service.IBgtUserService;
|
||||||
import com.ruoyi.bgt.service.IBgtWageApplicationService;
|
import com.ruoyi.bgt.service.IBgtWageApplicationService;
|
||||||
import com.ruoyi.common.core.domain.entity.BgtUser;
|
|
||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import com.ruoyi.zbf.domain.ZbfProject;
|
|
||||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -124,21 +121,7 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl<BgtWageApplic
|
|||||||
@Override
|
@Override
|
||||||
public BgtWageApplicationDetailVO appQueryById(Long id) {
|
public BgtWageApplicationDetailVO appQueryById(Long id) {
|
||||||
BgtWageApplication application = getById(id);
|
BgtWageApplication application = getById(id);
|
||||||
BgtWageApplicationDetailVO detailVO = BeanUtil.copyProperties(application, BgtWageApplicationDetailVO.class);
|
return BeanUtil.copyProperties(application, BgtWageApplicationDetailVO.class);
|
||||||
//项目
|
|
||||||
ZbfProject project = projectService.getById(application.getProjectId());
|
|
||||||
detailVO.setProjectName(project.getProjectName());
|
|
||||||
//任务
|
|
||||||
FbsProjectTask task = taskService.getById(application.getTaskId());
|
|
||||||
detailVO.setTaskAddress(task.getTaskAddress());
|
|
||||||
detailVO.setTaskName(task.getTaskName());
|
|
||||||
detailVO.setTaskStaffNum(task.getTaskStaffNum());
|
|
||||||
//人员
|
|
||||||
BgtUser bgtUser = bgtUserService.selectUserByUserId(application.getUserId());
|
|
||||||
detailVO.setBank(bgtUser.getBank());
|
|
||||||
detailVO.setCardNo(bgtUser.getCardNo());
|
|
||||||
detailVO.setPhone(bgtUser.getPhone());
|
|
||||||
return detailVO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -71,6 +71,9 @@ public class FbsProjectTask implements Serializable {
|
|||||||
@ApiModelProperty("任务开始时间")
|
@ApiModelProperty("任务开始时间")
|
||||||
private String taskBeginTime;
|
private String taskBeginTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务结束时间")
|
||||||
|
private String taskEndTime;
|
||||||
|
|
||||||
/** 联系人 */
|
/** 联系人 */
|
||||||
@Excel(name = "联系人")
|
@Excel(name = "联系人")
|
||||||
@ApiModelProperty("联系人")
|
@ApiModelProperty("联系人")
|
||||||
|
@ -18,7 +18,7 @@ public class AppTaskDTO {
|
|||||||
@ApiModelProperty("任务名称")
|
@ApiModelProperty("任务名称")
|
||||||
private String taskName;
|
private String taskName;
|
||||||
|
|
||||||
@ApiModelProperty("承接人")
|
@ApiModelProperty(value = "承接人",hidden = true)
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@ApiModelProperty("任务状态(0申请中 1进行中 2已完成)")
|
@ApiModelProperty("任务状态(0申请中 1进行中 2已完成)")
|
||||||
|
@ -4,21 +4,38 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||||
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
|
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
|
||||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel("包工头项目任务列表")
|
@ApiModel("包工头项目任务详情")
|
||||||
public class AppTaskDetailVO {
|
public class AppTaskDetailVO {
|
||||||
|
|
||||||
@ApiModelProperty("主键ID")
|
@ApiModelProperty("主键ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/** 项目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 subId;
|
||||||
|
|
||||||
/** 任务名称 */
|
/** 任务名称 */
|
||||||
@ApiModelProperty("任务名称")
|
@ApiModelProperty("任务名称")
|
||||||
private String taskName;
|
private String taskName;
|
||||||
@ -79,7 +96,7 @@ public class AppTaskDetailVO {
|
|||||||
private Integer taskReceiveAmount;
|
private Integer taskReceiveAmount;
|
||||||
|
|
||||||
@ApiModelProperty("任务付款金额")
|
@ApiModelProperty("任务付款金额")
|
||||||
private Integer taskPaymentAmount;
|
private BigDecimal taskPaymentAmount;
|
||||||
|
|
||||||
@ApiModelProperty("收款申请列表")
|
@ApiModelProperty("收款申请列表")
|
||||||
private List<BgtWageApplicationListVO> wageApplicationList;
|
private List<BgtWageApplicationListVO> wageApplicationList;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.fbs.domain.vo;
|
package com.ruoyi.fbs.domain.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -15,6 +16,21 @@ public class AppTaskVO {
|
|||||||
@ApiModelProperty("主键ID")
|
@ApiModelProperty("主键ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/** 项目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 subId;
|
||||||
|
|
||||||
@ApiModelProperty("任务名称")
|
@ApiModelProperty("任务名称")
|
||||||
private String taskName;
|
private String taskName;
|
||||||
/** 任务地址 */
|
/** 任务地址 */
|
||||||
@ -30,8 +46,14 @@ public class AppTaskVO {
|
|||||||
@ApiModelProperty("项目名")
|
@ApiModelProperty("项目名")
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务开始时间")
|
||||||
|
private String taskBeginTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("任务结束时间")
|
||||||
|
private String taskEndTime;
|
||||||
|
|
||||||
@ApiModelProperty("发布时间")
|
@ApiModelProperty("发布时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
@ApiModelProperty("申请数量")
|
@ApiModelProperty("申请数量")
|
||||||
|
@ -63,6 +63,8 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
|
|||||||
*/
|
*/
|
||||||
TableDataInfo<AppTaskVO> appQueryPageList(AppTaskDTO dto);
|
TableDataInfo<AppTaskVO> appQueryPageList(AppTaskDTO dto);
|
||||||
|
|
||||||
|
List<AppTaskVO> appQueryList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务详情
|
* 任务详情
|
||||||
*/
|
*/
|
||||||
|
@ -2,7 +2,6 @@ package com.ruoyi.fbs.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@ -24,6 +23,7 @@ import com.ruoyi.common.enums.ProjectTaskStatus;
|
|||||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||||
import com.ruoyi.common.util.DataUtil;
|
import com.ruoyi.common.util.DataUtil;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
||||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||||
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
import com.ruoyi.fbs.domain.dto.AppTaskDTO;
|
||||||
@ -33,12 +33,13 @@ import com.ruoyi.fbs.mapper.FbsProjectTaskMapper;
|
|||||||
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskApplyService;
|
||||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||||
|
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
||||||
import com.ruoyi.zbf.domain.ZbfProject;
|
import com.ruoyi.zbf.domain.ZbfProject;
|
||||||
import com.ruoyi.zbf.service.IZbfProjectService;
|
import com.ruoyi.zbf.service.IZbfProjectService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -57,7 +58,6 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IFbsProjectTaskApplyService taskApplyService;
|
private IFbsProjectTaskApplyService taskApplyService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
|
||||||
private IBgtProjectRecruitService recruitService;
|
private IBgtProjectRecruitService recruitService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBgtProjectRecruitApplyService recruitApplyService;
|
private IBgtProjectRecruitApplyService recruitApplyService;
|
||||||
@ -67,6 +67,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
private IBgtWageApplicationService wageApplicationService;
|
private IBgtWageApplicationService wageApplicationService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWgzAttendanceService attendanceService;
|
private IWgzAttendanceService attendanceService;
|
||||||
|
@Autowired
|
||||||
|
private IWgzPayCalculationService payCalculationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FbsProjectTask queryById(Long id){
|
public FbsProjectTask queryById(Long id){
|
||||||
@ -140,14 +142,34 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
Page<AppTaskDTO> appTaskDTOPage = new Page<>();
|
Page<AppTaskDTO> appTaskDTOPage = new Page<>();
|
||||||
appTaskDTOPage.setCurrent(dto.getPageNum());
|
appTaskDTOPage.setCurrent(dto.getPageNum());
|
||||||
appTaskDTOPage.setSize(dto.getPageSize());
|
appTaskDTOPage.setSize(dto.getPageSize());
|
||||||
if(dto.getMyTask() && ObjectUtil.equals(ProjectTaskStatus.APPLY.getCode(),dto.getStatus())){
|
List<Long> taskIds = new ArrayList<>();
|
||||||
List<Long> taskIds = taskApplyService.getTaskIdsByUserId(dto.getUserId());
|
if(ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())){
|
||||||
|
taskIds = taskApplyService.getTaskIdsByUserId(SecurityUtils.getAppUserId());
|
||||||
dto.setTaskIds(taskIds);
|
dto.setTaskIds(taskIds);
|
||||||
}
|
}
|
||||||
|
if(dto.getMyTask() && !ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())){
|
||||||
|
dto.setUserId(SecurityUtils.getAppUserId());
|
||||||
|
}
|
||||||
|
|
||||||
Page<AppTaskVO> appTaskVOPage = baseMapper.appQueryPageList(appTaskDTOPage, dto);
|
Page<AppTaskVO> appTaskVOPage = baseMapper.appQueryPageList(appTaskDTOPage, dto);
|
||||||
|
if(dto.getMyTask() && ProjectTaskStatus.APPLY.getCode().equals(dto.getStatus())
|
||||||
|
&&CollectionUtil.isEmpty(taskIds)){
|
||||||
|
appTaskVOPage.setRecords(new ArrayList<AppTaskVO>());
|
||||||
|
appTaskVOPage.setTotal(0);
|
||||||
|
}
|
||||||
return PageUtils.buildDataInfo(appTaskVOPage);
|
return PageUtils.buildDataInfo(appTaskVOPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppTaskVO> appQueryList() {
|
||||||
|
LambdaQueryWrapper<FbsProjectTask> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
System.out.println(SecurityUtils.getAppUserId());
|
||||||
|
wrapper.eq(FbsProjectTask::getUserId,SecurityUtils.getAppUserId());
|
||||||
|
wrapper.eq(FbsProjectTask::getStatus,ProjectTaskStatus.PROGRESS.getCode());
|
||||||
|
List<FbsProjectTask> fbsProjectTasks = baseMapper.selectList(wrapper);
|
||||||
|
return BeanUtil.copyToList(fbsProjectTasks,AppTaskVO.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AppTaskDetailVO appQueryById(Long id) {
|
public AppTaskDetailVO appQueryById(Long id) {
|
||||||
FbsProjectTask byId = getById(id);
|
FbsProjectTask byId = getById(id);
|
||||||
@ -155,43 +177,47 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
|||||||
//项目信息
|
//项目信息
|
||||||
ZbfProject project = zbfProjectService.getById(byId.getProjectId());
|
ZbfProject project = zbfProjectService.getById(byId.getProjectId());
|
||||||
appTaskDetailVO.setProjectName(project.getProjectName());
|
appTaskDetailVO.setProjectName(project.getProjectName());
|
||||||
//务工者数量列表
|
|
||||||
BgtProjectRecruitQueryBo bgtProjectRecruitQueryBo = new BgtProjectRecruitQueryBo();
|
|
||||||
bgtProjectRecruitQueryBo.setTaskId(id);
|
|
||||||
List<Long> recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
if(ProjectTaskStatus.PROGRESS.getCode().equals(byId.getStatus())
|
||||||
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
|| ProjectTaskStatus.COMPLETE.getCode().equals(byId.getStatus())){
|
||||||
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
//务工者数量列表
|
||||||
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
BgtProjectRecruitQueryBo bgtProjectRecruitQueryBo = new BgtProjectRecruitQueryBo();
|
||||||
//任务进度
|
bgtProjectRecruitQueryBo.setTaskId(id);
|
||||||
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
List<Long> recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
//结算情况
|
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
||||||
//收款申请列表
|
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
||||||
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
||||||
wageDTO.setTaskId(id);
|
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
||||||
List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
|
//任务进度
|
||||||
appTaskDetailVO.setWageApplicationList(wageList);
|
appTaskDetailVO.setProgress(progressService.getLastProgress(id));
|
||||||
//收款金额
|
|
||||||
Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
|
|
||||||
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
|
||||||
.sum();
|
|
||||||
appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
|
|
||||||
//付款金额
|
|
||||||
|
|
||||||
//考勤情况
|
//结算情况
|
||||||
LocalDate date = LocalDate.now();
|
//收款申请列表
|
||||||
LocalDate startOfMonth = date.withDayOfMonth(1);
|
BgtWageApplicationQueryDTO wageDTO = new BgtWageApplicationQueryDTO();
|
||||||
List<BgtAttendanceCountVO> countVOS = attendanceService.countByTaskId(id, startOfMonth, date);
|
wageDTO.setTaskId(id);
|
||||||
if(CollectionUtil.isNotEmpty(countVOS)){
|
List<BgtWageApplicationListVO> wageList = wageApplicationService.appQueryList(wageDTO);
|
||||||
BgtAttendanceCountVO vo = countVOS.get(0);
|
appTaskDetailVO.setWageApplicationList(wageList);
|
||||||
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startOfMonth, date));
|
//收款金额
|
||||||
appTaskDetailVO.setTotalNum(vo.getTotalNum());
|
Integer taskReceiveAmount = wageList.stream().filter(wage -> AuditStatus.PASS.getCode().equals(wage.getAuditStatus()))
|
||||||
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
|
.mapToInt(BgtWageApplicationListVO::getApplicantAmount)
|
||||||
appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100);
|
.sum();
|
||||||
|
appTaskDetailVO.setTaskReceiveAmount(taskReceiveAmount);
|
||||||
|
//付款金额
|
||||||
|
BigDecimal payByTaskAndBgt = payCalculationService.getPayByTaskAndBgt(byId.getId(), byId.getUserId());
|
||||||
|
appTaskDetailVO.setTaskPaymentAmount(payByTaskAndBgt);
|
||||||
|
//考勤情况
|
||||||
|
LocalDate date = LocalDate.now();
|
||||||
|
LocalDate startOfMonth = date.withDayOfMonth(1);
|
||||||
|
List<BgtAttendanceCountVO> countVOS = attendanceService.countByTaskId(id, startOfMonth, date);
|
||||||
|
if(CollectionUtil.isNotEmpty(countVOS)){
|
||||||
|
BgtAttendanceCountVO vo = countVOS.get(0);
|
||||||
|
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startOfMonth, date));
|
||||||
|
appTaskDetailVO.setTotalNum(vo.getTotalNum());
|
||||||
|
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
|
||||||
|
appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return appTaskDetailVO;
|
return appTaskDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
52
ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java
Normal file
52
ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package com.ruoyi.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.lang.Console;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
||||||
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
|
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||||
|
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务定时任务
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Component("businessTask")
|
||||||
|
public class BusinessTask
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IBgtProjectRecruitService recruitService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBgtProjectRecruitApplyService recruitApplyService;
|
||||||
|
/**
|
||||||
|
* 招工任务招工时间结束自动拒绝未选择的务工者
|
||||||
|
*/
|
||||||
|
public void recruitRefuse()
|
||||||
|
{
|
||||||
|
Console.log("开始招工拒绝任务");
|
||||||
|
List<String> status = Arrays.asList(RecruitApplyStatus.SIGN_UP.getCode(), RecruitApplyStatus.BGT_PASS.getCode());
|
||||||
|
List<BgtProjectRecruit> recruitList = recruitService.list(Wrappers.<BgtProjectRecruit>lambdaQuery()
|
||||||
|
.lt(BgtProjectRecruit::getRecruitEndTime, LocalDate.now()));
|
||||||
|
if(CollectionUtil.isNotEmpty(recruitList)){
|
||||||
|
List<Long> recruitIds = recruitList.stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
|
||||||
|
recruitApplyService.<BgtProjectRecruitApply>lambdaUpdate()
|
||||||
|
.in(BgtProjectRecruitApply::getRecruitId, recruitIds)
|
||||||
|
.in(BgtProjectRecruitApply::getStatus,status)
|
||||||
|
.set(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.BGT_REFUSE.getCode())
|
||||||
|
.update();
|
||||||
|
}
|
||||||
|
Console.log("招工拒绝任务结束,此次拒绝任务个数:"+recruitList.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -24,4 +24,8 @@ public class SnowflakeIdUtil {
|
|||||||
public static long generateId() {
|
public static long generateId() {
|
||||||
return snowflake.nextId();
|
return snowflake.nextId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(generateId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
|
|||||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -97,4 +98,9 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
|
|||||||
*/
|
*/
|
||||||
Boolean appUpdate(BgtPayCalculationUpdateDTO dto);
|
Boolean appUpdate(BgtPayCalculationUpdateDTO dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务和包工头查询已同意的工资
|
||||||
|
*/
|
||||||
|
BigDecimal getPayByTaskAndBgt(Long taskId, Long auditorUserId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -193,4 +194,12 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
|||||||
payCalculation.setAuditorTime(LocalDateTime.now());
|
payCalculation.setAuditorTime(LocalDateTime.now());
|
||||||
return updateById(payCalculation);
|
return updateById(payCalculation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getPayByTaskAndBgt(Long taskId,Long auditorUserId) {
|
||||||
|
|
||||||
|
List<WgzPayCalculation> list = list(Wrappers.<WgzPayCalculation>lambdaQuery().eq(WgzPayCalculation::getTaskId, taskId)
|
||||||
|
.eq(WgzPayCalculation::getAuditorUserId, auditorUserId));
|
||||||
|
return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,13 +33,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
bptp.progress,
|
bptp.progress,
|
||||||
bptp.audit_status,
|
bptp.audit_status,
|
||||||
bptp.create_time,
|
bptp.create_time,
|
||||||
fpt.task_staff_num,
|
bptp.task_staff_num,
|
||||||
fpt.task_name,
|
bptp.task_name,
|
||||||
zp.project_name
|
bptp.project_name
|
||||||
from bgt_project_task_progress bptp
|
from bgt_project_task_progress bptp
|
||||||
left join fbs_project_task fpt on bptp.task_id = fpt.id
|
where bptp.uploader_id = #{dto.createBy}
|
||||||
left join zbf_project zp on bptp.project_id = zp.id
|
|
||||||
where bptp.create_by = #{dto.createBy}
|
|
||||||
<if test="dto.auditStatus != null and dto.auditStatus != '' ">
|
<if test="dto.auditStatus != null and dto.auditStatus != '' ">
|
||||||
and bptp.audit_status = #{dto.auditStatus}
|
and bptp.audit_status = #{dto.auditStatus}
|
||||||
</if>
|
</if>
|
||||||
|
@ -26,18 +26,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<select id="appQueryPageList" resultType="com.ruoyi.bgt.domain.vo.BgtWageApplicationVO">
|
<select id="appQueryPageList" resultType="com.ruoyi.bgt.domain.vo.BgtWageApplicationVO">
|
||||||
select fpt.task_name,
|
select bwa.task_name,
|
||||||
fpt.task_staff_num,
|
bwa.task_staff_num,
|
||||||
fpt.task_address,
|
bwa.task_address,
|
||||||
bwa.applicant_amount,
|
bwa.applicant_amount,
|
||||||
bwa.create_time,
|
bwa.create_time,
|
||||||
bwa.id,
|
bwa.id,
|
||||||
bu.username,
|
bwa.username,
|
||||||
zp.project_name
|
bwa.project_name
|
||||||
from bgt_wage_application bwa
|
from bgt_wage_application bwa
|
||||||
left join bgt_user bu on bwa.user_id = bu.user_id
|
|
||||||
left join zbf_project zp on zp.id = bwa.project_id
|
|
||||||
left join fbs_project_task fpt on fpt.id = bwa.task_id
|
|
||||||
<where>
|
<where>
|
||||||
<if test="dto.userId != null ">
|
<if test="dto.userId != null ">
|
||||||
and bwa.user_id = #{dto.userId}
|
and bwa.user_id = #{dto.userId}
|
||||||
|
@ -31,9 +31,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="appQueryPageList" resultType="com.ruoyi.fbs.domain.vo.AppTaskVO">
|
<select id="appQueryPageList" resultType="com.ruoyi.fbs.domain.vo.AppTaskVO">
|
||||||
select fpt.id,
|
select fpt.id,
|
||||||
|
fpt.project_id,
|
||||||
|
fpt.section_id,
|
||||||
|
fpt.sub_id,
|
||||||
fpt.task_name,
|
fpt.task_name,
|
||||||
fpt.task_staff_num,
|
fpt.task_staff_num,
|
||||||
fpt.task_amount,
|
fpt.task_amount,
|
||||||
|
fpt.task_begin_time,
|
||||||
|
fpt.task_end_time,
|
||||||
zp.project_name,
|
zp.project_name,
|
||||||
fpt.task_describe,
|
fpt.task_describe,
|
||||||
fpt.task_address,
|
fpt.task_address,
|
||||||
@ -43,13 +48,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
from fbs_project_task fpt
|
from fbs_project_task fpt
|
||||||
left join zbf_project zp on fpt.project_id = zp.id
|
left join zbf_project zp on fpt.project_id = zp.id
|
||||||
<where>
|
<where>
|
||||||
<if test="dto.taskIds != null and dto.taskIds.size() > 0">
|
<choose>
|
||||||
and fpt.id IN
|
<when test="dto.myTask">
|
||||||
<foreach item="item" index="index" collection="dto.taskIds"
|
<if test="dto.taskIds != null and dto.taskIds.size() > 0">
|
||||||
open="(" separator="," close=")">
|
and fpt.id IN
|
||||||
#{item}
|
<foreach item="item" index="index" collection="dto.taskIds"
|
||||||
</foreach>
|
open="(" separator="," close=")">
|
||||||
</if>
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<if test="dto.taskIds != null and dto.taskIds.size() > 0">
|
||||||
|
and fpt.id not IN
|
||||||
|
<foreach item="item" index="index" collection="dto.taskIds"
|
||||||
|
open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
|
||||||
<if test="dto.taskName != null and dto.taskName != '' ">
|
<if test="dto.taskName != null and dto.taskName != '' ">
|
||||||
and fpt.task_name like concat('%', #{dto.taskName}, '%')
|
and fpt.task_name like concat('%', #{dto.taskName}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
from wgz_attendance
|
from wgz_attendance
|
||||||
where date between #{beginDate} and #{endDate}
|
where date between #{beginDate} and #{endDate}
|
||||||
and (missed_in = 0 or missed_out = 0)
|
and (missed_in = 0 or missed_out = 0)
|
||||||
and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} ))
|
and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} )
|
||||||
group by date
|
group by date
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user