From 56c53fb4ab0899856184cd5b13d817ebe6e04c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Sat, 23 Mar 2024 02:29:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LabourApiController.java | 38 ++++++++++++------- .../domain/SurProjectAttendanceUser.java | 12 ++++++ .../jh/project/domain/vo/LabourDataVo.java | 12 ++---- .../SurProjectAttendanceDataMapper.java | 10 ++++- .../SurProjectAttendanceUserMapper.java | 8 ++++ .../ISurProjectAttendanceDataService.java | 8 ++++ .../ISurProjectAttendanceUserService.java | 9 +++++ .../SurProjectAttendanceDataServiceImpl.java | 23 +++++++++-- .../SurProjectAttendanceUserServiceImpl.java | 13 +++++++ .../yanzhu/jh/publics/PublicsController.java | 10 +++-- .../SurProjectAttendanceDataMapper.xml | 18 +++++++-- .../SurProjectAttendanceUserMapper.xml | 11 +++++- 12 files changed, 138 insertions(+), 34 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java index 1a18b409..c2e2081a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java @@ -424,23 +424,35 @@ public class LabourApiController extends BaseController { .validate(labourDataVo, new Class[0]); if(CollectionUtils.isEmpty(validateSet)){ // 查询当前班组人员考勤是否已推送 - SurProjectAttendanceData searchModel = new SurProjectAttendanceData(); - searchModel.setAppId(sysApplyConfig.getAppId()); - searchModel.setWorkerId(surProjectAttendanceData.getWorkerId()); - searchModel.setWorkerId(surProjectAttendanceData.getServerid()); - List list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel); - if(CollectionUtils.isNotEmpty(list)){ - surProjectAttendanceData.setId(list.get(0).getId()); - surProjectAttendanceData.setCfgid(sysApplyConfig.getCfgId()); - surProjectAttendanceData.setAppId(sysApplyConfig.getAppId()); - surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy()); - surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime()); - surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId()); + SurProjectAttendanceData findData = new SurProjectAttendanceData(); + findData.setAppId(sysApplyConfig.getAppId()); + findData.setWorkerId(surProjectAttendanceData.getWorkerId()); + findData.setAttendanceTime(labourDataVo.getAttendanceTime()); + SurProjectAttendanceData data = surProjectAttendanceDataService.findCurrentAttendanceData(findData); + if(data!=null){ + //这里不能修改出勤时间 + surProjectAttendanceData.setAttendanceTime(null); + surProjectAttendanceData.setAttendanceOutTime(labourDataVo.getAttendanceTime()); + surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId()+"Api推送入场"); + surProjectAttendanceData.setUpdateTime(new Date()); surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData); }else{ + /** + * 查询人员考勤信息 + */ + SurProjectAttendanceUser findUser = new SurProjectAttendanceUser(); + findUser.setCfgid(sysApplyConfig.getCfgId()); + findUser.setWorkerId(surProjectAttendanceData.getWorkerId()); + SurProjectAttendanceUser surProjectAttendanceUser = surProjectAttendanceUserService.findCurrentAttendanceUser(findUser); + if(StringUtils.isNull(surProjectAttendanceUser)){ + throw new ServiceException("未查询到人员信息",HttpStatusEnum.DARA_EXCEPTION.getCode()); + } + if(StringUtils.isNull(surProjectAttendanceUser.getCompanyTypeId())){ + throw new ServiceException("人员部门类型信息不完整",HttpStatusEnum.DARA_EXCEPTION.getCode()); + } surProjectAttendanceData.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceData.setCfgid(sysApplyConfig.getCfgId()); - surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()); + surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()+"Api推送离场"); surProjectAttendanceData.setCreateTime(new Date()); surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData); } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceUser.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceUser.java index 217397b6..ef3f3f9d 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceUser.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceUser.java @@ -160,6 +160,10 @@ public class SurProjectAttendanceUser extends BaseEntity @Excel(name = "") private Long isDel; + /** 人员部门类型 */ + @Excel(name = "人员部门类型") + private Integer companyTypeId; + private Date inTime; private Date outTime; @@ -654,6 +658,14 @@ public class SurProjectAttendanceUser extends BaseEntity this.appId = appId; } + public Integer getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Integer companyTypeId) { + this.companyTypeId = companyTypeId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/LabourDataVo.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/LabourDataVo.java index bd1d6e0e..edeac3b3 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/LabourDataVo.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/LabourDataVo.java @@ -29,9 +29,11 @@ public class LabourDataVo extends BaseEntity private Long companyId; /** 进门还是出门E进,L出 */ + /** + * 新接口改造&暂不需要传入参数 @NotBlank(message = "进出门不能为空") @Pattern(regexp = "E|L", message = "进出门类型格式异常,E进|L出") - private String attendanceType; + private String attendanceType;*/ /** 考勤时间yyyy-MM-dd HH:mm:ss */ @NotBlank(message = "考勤时间不能为空") @@ -72,14 +74,6 @@ public class LabourDataVo extends BaseEntity this.companyId = companyId; } - public String getAttendanceType() { - return attendanceType; - } - - public void setAttendanceType(String attendanceType) { - this.attendanceType = attendanceType; - } - public String getAttendanceTime() { return attendanceTime; } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceDataMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceDataMapper.java index 3f605f9b..d2a4fe24 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceDataMapper.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceDataMapper.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.yanzhu.jh.project.domain.SurProjectAttendanceData; +import org.apache.ibatis.annotations.Param; /** * 劳务实名制管理Mapper接口 @@ -29,6 +30,13 @@ public interface SurProjectAttendanceDataMapper */ public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData); public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData); /** @@ -77,7 +85,7 @@ public interface SurProjectAttendanceDataMapper * @param SurProjectAttendanceDataList 劳务实名制考勤管理列表 * @return 结果 */ - public int batchSurProjectAttendanceData(List SurProjectAttendanceDataList); + public int batchSurProjectAttendanceData(@Param("list") List SurProjectAttendanceDataList, @Param("year") String year); public Long getLastServerId(SurProjectAttendanceData where); diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceUserMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceUserMapper.java index d395e7c4..0d279fba 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceUserMapper.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceUserMapper.java @@ -22,6 +22,14 @@ public interface SurProjectAttendanceUserMapper */ public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + /** * 查询考勤人员基本属性列表 * diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceDataService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceDataService.java index 8358dde4..4d93031d 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceDataService.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceDataService.java @@ -30,6 +30,14 @@ public interface ISurProjectAttendanceDataService */ public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData); /** diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceUserService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceUserService.java index f930ef12..1206ec00 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceUserService.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectAttendanceUserService.java @@ -1,6 +1,7 @@ package com.yanzhu.jh.project.service; import java.util.List; +import java.util.Map; import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg; import com.yanzhu.jh.project.domain.SurProjectAttendanceUser; @@ -21,6 +22,14 @@ public interface ISurProjectAttendanceUserService */ public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + /** * 查询考勤人员基本属性列表 * diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceDataServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceDataServiceImpl.java index 028fde4d..9fa12020 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceDataServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceDataServiceImpl.java @@ -1,5 +1,6 @@ package com.yanzhu.jh.project.service.impl; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -69,6 +70,18 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(surProjectAttendanceData); } + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + @Override + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData){ + return surProjectAttendanceDataMapper.findCurrentAttendanceData(surProjectAttendanceData); + } + + @Override public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData) { return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListEx(surProjectAttendanceData); @@ -149,7 +162,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc */ @Override public int batchSurProjectAttendanceData(List SurProjectAttendanceDataList) { - return surProjectAttendanceDataMapper.batchSurProjectAttendanceData(SurProjectAttendanceDataList); + return surProjectAttendanceDataMapper.batchSurProjectAttendanceData(SurProjectAttendanceDataList,DateUtils.dateTimeNow(DateUtils.YYYY)); } @Override @@ -249,6 +262,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc @Override public List> initOtherData(Map data) { + List> dataList = new ArrayList<>(); List> list = surProjectAttendanceDataMapper.initOtherData(data); if(StringUtils.isNotEmpty(list)){ List workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList()); @@ -259,15 +273,17 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ map.put("inTime",map.get("inTime")); map.put("outTime",map.get("outTime")); + dataList.add(map); } } } } - return list; + return dataList; } @Override public List> initHuaZhuData(Map data) { + List> dataList = new ArrayList<>(); List> list = surProjectAttendanceDataMapper.initHuaZhuData(data); if(StringUtils.isNotEmpty(list)){ List workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList()); @@ -278,10 +294,11 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ map.put("inTime",map.get("inTime")); map.put("outTime",map.get("outTime")); + dataList.add(map); } } } } - return list; + return dataList; } } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceUserServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceUserServiceImpl.java index f5028257..23434d65 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceUserServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectAttendanceUserServiceImpl.java @@ -3,6 +3,8 @@ package com.yanzhu.jh.project.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; + import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg; @@ -36,6 +38,17 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id); } + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + @Override + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) { + return surProjectAttendanceUserMapper.findCurrentAttendanceUser(surProjectAttendanceUser); + } + /** * 查询考勤人员基本属性列表 * diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/PublicsController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/PublicsController.java index a3bd5650..5eb0e53e 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/PublicsController.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/PublicsController.java @@ -12,6 +12,7 @@ import com.ruoyi.common.enums.PublicStateEnum; import com.ruoyi.common.enums.SysRoleEnum; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.FlowTaskEntity; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; @@ -279,8 +280,8 @@ PublicsController extends BaseController { attendanceData.setGroupName(map.get("groupName").toString()); attendanceData.setCompanyTypeId(Convert.toStr(map.get("companyTypeId"),"0")); attendanceData.setCompanyName(map.get("companyName").toString()); - attendanceData.setAttendanceTime(map.get("inTime").toString()); - attendanceData.setAttendanceOutTime(map.get("outTime").toString()); + attendanceData.setAttendanceTime(Convert.toStr(map.get("inTime"))); + attendanceData.setAttendanceOutTime(Convert.toStr(map.get("outTime"))); attendanceData.setScanPhoto(Convert.toStr(map.get("scanPhoto"))); attendanceData.setTeamId(Convert.toLong(map.get("teamId"))); attendanceData.setWorkTypeCode(Convert.toStr(map.get("workTypeCode"))); @@ -291,9 +292,10 @@ PublicsController extends BaseController { attendanceData.setCreateBy("数据迁移格式化"); attendanceData.setCreateTime(new Date()); dataList.add(attendanceData); - //surProjectAttendanceDataService.add(attendanceData); } - redisCache.setCacheObject("PUBLICS.V1.initAttendanceData",dataList,30*24,TimeUnit.HOURS); + if(StringUtils.isNotEmpty(dataList)){ + surProjectAttendanceDataService.batchSurProjectAttendanceData(dataList); + } } } return success(); diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml index e6450dd0..099f320b 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml @@ -48,6 +48,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select * from sur_project_attendance_data_${year} + + diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceUserMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceUserMapper.xml index a4ba7f47..1fda24e8 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceUserMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceUserMapper.xml @@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -103,7 +104,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + + + insert into sur_project_attendance_user