diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/PmWorkerJob.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/PmWorkerJob.java new file mode 100644 index 0000000..20be62d --- /dev/null +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/PmWorkerJob.java @@ -0,0 +1,77 @@ +package com.bonus.job.domain; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.system.api.model.UploadFileVo; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 人员基础信息表 + */ +@Data +public class PmWorkerJob { + + + /** + * 施工人员id + */ + private String workerId; + + /** + * 姓名 + */ + private String name; + + /** + * 身份证 + */ + private String idNumber; + + /** + * 入场状态 0未入场 1 已入场 + */ + private Integer einStatus; + + /** + * 项目名称 + */ + private Integer proId; + /** + * 项目名称 + */ + private String proName; + /** + * 分包名称 + */ + private Integer subId; + /** + * 分包名称 + */ + private String subName; + /** + * 班组名称 + */ + private Integer teamId; + /** + * 班组名称 + */ + private String teamName; + + /** + * 创建时间 + */ + private Integer contractId; + + /** + * 日期 + */ + private String einDay; + + /** + * 月份 + */ + private String attMonth; +} \ No newline at end of file diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java new file mode 100644 index 0000000..dbbf21b --- /dev/null +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java @@ -0,0 +1,27 @@ +package com.bonus.job.mapper; + +import com.bonus.job.domain.PmWorkerJob; +import com.bonus.job.domain.SysJob; +import com.bonus.system.api.domain.SysUser; + +import java.util.List; + +/** + * 调度任务信息 数据层 + * + * @author bonus + */ +public interface WorkerJobMapper { + + /** + * 获取人员入场记录 + * @param currentDay + * @return + */ + List getWorkerEinDayRecord(String currentDay); + /** + * 批量插入人员入场记录 + * @param workerList + */ + void insertEinDayRecord(List workerList); +} diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java new file mode 100644 index 0000000..70a4774 --- /dev/null +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java @@ -0,0 +1,73 @@ +package com.bonus.job.task; + +import cn.hutool.core.date.DateUtil; +import com.bonus.job.domain.PmWorkerJob; +import com.bonus.job.mapper.WorkerJobMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 定时任务调度测试 + * + * @author bonus + */ +@Component("workerEinDayTask") +public class WorkerEinDayRecordTask{ + + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Resource + private WorkerJobMapper mapper; + + /** + * 不传更新,当天 + */ + public void updateEinDayRecord(){ + try{ + List dateList = new ArrayList<>(); + String startDate = DateUtil.today(); + dateList.add(startDate); + //更新指定日期的记录 + updateWorkerEinDayRecord(dateList); + }catch (Exception e){ + logger.error("人员入场更新表失败,{}",e.getMessage()); + } + } + + private void updateWorkerEinDayRecord(List dateList) { + for (String currentDay : dateList) { + List workerList = mapper.getWorkerEinDayRecord(currentDay); + if (!workerList.isEmpty()) { + mapper.insertEinDayRecord(workerList); + } + } + } + + /** + * 固定更新期限 + */ + public void updateEinDayRecordByRange(String startDate,String endDate){ + try{ + List dateList = new ArrayList<>(); + // 将 startDate 与 endDate 之间的时间加入 dateList + java.util.Date start = DateUtil.parse(startDate); + java.util.Date end = DateUtil.parse(endDate); + java.util.Date currentDate = start; + while (!currentDate.after(end)) { + dateList.add(DateUtil.format(currentDate, "yyyy-MM-dd")); + currentDate = DateUtil.offsetDay(currentDate, 1); + } + //更新指定日期的记录 + updateWorkerEinDayRecord(dateList); + }catch (Exception e){ + logger.error("人员入场更新表失败,{}",e.getMessage()); + } + } + + +} diff --git a/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml new file mode 100644 index 0000000..51161ba --- /dev/null +++ b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml @@ -0,0 +1,58 @@ + + + + + + + replace INTO bm_worker_ein_day_record( + worker_id,id_number,name,pro_id,pro_name,sub_id,sub_name,team_id,team_name,att_month,ein_day,contract_id + ) VALUES + + (#{item.workerId},#{item.idNumber},#{item.name},#{item.proId},#{item.proName},#{item.subId},#{item.subName},#{item.teamId}, + #{item.teamName},#{item.attMonth},#{item.einDay},#{item.contractId} + ) + + + \ No newline at end of file