diff --git a/ruoyi-wechat/src/main/resources/application.yml b/ruoyi-wechat/src/main/resources/application.yml index 4bc38c5d..697da313 100644 --- a/ruoyi-wechat/src/main/resources/application.yml +++ b/ruoyi-wechat/src/main/resources/application.yml @@ -24,7 +24,7 @@ spring: # 国际化资源文件路径 basename: i18n/messages profiles: - active: prod + active: druid # 文件上传 servlet: multipart: diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceCfg.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceCfg.java index d5473c9c..f7b1d14d 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceCfg.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceCfg.java @@ -42,6 +42,15 @@ public class SurProjectAttendanceCfg extends BaseEntity @Excel(name = "状态") private Long state; + private String deptName; + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } private String projectName; private String unitName; diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceData.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceData.java index 1628fddb..5cda8fcc 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceData.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectAttendanceData.java @@ -1,5 +1,6 @@ package com.yanzhu.jh.project.domain; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; @@ -16,6 +17,9 @@ import com.ruoyi.common.core.domain.BaseEntity; */ public class SurProjectAttendanceData extends BaseEntity { + public SurProjectAttendanceData(){ + this.year= DateTime.now().year(); + } private static final long serialVersionUID = 1L; private int year; @@ -60,11 +64,11 @@ public class SurProjectAttendanceData extends BaseEntity this.workerPhoto = workerPhoto; } - public Integer getWorkerGender() { + public Long getWorkerGender() { return workerGender; } - public void setWorkerGender(Integer workerGender) { + public void setWorkerGender(Long workerGender) { this.workerGender = workerGender; } @@ -153,7 +157,7 @@ public class SurProjectAttendanceData extends BaseEntity @Excel(name = "照片") private String workerPhoto; @Excel(name = "性别0:男 1:女") - private Integer workerGender; + private Long workerGender; @Excel(name = "出生日期时间戳") private Long birthDate; @Excel(name = "所属班组") diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceCfgMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceCfgMapper.java index 0cb2691a..a5d827d0 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceCfgMapper.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/SurProjectAttendanceCfgMapper.java @@ -58,4 +58,6 @@ public interface SurProjectAttendanceCfgMapper * @return 结果 */ public int deleteSurProjectAttendanceCfgByIds(Long[] ids); + + public List selectSurProjectAttendanceCfgListForAllInfo(SurProjectAttendanceCfg where); } 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 50afad47..425e1c24 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,14 +1,17 @@ package com.yanzhu.jh.project.service.impl; -import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; + +import cn.hutool.core.date.DateTime; + import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; +import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg; +import com.yanzhu.jh.project.domain.SurProjectAttendanceGroup; import com.yanzhu.jh.project.domain.SurProjectAttendanceUser; +import com.yanzhu.jh.project.mapper.SurProjectAttendanceCfgMapper; +import com.yanzhu.jh.project.mapper.SurProjectAttendanceGroupMapper; import com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +31,16 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc @Autowired private SurProjectAttendanceDataMapper surProjectAttendanceDataMapper; + @Autowired + private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper; + + @Autowired + private SurProjectAttendanceGroupMapper surProjectAttendanceGroupMapper; + + @Autowired + private SurProjectAttendanceCfgMapper surProjectAttendanceCfgMapper; + + /** * 查询劳务实名制管理 * @@ -144,15 +157,68 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc where.setVendorsCode(sdata.getVendorsCode()); where.setCfgid(sdata.getCfgid()); where.setServerid(sdata.getServerid()); + where.setServerid(sdata.getWorkerId()); + where.setAttendanceTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", DateTime.now())); List list=selectSurProjectAttendanceDataListEx(where); if(list.size()==0){ + //设置考勤其它参数 + //查询人员信息 + SurProjectAttendanceUser userWhere=new SurProjectAttendanceUser(); + userWhere.setWorkerId(sdata.getWorkerId()); + List uList= surProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(userWhere); + if(uList.size()==0){ + return; + } + SurProjectAttendanceUser user=uList.get(0); + sdata.setWorkerName(user.getName()); + sdata.setWorkerPhoto(user.getPhoto()); + sdata.setWorkerGender(user.getGender());; + sdata.setGroupName(user.getGroupName()); + sdata.setWorkTypeName(user.getWorkTypeName()); + sdata.setEthnic(user.getEthnic()); + sdata.setNativePlace(user.getNativePlace()); + sdata.setPhone(user.getPhone()); + sdata.setSpecWorkType(user.getSpecWorkType()); + //查询分组信息 + SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup(); + groupWhere.setCfgid(sdata.getCfgid()); + groupWhere.setCompanyId(sdata.getCompanyId()); + List gList=surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(groupWhere); + if(gList.size()==0){ + return; + } + SurProjectAttendanceGroup group=gList.get(0); + sdata.setCompanyName(group.getCompanyName()); + sdata.setCompanyTypeId(group.getCompanyTypeId()); + //查询华筑的分组信息 + if("huazhu".equals(sdata.getVendorsCode())){ + sdata.setCompanyTypeId(getHuazhuCompanyTypeId(group.getCompanyName()));//获取华筑的分包商类型 + } + //查询项目部门信息 + SurProjectAttendanceCfg cfgWhere=new SurProjectAttendanceCfg(); + cfgWhere.setId(sdata.getCfgid()); + List cfgList=surProjectAttendanceCfgMapper.selectSurProjectAttendanceCfgListForAllInfo(cfgWhere); + if(cfgList.size()==0){ + return; + } + SurProjectAttendanceCfg cfg=cfgList.get(0); + sdata.setProjectId(cfg.getProjectId()); + sdata.setDeptId(cfg.getSubDeptId()); + sdata.setProjectName(cfg.getProjectName()); + sdata.setDeptName(cfg.getDeptName()); insertSurProjectAttendanceData(sdata); }else{ sdata.setId(list.get(0).getId()); + SurProjectAttendanceData upData=list.get(0); + upData.setAttendanceOutTime(sdata.getAttendanceTime()); updateSurProjectAttendanceData(sdata); } } + private String getHuazhuCompanyTypeId(String groupName) { + return ""; + } + @Override public String getLastServerId(SurProjectAttendanceData where) { return ""+surProjectAttendanceDataMapper.getLastServerId(where); diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/task/AttendanceJgwTask.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/task/AttendanceJgwTask.java index 83bd21ad..fef0b3e3 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/task/AttendanceJgwTask.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/task/AttendanceJgwTask.java @@ -78,6 +78,7 @@ public class AttendanceJgwTask { public static void main(String[] args){ String d="sxyzxx2024suc"; System.out.println(Base64.encode(d)); + System.out.println(DateTime.now().year()); String appid="6a6f24fe35b04ee0bcf31cfb46ed1051"; String secret="c3h5enh4MjAyNHN1Yw=="; diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceCfgMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceCfgMapper.xml index af682080..ef8314a2 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceCfgMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceCfgMapper.xml @@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -45,6 +46,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and is_del = #{isDel} + + + - select * from sur_project_attendance_data + select * from sur_project_attendance_data_${year} and cfgid = #{cfgid} and app_id = #{appId} @@ -54,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and serverid = #{serverid} and workerId = #{workerId} and attendance_type = #{attendanceType} - and attendance_time = #{attendanceTime} + and date(attendance_time) = date(#{attendanceTime}) and identification = #{identification} and teamId = #{teamId} and workTypeCode = #{workTypeCode} @@ -100,120 +108,156 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - - insert into sur_project_attendance_data + + insert into sur_project_attendance_data_${year} cfgid, app_id, + projectId, + projectName, + deptId, + deptName, vendors_code, serverid, workerId, - attendance_type, - attendance_time, + workerName, identification, + workerPhoto, + workerGender, + birthDate, + ethnic, + nativePlace, + phone, + workTypeName, + specWorkType, + groupName, + companyTypeId, + companyName, + attendance_time, + attendance_out_time, + scanPhoto, teamId, workTypeCode, companyId, vendorId, - projectType, device_code, - work_point_id, - scanPhoto, - other, - state, - remark, is_del, create_by, create_time, update_by, update_time, + remark, #{cfgid}, #{appId}, + #{projectId}, + #{projectName}, + #{deptId}, + #{deptName}, #{vendorsCode}, #{serverid}, #{workerId}, - #{attendanceType}, - #{attendanceTime}, + #{workerName}, #{identification}, + #{workerPhoto}, + #{workerGender}, + #{birthDate}, + #{ethnic}, + #{nativePlace}, + #{phone}, + #{workTypeName}, + #{specWorkType}, + #{groupName}, + #{companyTypeId}, + #{companyName}, + #{attendanceTime}, + #{attendanceOutTime}, + #{scanPhoto}, #{teamId}, #{workTypeCode}, #{companyId}, #{vendorId}, - #{projectType}, #{deviceCode}, - #{workPointId}, - #{scanPhoto}, - #{other}, - #{state}, - #{remark}, #{isDel}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, + #{remark}, - - update sur_project_attendance_data + + update sur_project_attendance_data_${year} cfgid = #{cfgid}, app_id = #{appId}, + projectId = #{projectId}, + projectName = #{projectName}, + deptId = #{deptId}, + deptName = #{deptName}, vendors_code = #{vendorsCode}, serverid = #{serverid}, workerId = #{workerId}, - attendance_type = #{attendanceType}, - attendance_time = #{attendanceTime}, + workerName = #{workerName}, identification = #{identification}, + workerPhoto = #{workerPhoto}, + workerGender = #{workerGender}, + birthDate = #{birthDate}, + ethnic = #{ethnic}, + nativePlace = #{nativePlace}, + phone = #{phone}, + workTypeName = #{workTypeName}, + specWorkType = #{specWorkType}, + groupName = #{groupName}, + companyTypeId = #{companyTypeId}, + companyName = #{companyName}, + attendance_time = #{attendanceTime}, + attendance_out_time = #{attendanceOutTime}, + scanPhoto = #{scanPhoto}, teamId = #{teamId}, workTypeCode = #{workTypeCode}, companyId = #{companyId}, vendorId = #{vendorId}, - projectType = #{projectType}, device_code = #{deviceCode}, - work_point_id = #{workPointId}, - scanPhoto = #{scanPhoto}, - other = #{other}, - state = #{state}, - remark = #{remark}, is_del = #{isDel}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + remark = #{remark}, where id = #{id} - delete from sur_project_attendance_data where id = #{id} + delete from sur_project_attendance_data_${year} where id = #{id} - delete from sur_project_attendance_data where id in + delete from sur_project_attendance_data_${year} where id in #{id} - delete from sur_project_attendance_data where CONCAT(app_id,'-',serverid,'-',workerId) in + delete from sur_project_attendance_data_${year} where CONCAT(app_id,'-',serverid,'-',workerId) in #{item} - insert into sur_project_attendance_data( id, cfgid, app_id, vendors_code, serverid, workerId, attendance_type, attendance_time, identification, teamId, workTypeCode, companyId, vendorId, projectType, device_code, work_point_id, scanPhoto, other, state, remark, is_del, create_by, create_time, update_by, update_time) values + insert into sur_project_attendance_data_${year}( id, cfgid, app_id, vendors_code, serverid, workerId, attendance_type, attendance_time, identification, teamId, workTypeCode, companyId, vendorId, projectType, device_code, work_point_id, scanPhoto, other, state, remark, is_del, create_by, create_time, update_by, update_time) values ( #{item.id}, #{item.cfgid},#{item.appId}, #{item.vendorsCode}, #{item.serverid}, #{item.workerId}, #{item.attendanceType}, #{item.attendanceTime}, #{item.identification}, #{item.teamId}, #{item.workTypeCode}, #{item.companyId}, #{item.vendorId}, #{item.projectType}, #{item.deviceCode}, #{item.workPointId}, #{item.scanPhoto}, #{item.other}, #{item.state}, #{item.remark}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime})