优化
This commit is contained in:
		@ -0,0 +1,73 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.dto;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@Accessors(chain = true)
 | 
			
		||||
@ApiModel("包工头为务工者申请工资结算(新增)请求对象")
 | 
			
		||||
public class BgtApplyForWgzPayAddDTO implements Serializable {
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务ID")
 | 
			
		||||
	private Long taskId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("招工ID")
 | 
			
		||||
	private Long recruitId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务名称")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务地址")
 | 
			
		||||
	private String taskAddress;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("招工名称")
 | 
			
		||||
	private String recruitName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("务工者ID")
 | 
			
		||||
	private Long userId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请人名称")
 | 
			
		||||
	private String userName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("进场时间")
 | 
			
		||||
	private LocalDate entryTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("退场时间(注意:完成项目才填写退场时间)")
 | 
			
		||||
	private LocalDate leaveTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("工资金额")
 | 
			
		||||
	private BigDecimal recruitAmount;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("出勤天数")
 | 
			
		||||
	private Integer num;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("务工状态")
 | 
			
		||||
	private String workingState;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("联系电话")
 | 
			
		||||
	private String phone;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行")
 | 
			
		||||
	private String bank;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行卡号")
 | 
			
		||||
	private String cardNo;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("备注")
 | 
			
		||||
	private String remark;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("附件实体数据")
 | 
			
		||||
	private List<WgzPayCalculationFiles> payCalculation;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -6,8 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
import org.springframework.format.annotation.DateTimeFormat;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@ -31,6 +31,7 @@ public class BgtMessageDetailDTO {
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("日期")
 | 
			
		||||
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
 | 
			
		||||
	@DateTimeFormat(pattern = "yyyy-MM-dd")
 | 
			
		||||
	private LocalDate date;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("大类型(字典bgt_message_large_type)")
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.dto;
 | 
			
		||||
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 工资结算分页查询对象 wgz_pay_calculation
 | 
			
		||||
 *
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 * @date 2025-02-21
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@Accessors(chain = true)
 | 
			
		||||
@ApiModel("包工头工资结算审核记录查询对象")
 | 
			
		||||
public class BgtPayCalculationRecordDTO {
 | 
			
		||||
 | 
			
		||||
	/** 分页大小 */
 | 
			
		||||
	@ApiModelProperty("分页大小")
 | 
			
		||||
	private Integer pageSize;
 | 
			
		||||
	/** 当前页数 */
 | 
			
		||||
	@ApiModelProperty("当前页数")
 | 
			
		||||
	private Integer pageNum;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("招工ID")
 | 
			
		||||
	private Long recruitId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请人ID")
 | 
			
		||||
	private Long userId;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,73 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.vo;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@Accessors(chain = true)
 | 
			
		||||
@ApiModel("包工头为务工者申请工资结算基础信息对象")
 | 
			
		||||
public class BgtApplyForWgzPayAddInfoVO implements Serializable {
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务ID")
 | 
			
		||||
	private Long taskId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("招工ID")
 | 
			
		||||
	private Long recruitId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务名称")
 | 
			
		||||
	private String taskName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务地址")
 | 
			
		||||
	private String taskAddress;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("招工名称")
 | 
			
		||||
	private String recruitName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("务工者ID")
 | 
			
		||||
	private Long userId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请人名称")
 | 
			
		||||
	private String userName;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("进场时间")
 | 
			
		||||
	private LocalDate entryTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("退场时间(注意:完成项目才填写退场时间)")
 | 
			
		||||
	private LocalDate leaveTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("工资金额")
 | 
			
		||||
	private BigDecimal recruitAmount;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("出勤天数")
 | 
			
		||||
	private Integer num;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("务工状态")
 | 
			
		||||
	private String workingState;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("联系电话")
 | 
			
		||||
	private String phone;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行")
 | 
			
		||||
	private String bank;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("银行卡号")
 | 
			
		||||
	private String cardNo;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("备注")
 | 
			
		||||
	private String remark;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("附件实体数据")
 | 
			
		||||
	private List<WgzPayCalculationFiles> payCalculation;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -71,4 +71,6 @@ public class BgtDailyClockDetailVO {
 | 
			
		||||
	@ApiModelProperty("已读|审核时间")
 | 
			
		||||
	private LocalDateTime auditorTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("日报状态(0正常 1补卡)")
 | 
			
		||||
	private String status;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -33,5 +33,11 @@ public class BgtDailyClockListVO {
 | 
			
		||||
	@ApiModelProperty("姓名")
 | 
			
		||||
	private String username;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("日报状态(0正常 1补卡)")
 | 
			
		||||
	private String status;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("创建时间")
 | 
			
		||||
	private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -27,6 +27,10 @@ public class BgtMessageDetailVO implements Serializable {
 | 
			
		||||
    @ApiModelProperty("主键自增ID")
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("发送人")
 | 
			
		||||
	@JsonFormat(shape = JsonFormat.Shape.STRING)
 | 
			
		||||
	private Long senderId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("表ID")
 | 
			
		||||
	private Long tableId;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.dto;
 | 
			
		||||
package com.ruoyi.bgt.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
@ -43,4 +43,18 @@ public class BgtPayCalculationDetailBaseVO {
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("剩余工资")
 | 
			
		||||
	private BigDecimal residueAmount;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("身份证号")
 | 
			
		||||
	private String identityCard;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	//结算工资需要的参数
 | 
			
		||||
	@ApiModelProperty("招工Id")
 | 
			
		||||
	private Long recruitId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("任务Id")
 | 
			
		||||
	private Long taskId;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("务工者Id")
 | 
			
		||||
	private Long userId;
 | 
			
		||||
}
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
package com.ruoyi.bgt.domain.dto;
 | 
			
		||||
package com.ruoyi.bgt.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import io.swagger.annotations.ApiModel;
 | 
			
		||||
@ -146,4 +146,9 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
 | 
			
		||||
	 * 根据任务和务工者Id获该务工者的报名信息
 | 
			
		||||
	 */
 | 
			
		||||
	BgtProjectRecruitApply getOne(Long taskId,Long userId);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 根据招工和务工者Id获该务工者的最近一条申请信息(只查进场和立场)
 | 
			
		||||
	 */
 | 
			
		||||
	BgtProjectRecruitApply getOneByUserIdAndRecruitId(Long userId, Long recruitId);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -671,8 +671,21 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public BgtProjectRecruitApply getOne(Long taskId, Long userId) {
 | 
			
		||||
		List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery().eq(BgtProjectRecruitApply::getTaskId, taskId)
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getUserId, userId));
 | 
			
		||||
		List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getTaskId, taskId)
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getUserId, userId)
 | 
			
		||||
			.orderByDesc(BgtProjectRecruitApply::getCreateTime));
 | 
			
		||||
		return CollectionUtil.isNotEmpty(list)?list.get(0):new BgtProjectRecruitApply();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public BgtProjectRecruitApply getOneByUserIdAndRecruitId(Long userId, Long recruitId) {
 | 
			
		||||
 | 
			
		||||
		List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getRemark, recruitId)
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getUserId, userId)
 | 
			
		||||
			.in(BgtProjectRecruitApply::getStatus, RecruitApplyStatus.getWorkStatus())
 | 
			
		||||
			.orderByDesc(BgtProjectRecruitApply::getCreateTime));
 | 
			
		||||
		return list.get(0);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -185,7 +185,8 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
 | 
			
		||||
	@Override
 | 
			
		||||
	public List<BgtProjectRecruit> appQueryList() {
 | 
			
		||||
		return list(Wrappers.<BgtProjectRecruit>lambdaQuery()
 | 
			
		||||
			.eq(BgtProjectRecruit::getUserId, SecurityUtils.getAppUserId()));
 | 
			
		||||
			.eq(BgtProjectRecruit::getUserId, SecurityUtils.getAppUserId())
 | 
			
		||||
			.orderByDesc(BgtProjectRecruit::getCreateTime));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
 | 
			
		||||
@ -64,7 +64,7 @@ public class AppTaskVO {
 | 
			
		||||
	private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请数量")
 | 
			
		||||
	private Integer applyNum;
 | 
			
		||||
	private Integer applyNum=0;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("判断标志")
 | 
			
		||||
	private Boolean myTask;
 | 
			
		||||
 | 
			
		||||
@ -129,6 +129,9 @@ public class WgzPayCalculation implements Serializable {
 | 
			
		||||
    @ApiModelProperty("同意|拒绝时间")
 | 
			
		||||
    private LocalDateTime auditorTime;
 | 
			
		||||
 | 
			
		||||
	@ApiModelProperty("申请人类型")
 | 
			
		||||
	private String operatorType;
 | 
			
		||||
 | 
			
		||||
    /** 删除标志(0代表存在 2代表删除) */
 | 
			
		||||
    @Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除")
 | 
			
		||||
    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,12 @@
 | 
			
		||||
package com.ruoyi.wgz.service;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtApplyForWgzPayAddDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationRecordDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtApplyForWgzPayAddInfoVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailBaseVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailListVO;
 | 
			
		||||
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
 | 
			
		||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
 | 
			
		||||
@ -113,6 +116,9 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
 | 
			
		||||
	/**
 | 
			
		||||
	 * 总体考勤情况-工资结算-结算记录
 | 
			
		||||
	 */
 | 
			
		||||
	List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId);
 | 
			
		||||
	TableDataInfo<BgtPayCalculationDetailListVO> record(BgtPayCalculationRecordDTO dto);
 | 
			
		||||
 | 
			
		||||
	Boolean bgtAdd(BgtApplyForWgzPayAddDTO dto);
 | 
			
		||||
 | 
			
		||||
	BgtApplyForWgzPayAddInfoVO payInfo(Long userId, Long recruitId);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -327,9 +327,9 @@ public class WgzDailyClockServiceImpl extends ServicePlusImpl<WgzDailyClockMappe
 | 
			
		||||
	public BgtDailyClockDetailVO appQueryById(Long id) {
 | 
			
		||||
		WgzDailyClock dailyClock = getById(id);
 | 
			
		||||
		BgtDailyClockDetailVO detailVO = BeanUtil.copyProperties(dailyClock, BgtDailyClockDetailVO.class);
 | 
			
		||||
		BgtUser bgtUser = userService.getById(dailyClock.getUserId());
 | 
			
		||||
		detailVO.setUsername(bgtUser.getUsername());
 | 
			
		||||
		detailVO.setAvatarName(bgtUser.getAvatarName());
 | 
			
		||||
		WgzUser wgzUser = wgzUserService.findByUserId(dailyClock.getUserId());
 | 
			
		||||
		detailVO.setUsername(wgzUser.getUsername());
 | 
			
		||||
		detailVO.setAvatarName(wgzUser.getAvatarName());
 | 
			
		||||
		BgtProjectRecruit recruit = recruitService.getById(dailyClock.getRecruitId());
 | 
			
		||||
		detailVO.setRecruitName(recruit.getRecruitName());
 | 
			
		||||
		return detailVO;
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@ 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.AuditStatus;
 | 
			
		||||
import com.ruoyi.common.exception.BaseException;
 | 
			
		||||
import com.ruoyi.common.utils.PageUtils;
 | 
			
		||||
import com.ruoyi.common.utils.SecurityUtils;
 | 
			
		||||
import com.ruoyi.wgz.bo.WgzLeaveQueryBo;
 | 
			
		||||
@ -213,6 +214,9 @@ public class WgzLeaveServiceImpl extends ServicePlusImpl<WgzLeaveMapper, WgzLeav
 | 
			
		||||
	@Transactional(rollbackFor = Exception.class)
 | 
			
		||||
	public Boolean bgtAudit(BgtLeaveUpdateDTO dto) {
 | 
			
		||||
		WgzLeave wgzLeave = getById(dto.getId());
 | 
			
		||||
		if(!AuditStatus.UNREAD.getCode().equals(wgzLeave.getAuditorType())){
 | 
			
		||||
			throw new BaseException("该条请假申请状态已改变,请刷新页面");
 | 
			
		||||
		}
 | 
			
		||||
		BeanUtil.copyProperties(dto, wgzLeave);
 | 
			
		||||
		wgzLeave.setAuditorTime(LocalDateTime.now());
 | 
			
		||||
		BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(wgzLeave.getRecruitId());
 | 
			
		||||
 | 
			
		||||
@ -1,22 +1,24 @@
 | 
			
		||||
package com.ruoyi.wgz.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 | 
			
		||||
import com.ruoyi.bgt.domain.BgtMessage;
 | 
			
		||||
import com.ruoyi.bgt.domain.BgtProjectRecruit;
 | 
			
		||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtApplyForWgzPayAddDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationRecordDTO;
 | 
			
		||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtMessageService;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtApplyForWgzPayAddInfoVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailBaseVO;
 | 
			
		||||
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailListVO;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
 | 
			
		||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
 | 
			
		||||
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
 | 
			
		||||
import com.ruoyi.common.constant.Constants;
 | 
			
		||||
import com.ruoyi.common.core.domain.entity.SysUser;
 | 
			
		||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 | 
			
		||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
			
		||||
@ -32,15 +34,16 @@ import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
 | 
			
		||||
import com.ruoyi.wgz.domain.*;
 | 
			
		||||
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
 | 
			
		||||
import com.ruoyi.wgz.service.*;
 | 
			
		||||
import org.apache.commons.collections4.CollectionUtils;
 | 
			
		||||
import org.springframework.beans.BeanUtils;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import static com.ruoyi.common.constants.BgtMessageConstant.*;
 | 
			
		||||
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
 | 
			
		||||
@ -75,12 +78,6 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IWgzMessageService wgzMessageService;
 | 
			
		||||
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IWgzMessageService iWgzMessageService;
 | 
			
		||||
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IBgtMessageService iBgtMessageService;
 | 
			
		||||
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private IWgzAttendanceService iWgzAttendanceService;
 | 
			
		||||
 | 
			
		||||
@ -341,16 +338,28 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional(rollbackFor = Exception.class)
 | 
			
		||||
	public Boolean appUpdate(BgtPayCalculationUpdateDTO dto) {
 | 
			
		||||
		WgzPayCalculation payCalculation = getById(dto.getId());
 | 
			
		||||
		BeanUtil.copyProperties(dto, payCalculation);
 | 
			
		||||
		boolean isPass = AuditStatus.PASS.getCode().equals(dto.getAuditorType());
 | 
			
		||||
		payCalculation.setAuditorTime(LocalDateTime.now());
 | 
			
		||||
		if(!isPass){
 | 
			
		||||
			List<WgzPayCalculationMiddle> list = iWgzPayCalculationMiddleService.list(Wrappers.<WgzPayCalculationMiddle>lambdaQuery()
 | 
			
		||||
				.eq(WgzPayCalculationMiddle::getCalculationId, dto.getId()));
 | 
			
		||||
			if(CollectionUtils.isNotEmpty(list)){
 | 
			
		||||
				List<Long> collect = list.stream().map(WgzPayCalculationMiddle::getAttendanceId).collect(Collectors.toList());
 | 
			
		||||
				attendanceService.lambdaUpdate().in(WgzAttendance::getId,collect)
 | 
			
		||||
					.set(WgzAttendance::getSettlement, 0).update();
 | 
			
		||||
				iWgzPayCalculationMiddleService.removeByIds(list.stream().map(WgzPayCalculationMiddle::getId).collect(Collectors.toList()));
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//发消息
 | 
			
		||||
		HashMap<String, String> mp = new HashMap<>();
 | 
			
		||||
		mp.put("projectName",iBgtProjectRecruitService.getById(payCalculation.getRecruitId()).getRecruitName());
 | 
			
		||||
		mp.put("auditor",SecurityUtils.getUsername());
 | 
			
		||||
		Map<String, String> map = bgtMessage(mp, BGT_TYPE_PAY, AuditStatus.PASS.getCode().equals(dto.getAuditorType()));
 | 
			
		||||
		Map<String, String> map = bgtMessage(mp, BGT_TYPE_PAY, isPass);
 | 
			
		||||
		WgzMessage wgzMessage = new WgzMessage()
 | 
			
		||||
			.setSenderType(USERTYPE_BGT)
 | 
			
		||||
			.setSenderId(SecurityUtils.getAppUserId())
 | 
			
		||||
@ -380,6 +389,7 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
		vo.setScore(wgzUser.getScore());
 | 
			
		||||
		vo.setUsername(wgzUser.getUsername());
 | 
			
		||||
		vo.setAvatarName(wgzUser.getAvatarName());
 | 
			
		||||
		vo.setIdentityCard(wgzUser.getIdentityCard());
 | 
			
		||||
 | 
			
		||||
		BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
 | 
			
		||||
		vo.setRecruitName(recruit.getRecruitName());
 | 
			
		||||
@ -387,6 +397,10 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
		FbsProjectTask task = taskService.getById(recruit.getTaskId());
 | 
			
		||||
		vo.setTaskName(task.getTaskName());
 | 
			
		||||
 | 
			
		||||
		vo.setUserId(userId);
 | 
			
		||||
		vo.setRecruitId(recruitId);
 | 
			
		||||
		vo.setTaskId(recruit.getTaskId());
 | 
			
		||||
 | 
			
		||||
		BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getOne(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
 | 
			
		||||
			.eq(BgtProjectRecruitApply::getRecruitId, recruitId).eq(BgtProjectRecruitApply::getUserId, userId)
 | 
			
		||||
			.last("limit 1"));
 | 
			
		||||
@ -410,10 +424,99 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId) {
 | 
			
		||||
		List<WgzPayCalculation> wgzPayCalculations = baseMapper.selectList(Wrappers.<WgzPayCalculation>lambdaQuery()
 | 
			
		||||
	public TableDataInfo<BgtPayCalculationDetailListVO> record(BgtPayCalculationRecordDTO dto) {
 | 
			
		||||
		LambdaQueryWrapper<WgzPayCalculation> wrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
		wrapper.eq(WgzPayCalculation::getUserId, dto.getUserId())
 | 
			
		||||
			.eq(WgzPayCalculation::getRecruitId, dto.getRecruitId())
 | 
			
		||||
			.eq(WgzPayCalculation::getAuditorUserId, SecurityUtils.getAppUserId())
 | 
			
		||||
			.in(WgzPayCalculation::getAuditorType,AuditStatus.getAudit())
 | 
			
		||||
			.orderByDesc(WgzPayCalculation::getCreateTime);
 | 
			
		||||
		Page<WgzPayCalculation> result = page(PageUtils.buildPage(), wrapper);
 | 
			
		||||
		Page<BgtPayCalculationDetailListVO> res = new Page<>();
 | 
			
		||||
		res.setRecords(BeanUtil.copyToList(result.getRecords(), BgtPayCalculationDetailListVO.class));
 | 
			
		||||
		res.setTotal(result.getTotal());
 | 
			
		||||
		return PageUtils.buildDataInfo(res);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	public Boolean bgtAdd(BgtApplyForWgzPayAddDTO dto) {
 | 
			
		||||
 | 
			
		||||
		//添加申请
 | 
			
		||||
		WgzPayCalculation payCalculation = BeanUtil.copyProperties(dto, WgzPayCalculation.class);
 | 
			
		||||
		payCalculation.setAuditorType(AuditStatus.PASS.getCode());
 | 
			
		||||
		payCalculation.setAuditorTime(LocalDateTime.now());
 | 
			
		||||
		payCalculation.setAuditorUserId(SecurityUtils.getAppUserId());
 | 
			
		||||
		payCalculation.setAuditorUserName(SecurityUtils.getUsername());
 | 
			
		||||
		payCalculation.setOperatorType(Constants.BGT);
 | 
			
		||||
		boolean save = save(payCalculation);
 | 
			
		||||
 | 
			
		||||
		//修改标记,添加中间表
 | 
			
		||||
		List<WgzPayCalculationMiddle> middleList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
		List<WgzAttendance> list = iWgzAttendanceService.list(Wrappers.<WgzAttendance>lambdaQuery()
 | 
			
		||||
			.eq(WgzAttendance::getRecruitId, dto.getRecruitId())
 | 
			
		||||
			.eq(WgzAttendance::getSettlement, 0));
 | 
			
		||||
		for(WgzAttendance data : list) {
 | 
			
		||||
			data.setSettlement(1);
 | 
			
		||||
			WgzPayCalculationMiddle wgzPayCalculationMiddle = new WgzPayCalculationMiddle();
 | 
			
		||||
			wgzPayCalculationMiddle.setCalculationId(payCalculation.getId());
 | 
			
		||||
			wgzPayCalculationMiddle.setAttendanceId(data.getId());
 | 
			
		||||
			middleList.add(wgzPayCalculationMiddle);
 | 
			
		||||
		}
 | 
			
		||||
		iWgzAttendanceService.updateBatchById(list);
 | 
			
		||||
		iWgzPayCalculationMiddleService.saveBatch(middleList);
 | 
			
		||||
 | 
			
		||||
		//修改其余未审批申请的状态
 | 
			
		||||
		List<WgzPayCalculation> payList = list(Wrappers.<WgzPayCalculation>lambdaQuery().eq(WgzPayCalculation::getAuditorType, AuditStatus.UNREAD.getCode())
 | 
			
		||||
			.eq(WgzPayCalculation::getUserId, dto.getUserId()));
 | 
			
		||||
		if(CollectionUtil.isNotEmpty(payList)) {
 | 
			
		||||
			payList.forEach(pay -> {
 | 
			
		||||
				pay.setAuditorType(AuditStatus.REFUSE.getCode());
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
		updateBatchById(payList);
 | 
			
		||||
		return save;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public BgtApplyForWgzPayAddInfoVO payInfo(Long userId, Long recruitId) {
 | 
			
		||||
		BgtApplyForWgzPayAddInfoVO vo = new BgtApplyForWgzPayAddInfoVO();
 | 
			
		||||
 | 
			
		||||
		//招工信息
 | 
			
		||||
		BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
 | 
			
		||||
		vo.setRecruitId(recruitId);
 | 
			
		||||
		vo.setRecruitAmount(recruit.getRecruitAmount());
 | 
			
		||||
		vo.setRecruitName(recruit.getRecruitName());
 | 
			
		||||
 | 
			
		||||
		//任务信息
 | 
			
		||||
		FbsProjectTask task = taskService.getById(recruit.getTaskId());
 | 
			
		||||
		vo.setTaskId(task.getId());
 | 
			
		||||
		vo.setTaskName(task.getTaskName());
 | 
			
		||||
		vo.setTaskAddress(task.getTaskAddress());
 | 
			
		||||
 | 
			
		||||
		//申请信息
 | 
			
		||||
		BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.getOneByUserIdAndRecruitId(userId, recruitId);
 | 
			
		||||
		vo.setEntryTime(recruitApply.getEntryTime());
 | 
			
		||||
		vo.setLeaveTime(recruitApply.getLeaveTime());
 | 
			
		||||
		vo.setWorkingState(recruitApply.getStatus());
 | 
			
		||||
 | 
			
		||||
		//出勤天数
 | 
			
		||||
		//总天数
 | 
			
		||||
		Integer i = attendanceService.attendanceDetail(userId, recruitId, null);
 | 
			
		||||
		//已结算天数
 | 
			
		||||
		List<WgzPayCalculation> list = list(Wrappers.<WgzPayCalculation>lambdaQuery()
 | 
			
		||||
			.eq(WgzPayCalculation::getUserId, userId)
 | 
			
		||||
			.eq(WgzPayCalculation::getRecruitId, recruitId));
 | 
			
		||||
		return BeanUtil.copyToList(wgzPayCalculations, BgtPayCalculationDetailListVO.class);
 | 
			
		||||
			.eq(WgzPayCalculation::getRecruitId, recruitId)
 | 
			
		||||
			.eq(WgzPayCalculation::getAuditorType, AuditStatus.PASS.getCode()));
 | 
			
		||||
		if(CollectionUtil.isNotEmpty(list)) {
 | 
			
		||||
			int sum = list.stream().mapToInt(WgzPayCalculation::getNum).sum();
 | 
			
		||||
			i = i - sum;
 | 
			
		||||
		}
 | 
			
		||||
		vo.setNum(i);
 | 
			
		||||
 | 
			
		||||
		//个人信息
 | 
			
		||||
		return vo;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user