From a56e12ced21e662f5ef97595a9c642ff7b9f1bc8 Mon Sep 17 00:00:00 2001 From: zt Date: Fri, 21 Feb 2025 09:53:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E7=BB=9F=E8=AE=A1=E4=B8=8E?= =?UTF-8?q?=E5=B7=A5=E7=A7=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bgt/AppBgtAttendanceController.java | 32 +++++++++++++ .../com/ruoyi/common/utils/DateUtils.java | 15 +++--- .../ruoyi/bgt/domain/BgtProjectRecruit.java | 3 ++ .../bgt/domain/BgtProjectRecruitApply.java | 5 +- .../bgt/domain/dto/BgtAttendanceDTO.java | 23 ++++++++++ .../dto/BgtProjectRecruitApplyConsentDTO.java | 3 +- .../bgt/domain/vo/BgtAttendanceCountVO.java | 36 +++++++++++++++ .../ruoyi/bgt/domain/vo/BgtAttendanceVO.java | 45 ++++++++++++++++++ .../domain/vo/BgtProjectRecruitDetailVO.java | 3 ++ .../bgt/domain/vo/BgtProjectRecruitVO.java | 3 ++ .../ruoyi/fbs/domain/vo/AppTaskDetailVO.java | 17 +++++++ .../impl/FbsProjectTaskServiceImpl.java | 18 +++++++- .../ruoyi/wgz/mapper/WgzAttendanceMapper.java | 8 ++++ .../wgz/service/IWgzAttendanceService.java | 24 ++++++++++ .../impl/WgzAttendanceServiceImpl.java | 46 ++++++++++++++----- .../mapper/bgt/BgtProjectRecruitMapper.xml | 3 +- .../mapper/wgz/WgzAttendanceMapper.xml | 14 +++++- 17 files changed, 273 insertions(+), 25 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtAttendanceController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtAttendanceDTO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceCountVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtAttendanceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtAttendanceController.java new file mode 100644 index 0000000..57982da --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtAttendanceController.java @@ -0,0 +1,32 @@ +package com.ruoyi.web.controller.bgt; + + +import com.ruoyi.bgt.domain.dto.BgtAttendanceDTO; +import com.ruoyi.bgt.domain.vo.BgtAttendanceVO; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.wgz.service.IWgzAttendanceService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(value = "App包工头考勤控制器", tags = {"App包工头考勤管理"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/app/bgt/attendance") +public class AppBgtAttendanceController { + + private final IWgzAttendanceService attendanceService; + + @ApiOperation("App包工头总体考勤情况") + @GetMapping() + public AjaxResult attendanceDetail(@Validated BgtAttendanceDTO dto) { + return AjaxResult.success(attendanceService.attendanceDetail(dto)); + } + + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index 536cb3c..066f073 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -1,14 +1,15 @@ package com.ruoyi.common.utils; +import org.apache.commons.lang3.time.DateFormatUtils; + import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import org.apache.commons.lang3.time.DateFormatUtils; /** * 时间工具类 - * + * * @author ruoyi */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils @@ -22,15 +23,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; - + private static String[] parsePatterns = { - "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; /** * 获取当前Date型日期 - * + * * @return Date() 当前日期 */ public static Date getNowDate() @@ -40,7 +41,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 获取当前日期, 默认格式为yyyy-MM-dd - * + * * @return String */ public static String getDate() @@ -121,7 +122,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils return null; } } - + /** * 获取服务器启动时间 */ 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 76d806d..ffc0c4e 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 @@ -132,6 +132,9 @@ public class BgtProjectRecruit implements Serializable { @ApiModelProperty("下班时间") private LocalTime endWorkTime; + @ApiModelProperty("工种") + private String typeOfWork; + @ApiModelProperty("创建者ID") private Long userId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruitApply.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruitApply.java index e6c8247..14a4152 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruitApply.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/BgtProjectRecruitApply.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -45,10 +46,10 @@ public class BgtProjectRecruitApply implements Serializable { private String status; @ApiModelProperty("进场时间") - private String entryTime; + private LocalDate entryTime; @ApiModelProperty("离场时间") - private String leaveTime; + private LocalDate leaveTime; /** 删除标志(0代表存在 2代表删除) */ @Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除") diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtAttendanceDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtAttendanceDTO.java new file mode 100644 index 0000000..4a970d9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtAttendanceDTO.java @@ -0,0 +1,23 @@ +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; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@ApiModel("App包工头总体考勤查询对象") +public class BgtAttendanceDTO { + + @ApiModelProperty("任务ID") + private Long taskId; + + @ApiModelProperty("日期") + private String date; + + @ApiModelProperty("日期类型(1日 2月)") + private String dateType; +} 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 index c89c8aa..cd1d721 100644 --- 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 @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.time.LocalDate; import java.util.List; /** @@ -25,7 +26,7 @@ public class BgtProjectRecruitApplyConsentDTO implements Serializable { private Long id; @ApiModelProperty("进场时间") - private String entryTime; + private LocalDate entryTime; @ApiModelProperty("入场材料") List entryMaterials; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceCountVO.java new file mode 100644 index 0000000..39c2ce5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceCountVO.java @@ -0,0 +1,36 @@ +package com.ruoyi.bgt.domain.vo; + +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.time.LocalDate; + +/** + * 考勤打卡对象 wgz_attendance + * + * @author ruoyi + * @date 2025-02-20 + */ +@Data +@NoArgsConstructor +@Accessors(chain = true) +@ApiModel("包工头考勤打卡统计对象") +public class BgtAttendanceCountVO implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty("到岗人数") + private Integer reportToDutyNum; + + @ApiModelProperty("总人数") + private Integer totalNum; + + @ApiModelProperty("日期") + private LocalDate date; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceVO.java new file mode 100644 index 0000000..4039086 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtAttendanceVO.java @@ -0,0 +1,45 @@ +package com.ruoyi.bgt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@ApiModel("App包工头总体考勤视图对象") +public class BgtAttendanceVO { + + @ApiModelProperty("任务ID") + private Long taskId; + + @ApiModelProperty("任务名") + private String taskName; + + @ApiModelProperty("到岗人数") + private Integer reportToDutyNum; + + @ApiModelProperty("总人数") + private Integer totalNum; + + @ApiModelProperty("缺勤人数") + private Integer absenceDutyNum; + + @ApiModelProperty("请假人数") + private Integer leaveNum; + + @ApiModelProperty("迟到人数") + private Integer lateNum; + + @ApiModelProperty("考勤列表") + List countVOS; + + //务工者列表 + @ApiModelProperty("申请者列表") + List applyList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitDetailVO.java index de08efb..6d997e1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitDetailVO.java @@ -75,6 +75,9 @@ public class BgtProjectRecruitDetailVO implements Serializable { @ApiModelProperty("招工要求") private String recruitRequirement; + @ApiModelProperty("工种") + private String typeOfWork; + @ApiModelProperty("创建者ID") private Long userId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitVO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitVO.java index b14bc64..7e28f7b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtProjectRecruitVO.java @@ -51,6 +51,9 @@ public class BgtProjectRecruitVO implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime createTime; + @ApiModelProperty("工种") + private String typeOfWork; + @ApiModelProperty("申请者列表") List applylist; 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 3fa6032..ebe6939 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 @@ -3,6 +3,7 @@ package com.ruoyi.fbs.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO; import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO; +import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -83,6 +84,22 @@ public class AppTaskDetailVO { @ApiModelProperty("收款申请列表") private List wageApplicationList; + + //总体考勤情况 + + @ApiModelProperty("总人数") + private Integer totalNum = 0; + + @ApiModelProperty("今日到岗人数") + private Integer reportToDutyNum= 0; + + @ApiModelProperty("今日到岗率") + private Integer reportToDutyRate= 0; + + @ApiModelProperty("考勤列表") + List countVOS; + + //务工者数量列表 @ApiModelProperty("申请者列表") List applyList; 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 20c6a83..bb692cf 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,6 +1,7 @@ package com.ruoyi.fbs.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -29,12 +30,15 @@ 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.bgt.domain.vo.BgtAttendanceCountVO; +import com.ruoyi.wgz.service.IWgzAttendanceService; 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.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Map; @@ -62,6 +66,8 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl countVOS = attendanceService.countByTaskId(id, startOfMonth, date); + if(CollectionUtil.isNotEmpty(countVOS)){ + BgtAttendanceCountVO vo = countVOS.get(0); + appTaskDetailVO.setCountVOS(countVOS); + appTaskDetailVO.setTotalNum(vo.getTotalNum()); + appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum()); + appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100); + } return appTaskDetailVO; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java index 7da7012..11afb11 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzAttendanceMapper.java @@ -3,7 +3,12 @@ package com.ruoyi.wgz.mapper; import com.ruoyi.wgz.domain.WgzAttendance; import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache; +import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO; import org.apache.ibatis.annotations.CacheNamespace; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.util.List; /** * 考勤打卡Mapper接口 @@ -15,4 +20,7 @@ import org.apache.ibatis.annotations.CacheNamespace; @CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class) public interface WgzAttendanceMapper extends BaseMapperPlus { + + List countByTaskId(@Param("taskId") Long taskId, @Param("beginDate")LocalDate beginDate + , @Param("endDate")LocalDate endDate); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java index 146c981..3047324 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzAttendanceService.java @@ -1,5 +1,8 @@ package com.ruoyi.wgz.service; +import com.ruoyi.bgt.domain.dto.BgtAttendanceDTO; +import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO; +import com.ruoyi.bgt.domain.vo.BgtAttendanceVO; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq; import com.ruoyi.wgz.bo.res.WgzAppCardReplacementApplicationRes; @@ -9,9 +12,13 @@ import com.ruoyi.wgz.domain.WgzAttendance; import com.ruoyi.wgz.bo.WgzAttendanceQueryBo; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.wgz.bo.WgzAttendanceQueryBo; +import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq; +import com.ruoyi.wgz.domain.WgzAttendance; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; +import java.time.LocalDate; import java.util.Collection; import java.util.List; @@ -91,4 +98,21 @@ public interface IWgzAttendanceService extends IServicePlus { * 补卡申请列表 */ WgzAppCardReplacementApplicationRes userCardReplacementApplication(); +// /** +// * 查看当前人、当前工地、当前日期的打卡记录 +// */ +// WgzAttendance findByUserIdWait(Long appUserId, Long recruitId, String date); + + /** + * 统计任务打卡情况 + */ + List countByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate); + + + /** + * 总体考勤情况 + */ + BgtAttendanceVO attendanceDetail(BgtAttendanceDTO dto); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java index 51c5d91..7ba74a4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzAttendanceServiceImpl.java @@ -2,16 +2,20 @@ package com.ruoyi.wgz.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.bgt.domain.BgtProjectRecruit; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; +import com.ruoyi.bgt.domain.dto.BgtAttendanceDTO; +import com.ruoyi.bgt.domain.vo.BgtAttendanceVO; import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; import com.ruoyi.bgt.service.IBgtProjectRecruitService; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.PageUtils; -import com.ruoyi.common.core.page.PagePlus; +import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.wgz.bo.WgzAttendanceQueryBo; import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq; import com.ruoyi.wgz.bo.res.WgzAppCardReplacementApplicationRes; import com.ruoyi.wgz.bo.res.WgzAppPunchTheCalendarRecordRes; @@ -19,26 +23,25 @@ import com.ruoyi.wgz.bo.res.WgzAppUserClockingConditionRes; import com.ruoyi.wgz.bo.rests.WgzAppCardReplacementApplicationTwo; import com.ruoyi.wgz.bo.rests.WgzAppPunchTheCalendarRecordThree; import com.ruoyi.wgz.bo.rests.WgzAppPunchTheCalendarRecordTwo; +import com.ruoyi.wgz.domain.WgzAttendance; import com.ruoyi.wgz.domain.WgzLeave; +import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO; +import com.ruoyi.wgz.mapper.WgzAttendanceMapper; +import com.ruoyi.wgz.service.IWgzAttendanceService; import com.ruoyi.wgz.service.IWgzLeaveService; import org.aspectj.weaver.ast.Var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.wgz.bo.WgzAttendanceQueryBo; -import com.ruoyi.wgz.domain.WgzAttendance; -import com.ruoyi.wgz.mapper.WgzAttendanceMapper; -import com.ruoyi.wgz.service.IWgzAttendanceService; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.reactive.TransactionalOperator; import java.text.DecimalFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * 考勤打卡Service业务层处理 @@ -306,6 +309,27 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl countByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate) { + return baseMapper.countByTaskId(taskId, beginDate, endDate); + } + + @Override + public BgtAttendanceVO attendanceDetail(BgtAttendanceDTO dto) { + + + + + return null; + } + + // @Override +// public WgzAttendance findByUserIdWait(Long appUserId, Long recruitId, String date) { +// LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); +// qw.eq(WgzAttendance::getRecruitId,recruitId); +// qw.eq(WgzAttendance::getUserId,appUserId); +// return null; +// } /** * 获取指定人、指定工地、指定日期的打卡记录 diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml index 11dc0ec..704475f 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml @@ -28,7 +28,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + select count(1) as reportToDutyNum, + date, + (select count(1) from bgt_project_recruit_apply where entry_time <= date + and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} )) as totalNum + from wgz_attendance + where date between #{beginDate} and #{endDate} + and (missed_in = 0 or missed_out = 0) + and recruit_id in (select id from bgt_project_recruit where task_id = #{taskId} )) + group by date + + +