diff --git a/pom.xml b/pom.xml index 0bada30..d13cba2 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ 2.1.4 1.3.1 1.2.76 + 2.0.34 5.7.4 5.8.0 2.10.0 @@ -183,6 +184,12 @@ ${fastjson.version} + + com.alibaba.fastjson2 + fastjson2 + ${fastjson2.version} + + com.ruoyi diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 96ea09e..16d9a3b 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -159,7 +159,10 @@ com.ruoyi ruoyi-yanzhu 4.6.1 - compile + + + com.alibaba.fastjson2 + fastjson2 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 40b928f..def1a5c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -101,4 +101,5 @@ public class Constants * RMI 远程方法调用 */ public static final String LOOKUP_RMI = "rmi://"; + public static final Integer BIGSCREEN_QUERY_CACHE = 1; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java index 2d8451a..626e9d8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -127,7 +127,7 @@ public class FileUploadUtils return fileName; } - private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException + public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException { File desc = new File(uploadDir + File.separator + fileName); @@ -141,7 +141,7 @@ public class FileUploadUtils return desc; } - private static final String getPathFileName(String uploadDir, String fileName) throws IOException + public static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = RuoYiConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index bd8d3cd..ddd3089 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -1,15 +1,13 @@ package com.ruoyi.common.utils.file; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; +import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.utils.DateUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import com.ruoyi.common.utils.StringUtils; @@ -77,7 +75,56 @@ public class FileUtils } } } + /** + * 获取图像后缀 + * + * @param photoByte 图像数据 + * @return 后缀名 + */ + public static String getFileExtendName(byte[] photoByte) + { + String strFileExtendName = "jpg"; + if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) + { + strFileExtendName = "gif"; + } + else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) + { + strFileExtendName = "jpg"; + } + else if ((photoByte[0] == 66) && (photoByte[1] == 77)) + { + strFileExtendName = "bmp"; + } + else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) + { + strFileExtendName = "png"; + } + return strFileExtendName; + } + public static String writeBytes(byte[] data, String uploadDir,String fileName) throws IOException + { + FileOutputStream fos = null; + String pathName = ""; + try + { + String extension = getFileExtendName(data); + pathName = DateUtils.datePath() + "/" + fileName; + File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName); + if(file.exists()){ + file.delete(); + } + fos = new FileOutputStream(file); + fos.write(data); + } + finally + { + IOUtils.close(fos); + } + return FileUploadUtils.getPathFileName(uploadDir, pathName); + } /** * 删除文件 * @@ -200,4 +247,15 @@ public class FileUtils String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); return encode.replaceAll("\\+", "%20"); } + + public static String getName(String fileName) { + if (fileName == null) + { + return null; + } + int lastUnixPos = fileName.lastIndexOf('/'); + int lastWindowsPos = fileName.lastIndexOf('\\'); + int index = Math.max(lastUnixPos, lastWindowsPos); + return fileName.substring(index + 1); + } } diff --git a/ruoyi-yanzhu/pom.xml b/ruoyi-yanzhu/pom.xml index fcc852d..d5a6e49 100644 --- a/ruoyi-yanzhu/pom.xml +++ b/ruoyi-yanzhu/pom.xml @@ -26,7 +26,10 @@ com.ruoyi ruoyi-system - + + com.alibaba.fastjson2 + fastjson2 + diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceCfgController.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceCfgController.java index f0831b4..c50f09a 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceCfgController.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceCfgController.java @@ -105,7 +105,7 @@ public class SurProjectAttendanceCfgController extends BaseController @Log(title = "考勤配置", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody - public AjaxResult remove(String ids) + public AjaxResult remove(Long[] ids) { return toAjax(surProjectAttendanceCfgService.deleteSurProjectAttendanceCfgByIds(ids)); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceDataController.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceDataController.java index c44ad3d..dda0693 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceDataController.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceDataController.java @@ -111,7 +111,7 @@ public class SurProjectAttendanceDataController extends BaseController @Log(title = "考勤数据", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody - public AjaxResult remove(String ids) + public AjaxResult remove(Long[] ids) { return toAjax(surProjectAttendanceDataService.deleteSurProjectAttendanceDataByIds(ids)); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceGroupController.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceGroupController.java index 3c59f15..44efe66 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceGroupController.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceGroupController.java @@ -109,7 +109,7 @@ public class SurProjectAttendanceGroupController extends BaseController @Log(title = "班组信息", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody - public AjaxResult remove(String ids) + public AjaxResult remove(Long[] ids) { return toAjax(surProjectAttendanceGroupService.deleteSurProjectAttendanceGroupByIds(ids)); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceUserController.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceUserController.java index 4abf668..0b13415 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceUserController.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/controller/SurProjectAttendanceUserController.java @@ -1,6 +1,7 @@ package com.yanzhu.xd.system.controller; import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -110,7 +111,7 @@ public class SurProjectAttendanceUserController extends BaseController @Log(title = "实名制人员", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody - public AjaxResult remove(String ids) + public AjaxResult remove(Long[] ids) { return toAjax(surProjectAttendanceUserService.deleteSurProjectAttendanceUserByIds(ids)); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceCfg.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceCfg.java index a9a39ae..b78ccb4 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceCfg.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceCfg.java @@ -178,3 +178,4 @@ public class SurProjectAttendanceCfg extends BaseEntity } } + diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceData.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceData.java index 59b5d20..bac8ade 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceData.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceData.java @@ -1,5 +1,8 @@ package com.yanzhu.xd.system.domain; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson2.JSONObject; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -13,296 +16,497 @@ 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; + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getWorkerName() { + return workerName; + } + + public void setWorkerName(String workerName) { + this.workerName = workerName; + } + + public String getWorkerPhoto() { + return workerPhoto; + } + + public void setWorkerPhoto(String workerPhoto) { + this.workerPhoto = workerPhoto; + } + + public Long getWorkerGender() { + return workerGender; + } + + public void setWorkerGender(Long workerGender) { + this.workerGender = workerGender; + } + + public Long getBirthDate() { + return birthDate; + } + + public void setBirthDate(Long birthDate) { + this.birthDate = birthDate; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getWorkTypeName() { + return workTypeName; + } + + public void setWorkTypeName(String workTypeName) { + this.workTypeName = workTypeName; + } + + public String getEthnic() { + return ethnic; + } + + public void setEthnic(String ethnic) { + this.ethnic = ethnic; + } + + public String getNativePlace() { + return nativePlace; + } + + public void setNativePlace(String nativePlace) { + this.nativePlace = nativePlace; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Integer getSpecWorkType() { + return specWorkType; + } + + public void setSpecWorkType(Integer specWorkType) { + this.specWorkType = specWorkType; + } + + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public String getAttendanceOutTime() { + return attendanceOutTime; + } + + public void setAttendanceOutTime(String attendanceOutTime) { + this.attendanceOutTime = attendanceOutTime; + } + + + private Long projectId; + @Excel(name = "项目名称") + private String projectName; + + private Long deptId; + @Excel(name = "部门名称") + private String deptName; + @Excel(name = "姓名") + private String workerName; + + private String workerPhoto; + @Excel(name = "性别0:男 1:女") + private Long workerGender; + + private Long birthDate; + @Excel(name = "所属班组") + private String groupName; + @Excel(name = "工种") + private String workTypeName; + @Excel(name = "民族") + private String ethnic; + @Excel(name = "籍贯") + private String nativePlace; + + @Excel(name = "联系电话") + private String phone; + @Excel(name = "是否特殊工种") + private Integer specWorkType; + + private String companyTypeId; + @Excel(name = "分包商名称") + private String companyName; + + private String workerId; + + /** 考勤时间yyyy-MM-dd HH:mm:ss */ + @Excel(name = "考勤时间(进场)") + private String attendanceTime; + + @Excel(name = "考勤时间(离开)") + private String attendanceOutTime; + /** 身份证号 */ + @Excel(name = "身份证号") + private String identification; + /** */ private Long id; /** 配置项ID,可以获取项目ID和总包ID */ - @Excel(name = "配置项ID,可以获取项目ID和总包ID") private Long cfgid; - /** 应用主键 */ - @Excel(name = "应用主键") + /** 注册应用ID */ private String appId; /** 厂商编号参考字典attendance_vendors */ - @Excel(name = "厂商编号参考字典attendance_vendors") private String vendorsCode; /** 服务端ID */ - @Excel(name = "服务端ID") private String serverid; - /** 工人Id */ - @Excel(name = "工人Id") - private String workerId; - - /** 进门还是出门E进,L出 */ - @Excel(name = "进门还是出门E进,L出") - private String attendanceType; - - /** 考勤时间yyyy-MM-dd HH:mm:ss */ - @Excel(name = "考勤时间yyyy-MM-dd HH:mm:ss") - private String attendanceTime; - - /** 身份证号 */ - @Excel(name = "身份证号") - private String identification; - /** 队伍id */ - @Excel(name = "队伍id") private Long teamId; /** 工种编码 */ - @Excel(name = "工种编码") private String workTypeCode; /** 分包商id */ - @Excel(name = "分包商id") private String companyId; /** 平台对应分包商ID */ - @Excel(name = "平台对应分包商ID") private Long vendorId; - /** 新旧系统项目标识0:新系统项目; 1:旧系统项目 */ - @Excel(name = "新旧系统项目标识0:新系统项目; 1:旧系统项目") - private Long projectType; - /** 设备编号 */ - @Excel(name = "设备编号") private String deviceCode; - /** 作业面Id */ - @Excel(name = "作业面Id") - private String workPointId; - /** 照片 */ - @Excel(name = "照片") private String scanPhoto; - /** 服务返回的JSON */ - @Excel(name = "服务返回的JSON") - private String other; - /** */ - @Excel(name = "") - private Long state; - - /** 是否删除 */ - @Excel(name = "是否删除") private Long isDel; - public void setId(Long id) + private Long subDeptId; + + /** 重要::yanzhu接口接收base64图片 */ + private String scanPhotoBase64; + + /** 重要::yanzhu出门进门逻辑判断 */ + private String attendanceType; + + public String getScanPhotoBase64() { + return scanPhotoBase64; + } + + public void setScanPhotoBase64(String scanPhotoBase64) { + this.scanPhotoBase64 = scanPhotoBase64; + } + + public String getAttendanceType() { + return attendanceType; + } + + public void setAttendanceType(String attendanceType) { + this.attendanceType = attendanceType; + } + + public static SurProjectAttendanceData createFromHuazhu(JSONObject j) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.vendorsCode="huazhu"; + d.serverid=j.getString("id"); + d.workerId=j.getString("labourWorkerId"); + long recordTime=j.getLongValue("recordTime",0); + if(recordTime>0){ + if(j.getIntValue("inOrOut",1)==1){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.attendanceTime= DateUtil.format(DateUtil.date(recordTime),"yyyy-MM-dd HH:mm:ss"); + } + d.identification=j.getString("idCardNo"); + d.teamId=j.getLongValue("teamId",0); + d.workTypeCode=j.getString("workerTypeId"); + d.companyId=j.getString("unitId"); + d.deviceCode=j.getString("deviceNo"); + return d; + } + + public static SurProjectAttendanceData createFromJgw(JSONObject j) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.vendorsCode="jgw"; + d.serverid=j.getString("id"); + d.workerId=j.getString("workerId"); + if("2".equals(j.getString("machineType"))){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.attendanceTime = j.getString("checkinTime"); + + d.teamId=0l; + d.workTypeCode=""; + d.companyId=j.getString("subcontractorId"); + d.deviceCode=j.getString("deviceSerialNo"); + d.isDel=0l; + return d; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getSubDeptId() { + return subDeptId; + } + + public void setSubDeptId(Long subDeptId) { + this.subDeptId = subDeptId; + } + + public String getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(String companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public static SurProjectAttendanceData create(JSONObject json) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.attendanceTime=json.getString("time"); + if("E".equals(json.getString("type"))){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.serverid=json.getString("id"); + d.workerId=json.getString("workerId"); + d.identification=json.getString("identification"); + d.teamId=json.getLong("teamId"); + d.workTypeCode=json.getString("workerTypeId"); + d.companyId=json.getString("companyId"); + d.vendorId=json.getLong("vendorId"); + d.deviceCode=json.getString("deviceCode"); + d.scanPhoto=json.getString("scanPhoto"); + d.isDel=0l; + return d; + } + + public void setId(Long id) { this.id = id; } - public Long getId() + public Long getId() { return id; } - public void setCfgid(Long cfgid) + public void setCfgid(Long cfgid) { this.cfgid = cfgid; } - public Long getCfgid() + public Long getCfgid() { return cfgid; } - public void setAppId(String appId) - { - this.appId = appId; - } - - public String getAppId() - { - return appId; - } - public void setVendorsCode(String vendorsCode) + public void setVendorsCode(String vendorsCode) { this.vendorsCode = vendorsCode; } - public String getVendorsCode() + public String getVendorsCode() { return vendorsCode; } - public void setServerid(String serverid) + public void setServerid(String serverid) { this.serverid = serverid; } - public String getServerid() + public String getServerid() { return serverid; } - public void setWorkerId(String workerId) + public void setWorkerId(String workerId) { this.workerId = workerId; } - public String getWorkerId() + public String getWorkerId() { return workerId; } - public void setAttendanceType(String attendanceType) - { - this.attendanceType = attendanceType; - } - public String getAttendanceType() - { - return attendanceType; - } - public void setAttendanceTime(String attendanceTime) + public void setAttendanceTime(String attendanceTime) { this.attendanceTime = attendanceTime; } - public String getAttendanceTime() + public String getAttendanceTime() { return attendanceTime; } - public void setIdentification(String identification) + public void setIdentification(String identification) { this.identification = identification; } - public String getIdentification() + public String getIdentification() { return identification; } - public void setTeamId(Long teamId) + public void setTeamId(Long teamId) { this.teamId = teamId; } - public Long getTeamId() + public Long getTeamId() { return teamId; } - public void setWorkTypeCode(String workTypeCode) + public void setWorkTypeCode(String workTypeCode) { this.workTypeCode = workTypeCode; } - public String getWorkTypeCode() + public String getWorkTypeCode() { return workTypeCode; } - public void setCompanyId(String companyId) + public void setCompanyId(String companyId) { this.companyId = companyId; } - public String getCompanyId() + public String getCompanyId() { return companyId; } - public void setVendorId(Long vendorId) + public void setVendorId(Long vendorId) { this.vendorId = vendorId; } - public Long getVendorId() + public Long getVendorId() { return vendorId; } - public void setProjectType(Long projectType) - { - this.projectType = projectType; - } - public Long getProjectType() - { - return projectType; - } - public void setDeviceCode(String deviceCode) + public void setDeviceCode(String deviceCode) { this.deviceCode = deviceCode; } - public String getDeviceCode() + public String getDeviceCode() { return deviceCode; } - public void setWorkPointId(String workPointId) - { - this.workPointId = workPointId; - } - public String getWorkPointId() - { - return workPointId; - } - public void setScanPhoto(String scanPhoto) + + public void setScanPhoto(String scanPhoto) { this.scanPhoto = scanPhoto; } - public String getScanPhoto() + public String getScanPhoto() { return scanPhoto; } - public void setOther(String other) - { - this.other = other; - } - public String getOther() - { - return other; - } - public void setState(Long state) - { - this.state = state; - } - - public Long getState() - { - return state; - } - public void setIsDel(Long isDel) + public void setIsDel(Long isDel) { this.isDel = isDel; } - public Long getIsDel() + public Long getIsDel() { return isDel; } + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("cfgid", getCfgid()) - .append("appId", getAppId()) - .append("vendorsCode", getVendorsCode()) - .append("serverid", getServerid()) - .append("workerId", getWorkerId()) - .append("attendanceType", getAttendanceType()) - .append("attendanceTime", getAttendanceTime()) - .append("identification", getIdentification()) - .append("teamId", getTeamId()) - .append("workTypeCode", getWorkTypeCode()) - .append("companyId", getCompanyId()) - .append("vendorId", getVendorId()) - .append("projectType", getProjectType()) - .append("deviceCode", getDeviceCode()) - .append("workPointId", getWorkPointId()) - .append("scanPhoto", getScanPhoto()) - .append("other", getOther()) - .append("state", getState()) - .append("remark", getRemark()) - .append("isDel", getIsDel()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("id", getId()) + .append("cfgid", getCfgid()) + .append("vendorsCode", getVendorsCode()) + .append("serverid", getServerid()) + .append("workerId", getWorkerId()) + .append("attendanceTime", getAttendanceTime()) + .append("identification", getIdentification()) + .append("teamId", getTeamId()) + .append("workTypeCode", getWorkTypeCode()) + .append("companyId", getCompanyId()) + .append("vendorId", getVendorId()) + .append("deviceCode", getDeviceCode()) + .append("scanPhoto", getScanPhoto()) + .append("remark", getRemark()) + .append("isDel", getIsDel()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceGroup.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceGroup.java index f43994d..8f01a95 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceGroup.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceGroup.java @@ -1,5 +1,6 @@ package com.yanzhu.xd.system.domain; +import com.alibaba.fastjson2.JSONObject; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -15,15 +16,15 @@ public class SurProjectAttendanceGroup extends BaseEntity { private static final long serialVersionUID = 1L; - /** */ + /** id */ private Long id; - /** */ - @Excel(name = "") + /** cfgid */ + @Excel(name = "cfgid") private Long cfgid; - /** 应用主键 */ - @Excel(name = "应用主键") + /** 注册应用ID */ + @Excel(name = "注册应用ID") private String appId; /** 服务器主键id */ @@ -86,10 +87,6 @@ public class SurProjectAttendanceGroup extends BaseEntity @Excel(name = "是否删除") private Integer deleted; - /** 创建时间 */ - @Excel(name = "创建时间") - private Long createTimestamp; - /** 基础平台对应班组ID */ @Excel(name = "基础平台对应班组ID") private Long platformGroupId; @@ -106,259 +103,328 @@ public class SurProjectAttendanceGroup extends BaseEntity @Excel(name = "企业退场日期") private Long exitDate; - /** 书否删除 */ - @Excel(name = "书否删除") + /** 是否有效 */ + @Excel(name = "是否有效") private Long isDel; - public void setId(Long id) + /** 时间戳 */ + @Excel(name = "时间戳") + private Long createTimestamp; + + public static SurProjectAttendanceGroup createHuazhu(JSONObject j) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.companyId=""+j.getLongValue("unitId",0); + g.companyName=j.getString("unitName"); + g.companyTypeId=j.getString("unitType"); + g.serverid=j.getString("id"); + g.enterDate=j.getLong("enterTime"); + g.exitDate=j.getLong("leaveTime"); + g.isDel=0l; + return g; + } + + public static SurProjectAttendanceGroup createJgw(JSONObject j, boolean isDirectlyUnder) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.serverid=j.getString("id"); + if(isDirectlyUnder) { + g.companyId = j.getString("leaderTeamId"); + g.leaderName=j.getString("subcontractorId"); + g.leaderPhone="directly"; + }else{ + g.companyId=j.getString("subcontractorId"); + } + g.companyName=j.getString("corpName"); + g.teamName=j.getString("teamName"); + + g.bizLicense=j.getString("corpCode"); + g.companyCode=j.getString("teamJobtype"); + + g.companyTypeId="0"; + g.enterDate=0l; + g.exitDate=0l; + g.isDel=0l; + return g; + } + + public Long getCreateTimestamp() { + return createTimestamp; + } + + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + + public static SurProjectAttendanceGroup create(JSONObject json) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.serverid=json.getString("id"); + g.bizLicense=json.getString("bizLicense"); + g.companyCode=json.getString("companyCode"); + g.companyId=""+json.getLongValue("companyId",0); + g.companyName=json.getString("companyName"); + String typeId=json.getString("companyTypeId"); + if("1".equals(typeId)||"8".equals(typeId)||"9".equals(typeId)){ + typeId=typeId; + }else{ + typeId="2"; + } + g.companyTypeId=typeId; + g.vendorId=json.getLongValue("vendorId",0); + g.name=json.getString("name"); + g.leaderName=json.getString("leaderName"); + g.leaderPhone=json.getString("leaderPhone"); + g.teamId=json.getLongValue("teamId",0); + g.teamName=json.getString("teamName"); + g.type=json.getLongValue("type",0); + g.leaderId=json.getLongValue("leaderId",0); + g.deleted=json.get("deleted")==null?0:(json.getBoolean("deleted")?1:0); + g.platformGroupId=json.getLongValue("platformGroupId",0); + g.platformTeamId=json.getLongValue("platformTeamId",0); + g.enterDate=json.getLongValue("enterDate",0); + g.exitDate=json.getLongValue("exitDate",0); + g.isDel=0l; + return g; + + } + + public void setId(Long id) { this.id = id; } - public Long getId() + public Long getId() { return id; } - public void setCfgid(Long cfgid) + public void setCfgid(Long cfgid) { this.cfgid = cfgid; } - public Long getCfgid() + public Long getCfgid() { return cfgid; } - public void setAppId(String appId) - { - this.appId = appId; - } - - public String getAppId() - { - return appId; - } - public void setServerid(String serverid) + public void setServerid(String serverid) { this.serverid = serverid; } - public String getServerid() + public String getServerid() { return serverid; } - public void setBizLicense(String bizLicense) + public void setBizLicense(String bizLicense) { this.bizLicense = bizLicense; } - public String getBizLicense() + public String getBizLicense() { return bizLicense; } - public void setCompanyCode(String companyCode) + public void setCompanyCode(String companyCode) { this.companyCode = companyCode; } - public String getCompanyCode() + public String getCompanyCode() { return companyCode; } - public void setCompanyId(String companyId) + public void setCompanyId(String companyId) { this.companyId = companyId; } - public String getCompanyId() + public String getCompanyId() { return companyId; } - public void setCompanyName(String companyName) + public void setCompanyName(String companyName) { this.companyName = companyName; } - public String getCompanyName() + public String getCompanyName() { return companyName; } - public void setCompanyTypeId(String companyTypeId) + public void setCompanyTypeId(String companyTypeId) { this.companyTypeId = companyTypeId; } - public String getCompanyTypeId() + public String getCompanyTypeId() { return companyTypeId; } - public void setVendorId(Long vendorId) + public void setVendorId(Long vendorId) { this.vendorId = vendorId; } - public Long getVendorId() + public Long getVendorId() { return vendorId; } - public void setName(String name) + public void setName(String name) { this.name = name; } - public String getName() + public String getName() { return name; } - public void setLeaderName(String leaderName) + public void setLeaderName(String leaderName) { this.leaderName = leaderName; } - public String getLeaderName() + public String getLeaderName() { return leaderName; } - public void setLeaderPhone(String leaderPhone) + public void setLeaderPhone(String leaderPhone) { this.leaderPhone = leaderPhone; } - public String getLeaderPhone() + public String getLeaderPhone() { return leaderPhone; } - public void setTeamId(Long teamId) + public void setTeamId(Long teamId) { this.teamId = teamId; } - public Long getTeamId() + public Long getTeamId() { return teamId; } - public void setTeamName(String teamName) + public void setTeamName(String teamName) { this.teamName = teamName; } - public String getTeamName() + public String getTeamName() { return teamName; } - public void setType(Long type) + public void setType(Long type) { this.type = type; } - public Long getType() + public Long getType() { return type; } - public void setLeaderId(Long leaderId) + public void setLeaderId(Long leaderId) { this.leaderId = leaderId; } - public Long getLeaderId() + public Long getLeaderId() { return leaderId; } - public void setDeleted(Integer deleted) + public void setDeleted(Integer deleted) { this.deleted = deleted; } - public Integer getDeleted() + public Integer getDeleted() { return deleted; } - public void setCreateTimestamp(Long createTimestamp) - { - this.createTimestamp = createTimestamp; - } - - public Long getCreateTimestamp() - { - return createTimestamp; - } - public void setPlatformGroupId(Long platformGroupId) + public void setPlatformGroupId(Long platformGroupId) { this.platformGroupId = platformGroupId; } - public Long getPlatformGroupId() + public Long getPlatformGroupId() { return platformGroupId; } - public void setPlatformTeamId(Long platformTeamId) + public void setPlatformTeamId(Long platformTeamId) { this.platformTeamId = platformTeamId; } - public Long getPlatformTeamId() + public Long getPlatformTeamId() { return platformTeamId; } - public void setEnterDate(Long enterDate) + public void setEnterDate(Long enterDate) { this.enterDate = enterDate; } - public Long getEnterDate() + public Long getEnterDate() { return enterDate; } - public void setExitDate(Long exitDate) + public void setExitDate(Long exitDate) { this.exitDate = exitDate; } - public Long getExitDate() + public Long getExitDate() { return exitDate; } - public void setIsDel(Long isDel) + public void setIsDel(Long isDel) { this.isDel = isDel; } - public Long getIsDel() + public Long getIsDel() { return isDel; } + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("cfgid", getCfgid()) - .append("appId", getAppId()) - .append("serverid", getServerid()) - .append("bizLicense", getBizLicense()) - .append("companyCode", getCompanyCode()) - .append("companyId", getCompanyId()) - .append("companyName", getCompanyName()) - .append("companyTypeId", getCompanyTypeId()) - .append("vendorId", getVendorId()) - .append("name", getName()) - .append("leaderName", getLeaderName()) - .append("leaderPhone", getLeaderPhone()) - .append("teamId", getTeamId()) - .append("teamName", getTeamName()) - .append("type", getType()) - .append("leaderId", getLeaderId()) - .append("deleted", getDeleted()) - .append("createTimestamp", getCreateTimestamp()) - .append("platformGroupId", getPlatformGroupId()) - .append("platformTeamId", getPlatformTeamId()) - .append("enterDate", getEnterDate()) - .append("exitDate", getExitDate()) - .append("remark", getRemark()) - .append("isDel", getIsDel()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("id", getId()) + .append("cfgid", getCfgid()) + .append("serverid", getServerid()) + .append("bizLicense", getBizLicense()) + .append("companyCode", getCompanyCode()) + .append("companyId", getCompanyId()) + .append("companyName", getCompanyName()) + .append("companyTypeId", getCompanyTypeId()) + .append("vendorId", getVendorId()) + .append("name", getName()) + .append("leaderName", getLeaderName()) + .append("leaderPhone", getLeaderPhone()) + .append("teamId", getTeamId()) + .append("teamName", getTeamName()) + .append("type", getType()) + .append("leaderId", getLeaderId()) + .append("deleted", getDeleted()) + .append("createTimestamp", getCreateTimestamp()) + .append("platformGroupId", getPlatformGroupId()) + .append("platformTeamId", getPlatformTeamId()) + .append("enterDate", getEnterDate()) + .append("exitDate", getExitDate()) + .append("remark", getRemark()) + .append("isDel", getIsDel()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } + diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceUser.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceUser.java index 512ca9e..5dec459 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceUser.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SurProjectAttendanceUser.java @@ -1,10 +1,17 @@ package com.yanzhu.xd.system.domain; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.util.Date; +import java.util.List; + /** * 实名制人员对象 sur_project_attendance_user * @@ -15,19 +22,20 @@ public class SurProjectAttendanceUser extends BaseEntity { private static final long serialVersionUID = 1L; + /** */ private Long id; /** 配置项ID,可以获取项目ID和总包ID */ - @Excel(name = "配置项ID,可以获取项目ID和总包ID") + private Long cfgid; - /** 应用主键 */ - @Excel(name = "应用主键") + /** 注册应用ID */ + private String appId; /** 厂商编号参考字典attendance_vendors */ - @Excel(name = "厂商编号参考字典attendance_vendors") + private String vendorsCode; /** 工人id */ @@ -35,7 +43,7 @@ public class SurProjectAttendanceUser extends BaseEntity private String workerId; /** 项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId */ - @Excel(name = "项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId") + private Long laborWorkerId; /** 人员类别0:工人,1:管理人员 */ @@ -43,7 +51,7 @@ public class SurProjectAttendanceUser extends BaseEntity private Long workerCategory; /** 工号 */ - @Excel(name = "工号") + private Long qrCode; /** 姓名 */ @@ -79,11 +87,11 @@ public class SurProjectAttendanceUser extends BaseEntity private String photo; /** 近照 */ - @Excel(name = "近照") + private String recentPhoto; /** 所属班组ID */ - @Excel(name = "所属班组ID") + private String groupId; /** 所属班组 */ @@ -136,7 +144,7 @@ public class SurProjectAttendanceUser extends BaseEntity /** 队伍id */ @Excel(name = "队伍id") - private Long teamId; + private Integer teamId; /** 队伍名称 */ @Excel(name = "队伍名称") @@ -150,369 +158,576 @@ public class SurProjectAttendanceUser extends BaseEntity @Excel(name = "服务返回的JSON") private String other; - /** 是否删除 */ - @Excel(name = "是否删除") + /** 是否有效 */ + @Excel(name = "是否有效") private Long isDel; - public void setId(Long id) + /** 人员部门类型 */ + @Excel(name = "人员部门类型") + private String companyTypeId; + + /** 重要::yanzhu接口接收base64图片 */ + private String recentPhotoBase64; + + public String getRecentPhotoBase64() { + return recentPhotoBase64; + } + + public void setRecentPhotoBase64(String recentPhotoBase64) { + this.recentPhotoBase64 = recentPhotoBase64; + } + + @Excel(name = "进场时间") + private Date inTime; + @Excel(name = "离场时间") + private Date outTime; + + public static SurProjectAttendanceUser createFromHuazhu(JSONObject j) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=j.getString("id"); + u.name=j.getString("name"); + u.ethnic=j.getString("nationalName"); + u.nativePlace=j.getString("provinceName")+j.getString("cityName"); + u.gender=j.getLongValue("sex",0)==0l?1l:0l; + u.birthDate=j.getLongValue("birthday",0); + u.phone=j.getString("phone"); + u.degreeName=j.getString("levelOfEducation"); + u.recentPhoto=j.getString("profile"); + u.groupId=j.getString("teamId"); + u.groupName=j.getString("teamName"); + u.workTypeCode=j.getString("workerTypeId"); + u.workTypeName=j.getString("workerTypeName"); + u.state=j.getLongValue("status",1)==2l?0l:1l; + long enterTime=j.getLong("enterTime"); + if(enterTime>0){ + u.enterDate= DateUtil.format(DateUtil.date(enterTime),"yyyy-MM-dd HH:mm:ss"); + } + long leaveTime=j.getLong("leaveTime"); + if(leaveTime>0) { + u.exitDate = DateUtil.format(DateUtil.date(leaveTime), "yyyy-MM-dd HH:mm:ss"); + } + u.vendorId=j.getLongValue("unitProjectId",0); + u.companyId=""+j.getLongValue("unitId",0); + u.companyName=j.getString("unitName"); + u.teamName=j.getString("teamName"); + return u; + } + + public static SurProjectAttendanceUser createFromJgw(JSONObject j) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=j.getString("workerId"); + u.name=j.getString("name"); + u.ethnic=j.getString("minor"); + u.phone=j.getString("workPhone"); + u.nativePlace=j.getString("address"); + u.gender=j.getLongValue("sex",0)==0l?1l:0l; + String tmp=j.getString("birthday"); + if(StrUtil.isNotEmpty(tmp)) { + try { + u.birthDate = DateUtil.parse(tmp).getTime(); + }catch (Exception ex){ + + } + } + u.photo=j.getString("headImage"); + u.degreeName=j.getString("education"); + u.recentPhoto=j.getString("vaildPhoto"); + u.groupId=""; + u.groupName=""; + u.workTypeCode=""; + u.workTypeName=j.getString("jobtype"); + u.state="01".equals( j.getString("workerStatus"))?0l:1l; + String workDate=j.getString("workDate"); + if(!StrUtil.isEmpty(workDate)){ + u.enterDate=workDate; + } + u.vendorId=0l; + u.companyId=j.getString("subcontractorId"); + u.companyName=""; + u.teamName=""; + u.isDel=0l; + JSONArray ja=j.getJSONArray("corpName"); + if(ja!=null && ja.size()>0){ + Object obj=ja.get(0); + if(obj!=null){ + u.companyName=obj.toString(); + } + } + + u.leader=j.getInteger("isAdmin")==1?1:0; + return u; + } + + public Date getInTime() { + return inTime; + } + + public void setInTime(Date inTime) { + this.inTime = inTime; + } + + public Date getOutTime() { + return outTime; + } + + public void setOutTime(Date outTime) { + this.outTime = outTime; + } + + private Long projectId; + private Long subDeptId; + private Long deptId; + + private List workerIds; + + public List getWorkerIds() { + return workerIds; + } + + public void setWorkerIds(List workerIds) { + this.workerIds = workerIds; + } + + private int size; + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + private int index; + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getSubDeptId() { + return subDeptId; + } + + public void setSubDeptId(Long subDeptId) { + this.subDeptId = subDeptId; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public static SurProjectAttendanceUser create(JSONObject json) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=json.getString("workerId"); + u.laborWorkerId=json.getLongValue("laborWorkerId",0); + u.workerCategory=json.getLongValue("workerCategory",0); + u.qrCode=json.getLongValue("qrCode",0); + u.name=json.getString("name"); + u.ethnic=json.getString("ethnic"); + u.nativePlace=json.getString("nativePlace"); + u.gender=json.getLongValue("gender",0); + u.birthDate=json.getLongValue("birthDate",0); + u.phone=json.getString("phone"); + u.recentPhoto=json.getString("recentPhoto"); + u.groupId=json.getString("groupId"); + u.groupName=json.getString("groupName"); + u.leader=json.getBooleanValue("leader",false)?1:0; + u.workTypeCode=json.getString("workTypeCode"); + u.workTypeName=json.getString("workTypeName"); + u.specWorkType=json.getBooleanValue("specWorkType",false)?1:0; + u.hatCode=json.getString("hatCode"); + u.state=json.getLongValue("status",0); + u.enterDate=json.getString("enterDate"); + u.exitDate=json.getString("exitDate"); + u.companyId=""+json.getLongValue("companyId",0); + u.companyName=json.getString("companyName"); + u.vendorId=json.getLongValue("vendorId",0); + u.teamId=json.getInteger("teamId"); + u.teamName=json.getString("teamName"); + u.enterType=json.getString("enterType"); + u.isDel=0l; + return u; + } + public void setId(Long id) { this.id = id; } - public Long getId() + public Long getId() { return id; } - public void setCfgid(Long cfgid) + public void setCfgid(Long cfgid) { this.cfgid = cfgid; } - public Long getCfgid() + public Long getCfgid() { return cfgid; } - public void setAppId(String appId) - { - this.appId = appId; - } - - public String getAppId() - { - return appId; - } - public void setVendorsCode(String vendorsCode) + public void setVendorsCode(String vendorsCode) { this.vendorsCode = vendorsCode; } - public String getVendorsCode() + public String getVendorsCode() { return vendorsCode; } - public void setWorkerId(String workerId) + public void setWorkerId(String workerId) { this.workerId = workerId; } - public String getWorkerId() + public String getWorkerId() { return workerId; } - public void setLaborWorkerId(Long laborWorkerId) + public void setLaborWorkerId(Long laborWorkerId) { this.laborWorkerId = laborWorkerId; } - public Long getLaborWorkerId() + public Long getLaborWorkerId() { return laborWorkerId; } - public void setWorkerCategory(Long workerCategory) + public void setWorkerCategory(Long workerCategory) { this.workerCategory = workerCategory; } - public Long getWorkerCategory() + public Long getWorkerCategory() { return workerCategory; } - public void setQrCode(Long qrCode) + public void setQrCode(Long qrCode) { this.qrCode = qrCode; } - public Long getQrCode() + public Long getQrCode() { return qrCode; } - public void setName(String name) + public void setName(String name) { this.name = name; } - public String getName() + public String getName() { return name; } - public void setEthnic(String ethnic) + public void setEthnic(String ethnic) { this.ethnic = ethnic; } - public String getEthnic() + public String getEthnic() { return ethnic; } - public void setNativePlace(String nativePlace) + public void setNativePlace(String nativePlace) { this.nativePlace = nativePlace; } - public String getNativePlace() + public String getNativePlace() { return nativePlace; } - public void setGender(Long gender) + public void setGender(Long gender) { this.gender = gender; } - public Long getGender() + public Long getGender() { return gender; } - public void setBirthDate(Long birthDate) + public void setBirthDate(Long birthDate) { this.birthDate = birthDate; } - public Long getBirthDate() + public Long getBirthDate() { return birthDate; } - public void setPhone(String phone) + public void setPhone(String phone) { this.phone = phone; } - public String getPhone() + public String getPhone() { return phone; } - public void setDegreeName(String degreeName) + public void setDegreeName(String degreeName) { this.degreeName = degreeName; } - public String getDegreeName() + public String getDegreeName() { return degreeName; } - public void setPhoto(String photo) + public void setPhoto(String photo) { this.photo = photo; } - public String getPhoto() + public String getPhoto() { return photo; } - public void setRecentPhoto(String recentPhoto) + public void setRecentPhoto(String recentPhoto) { this.recentPhoto = recentPhoto; } - public String getRecentPhoto() + public String getRecentPhoto() { return recentPhoto; } - public void setGroupId(String groupId) + public void setGroupId(String groupId) { this.groupId = groupId; } - public String getGroupId() + public String getGroupId() { return groupId; } - public void setGroupName(String groupName) + public void setGroupName(String groupName) { this.groupName = groupName; } - public String getGroupName() + public String getGroupName() { return groupName; } - public void setLeader(Integer leader) + public void setLeader(Integer leader) { this.leader = leader; } - public Integer getLeader() + public Integer getLeader() { return leader; } - public void setWorkTypeCode(String workTypeCode) + public void setWorkTypeCode(String workTypeCode) { this.workTypeCode = workTypeCode; } - public String getWorkTypeCode() + public String getWorkTypeCode() { return workTypeCode; } - public void setWorkTypeName(String workTypeName) + public void setWorkTypeName(String workTypeName) { this.workTypeName = workTypeName; } - public String getWorkTypeName() + public String getWorkTypeName() { return workTypeName; } - public void setSpecWorkType(Integer specWorkType) + public void setSpecWorkType(Integer specWorkType) { this.specWorkType = specWorkType; } - public Integer getSpecWorkType() + public Integer getSpecWorkType() { return specWorkType; } - public void setHatCode(String hatCode) + public void setHatCode(String hatCode) { this.hatCode = hatCode; } - public String getHatCode() + public String getHatCode() { return hatCode; } - public void setState(Long state) + public void setState(Long state) { this.state = state; } - public Long getState() + public Long getState() { return state; } - public void setEnterDate(String enterDate) + public void setEnterDate(String enterDate) { this.enterDate = enterDate; } - public String getEnterDate() + public String getEnterDate() { return enterDate; } - public void setExitDate(String exitDate) + public void setExitDate(String exitDate) { this.exitDate = exitDate; } - public String getExitDate() + public String getExitDate() { return exitDate; } - public void setCompanyId(String companyId) + public void setCompanyId(String companyId) { this.companyId = companyId; } - public String getCompanyId() + public String getCompanyId() { return companyId; } - public void setCompanyName(String companyName) + public void setCompanyName(String companyName) { this.companyName = companyName; } - public String getCompanyName() + public String getCompanyName() { return companyName; } - public void setVendorId(Long vendorId) + public void setVendorId(Long vendorId) { this.vendorId = vendorId; } - public Long getVendorId() + public Long getVendorId() { return vendorId; } - public void setTeamId(Long teamId) + public void setTeamId(Integer teamId) { this.teamId = teamId; } - public Long getTeamId() + public Integer getTeamId() { return teamId; } - public void setTeamName(String teamName) + public void setTeamName(String teamName) { this.teamName = teamName; } - public String getTeamName() + public String getTeamName() { return teamName; } - public void setEnterType(String enterType) + public void setEnterType(String enterType) { this.enterType = enterType; } - public String getEnterType() + public String getEnterType() { return enterType; } - public void setOther(String other) + public void setOther(String other) { this.other = other; } - public String getOther() + public String getOther() { return other; } - public void setIsDel(Long isDel) + public void setIsDel(Long isDel) { this.isDel = isDel; } - public Long getIsDel() + public Long getIsDel() { return isDel; } + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(String companyTypeId) { + this.companyTypeId = companyTypeId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("cfgid", getCfgid()) - .append("appId", getAppId()) - .append("vendorsCode", getVendorsCode()) - .append("workerId", getWorkerId()) - .append("laborWorkerId", getLaborWorkerId()) - .append("workerCategory", getWorkerCategory()) - .append("qrCode", getQrCode()) - .append("name", getName()) - .append("ethnic", getEthnic()) - .append("nativePlace", getNativePlace()) - .append("gender", getGender()) - .append("birthDate", getBirthDate()) - .append("phone", getPhone()) - .append("degreeName", getDegreeName()) - .append("photo", getPhoto()) - .append("recentPhoto", getRecentPhoto()) - .append("groupId", getGroupId()) - .append("groupName", getGroupName()) - .append("leader", getLeader()) - .append("workTypeCode", getWorkTypeCode()) - .append("workTypeName", getWorkTypeName()) - .append("specWorkType", getSpecWorkType()) - .append("hatCode", getHatCode()) - .append("state", getState()) - .append("enterDate", getEnterDate()) - .append("exitDate", getExitDate()) - .append("companyId", getCompanyId()) - .append("companyName", getCompanyName()) - .append("vendorId", getVendorId()) - .append("teamId", getTeamId()) - .append("teamName", getTeamName()) - .append("enterType", getEnterType()) - .append("other", getOther()) - .append("remark", getRemark()) - .append("isDel", getIsDel()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("id", getId()) + .append("cfgid", getCfgid()) + .append("vendorsCode", getVendorsCode()) + .append("workerId", getWorkerId()) + .append("laborWorkerId", getLaborWorkerId()) + .append("workerCategory", getWorkerCategory()) + .append("qrCode", getQrCode()) + .append("name", getName()) + .append("ethnic", getEthnic()) + .append("nativePlace", getNativePlace()) + .append("gender", getGender()) + .append("birthDate", getBirthDate()) + .append("phone", getPhone()) + .append("degreeName", getDegreeName()) + .append("photo", getPhoto()) + .append("recentPhoto", getRecentPhoto()) + .append("groupId", getGroupId()) + .append("groupName", getGroupName()) + .append("leader", getLeader()) + .append("workTypeCode", getWorkTypeCode()) + .append("workTypeName", getWorkTypeName()) + .append("specWorkType", getSpecWorkType()) + .append("hatCode", getHatCode()) + .append("state", getState()) + .append("enterDate", getEnterDate()) + .append("exitDate", getExitDate()) + .append("companyId", getCompanyId()) + .append("companyName", getCompanyName()) + .append("vendorId", getVendorId()) + .append("teamId", getTeamId()) + .append("teamName", getTeamName()) + .append("enterType", getEnterType()) + .append("other", getOther()) + .append("remark", getRemark()) + .append("isDel", getIsDel()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } -} +} \ No newline at end of file diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceCfgMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceCfgMapper.java index 0e1a714..2ae9e59 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceCfgMapper.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceCfgMapper.java @@ -12,50 +12,52 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceCfg; public interface SurProjectAttendanceCfgMapper { /** - * 查询考勤配置 - * - * @param id 考勤配置ID - * @return 考勤配置 + * 查询项目考勤配置 + * + * @param id 项目考勤配置主键 + * @return 项目考勤配置 */ public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id); /** - * 查询考勤配置列表 - * - * @param surProjectAttendanceCfg 考勤配置 - * @return 考勤配置集合 + * 查询项目考勤配置列表 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 + * @return 项目考勤配置集合 */ - public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg); + public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 新增考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 新增项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ - public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg); + public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 修改考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 修改项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ - public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg); + public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 删除考勤配置 - * - * @param id 考勤配置ID + * 删除项目考勤配置 + * + * @param id 项目考勤配置主键 * @return 结果 */ public int deleteSurProjectAttendanceCfgById(Long id); /** - * 批量删除考勤配置 - * - * @param ids 需要删除的数据ID + * 批量删除项目考勤配置 + * + * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceCfgByIds(String[] ids); + public int deleteSurProjectAttendanceCfgByIds(Long[] ids); + + public List selectSurProjectAttendanceCfgListForAllInfo(SurProjectAttendanceCfg where); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceDataMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceDataMapper.java index d0d6e4f..e71e258 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceDataMapper.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceDataMapper.java @@ -1,7 +1,10 @@ package com.yanzhu.xd.system.mapper; import java.util.List; +import java.util.Map; + import com.yanzhu.xd.system.domain.SurProjectAttendanceData; +import org.apache.ibatis.annotations.Param; /** * 考勤数据Mapper接口 @@ -12,50 +15,121 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceData; public interface SurProjectAttendanceDataMapper { /** - * 查询考勤数据 - * - * @param id 考勤数据ID - * @return 考勤数据 + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 */ public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id); /** - * 查询考勤数据列表 - * - * @param surProjectAttendanceData 考勤数据 - * @return 考勤数据集合 + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 */ - public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 新增考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData quartzProjectAttendanceData); + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ - public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + public int insertSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 修改考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ - public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + public int updateSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 删除考勤数据 - * - * @param id 考勤数据ID + * 删除劳务实名制管理 + * + * @param id 劳务实名制管理主键 * @return 结果 */ public int deleteSurProjectAttendanceDataById(Long id); /** - * 批量删除考勤数据 - * - * @param ids 需要删除的数据ID + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceDataByIds(String[] ids); + public int deleteSurProjectAttendanceDataByIds(Long[] ids); + + /** + * 批量删除劳务实名制管理 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceDataByParams(List list); + + /** + * 批量新增劳务实名制考勤管理 + * + * @param quartzProjectAttendanceDataList 劳务实名制考勤管理列表 + * @return 结果 + */ + public int batchSurProjectAttendanceData(@Param("list") List quartzProjectAttendanceDataList, @Param("year") String year); + + public Long getLastServerId(SurProjectAttendanceData where); + + List groupAllByComany(SurProjectAttendanceData where); + List groupByComany(SurProjectAttendanceData where); + + public Long getHuazhuPage(SurProjectAttendanceData where); + + + public List> initOtherData(Map data); + + public List> initHuaZhuData(Map data); + + public String findHuaZhuCompanyType(String deptName); + + public List todayAttendance(SurProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(SurProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> findGroupAllByParams(SurProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(SurProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(SurProjectAttendanceData where); + + public List groupTodayCompanyTypeId(SurProjectAttendanceData where); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceGroupMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceGroupMapper.java index 6a862fe..ac8810e 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceGroupMapper.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceGroupMapper.java @@ -12,50 +12,74 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceGroup; public interface SurProjectAttendanceGroupMapper { /** - * 查询班组信息 - * - * @param id 班组信息ID - * @return 班组信息 + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 */ public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); /** - * 查询班组信息列表 - * - * @param surProjectAttendanceGroup 班组信息 - * @return 班组信息集合 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 */ - public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup); + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 新增班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ - public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 修改班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ - public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 删除班组信息 - * - * @param id 班组信息ID + * 删除广联达班组信息 + * + * @param id 广联达班组信息主键 * @return 结果 */ public int deleteSurProjectAttendanceGroupById(Long id); /** - * 批量删除班组信息 - * - * @param ids 需要删除的数据ID + * 批量删除广联达班组信息 + * + * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceGroupByIds(String[] ids); + public int deleteSurProjectAttendanceGroupByIds(Long[] ids); + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupByParams(List list); + + /** + * 批量新增广联达班组信息 + * + * @param quartzProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + public int batchSurProjectAttendanceGroup(List quartzProjectAttendanceGroupList); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceUserMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceUserMapper.java index 1079236..cc99c8a 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceUserMapper.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SurProjectAttendanceUserMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.xd.system.mapper; import java.util.List; +import java.util.Map; + import com.yanzhu.xd.system.domain.SurProjectAttendanceUser; /** @@ -12,50 +14,154 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceUser; public interface SurProjectAttendanceUserMapper { /** - * 查询实名制人员 - * - * @param id 实名制人员ID - * @return 实名制人员 + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 */ public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); /** - * 查询实名制人员列表 - * - * @param surProjectAttendanceUser 实名制人员 - * @return 实名制人员集合 + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 */ - public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 新增实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser); + + + public List querySurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser); + + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser quartzProjectAttendanceUser); + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ - public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 修改实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ - public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 删除实名制人员 - * - * @param id 实名制人员ID + * 删除考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 * @return 结果 */ public int deleteSurProjectAttendanceUserById(Long id); /** - * 批量删除实名制人员 - * - * @param ids 需要删除的数据ID + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceUserByIds(String[] ids); + public int deleteSurProjectAttendanceUserByIds(Long[] ids); + + /** + * 批量删除考勤人员基本属性 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceUserByParams(List list); + + /** + * 批量新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + public int batchSurProjectAttendanceUser(List quartzProjectAttendanceUserList); + + /** + * 下面三个方法完成考勤记录分页查询 + * countAttendance 获取总记录条数 + * queryAttendanceUsers 获取当前页workerIds + * queryAttendanceByUserIds 根据workerIds查询一页数据然后组装 + * @param where + * @return + */ + public List queryAttendanceByUserIds(SurProjectAttendanceUser where); + public long countAttendance(SurProjectAttendanceUser where); + public List queryAttendanceUsers(SurProjectAttendanceUser where); + + public long countTodayAttendance(SurProjectAttendanceUser where); + + + public List todayAttendance(SurProjectAttendanceUser where); + public List todayAttendanceData(List list); + + public List todayAttendanceOtherData(Map data); + + /** + * 在岗工人查询 + * @param where + * @return + */ + List queryWorkerOnDuty(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(SurProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(SurProjectAttendanceUser where); + } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java index 119b059..fb7eb47 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java @@ -58,4 +58,6 @@ public interface SysNativeMapper * @return 结果 */ public int deleteSysNativeByIds(String[] ids); + + List selectSysNativeListById(long id); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceCfgService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceCfgService.java index 46dee00..d38628c 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceCfgService.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceCfgService.java @@ -12,49 +12,49 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceCfg; public interface ISurProjectAttendanceCfgService { /** - * 查询考勤配置 - * - * @param id 考勤配置ID - * @return 考勤配置 + * 查询项目考勤配置 + * + * @param id 项目考勤配置主键 + * @return 项目考勤配置 */ public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id); /** - * 查询考勤配置列表 - * - * @param surProjectAttendanceCfg 考勤配置 - * @return 考勤配置集合 + * 查询项目考勤配置列表 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 + * @return 项目考勤配置集合 */ - public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg); + public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 新增考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 新增项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ - public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg); + public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 修改考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 修改项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ - public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg); + public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg); /** - * 批量删除考勤配置 - * - * @param ids 需要删除的数据ID + * 批量删除项目考勤配置 + * + * @param ids 需要删除的项目考勤配置主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceCfgByIds(String ids); + public int deleteSurProjectAttendanceCfgByIds(Long[] ids); /** - * 删除考勤配置信息 - * - * @param id 考勤配置ID + * 删除项目考勤配置信息 + * + * @param id 项目考勤配置主键 * @return 结果 */ public int deleteSurProjectAttendanceCfgById(Long id); diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceDataService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceDataService.java index 31ea299..deea34f 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceDataService.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceDataService.java @@ -1,6 +1,8 @@ package com.yanzhu.xd.system.service; import java.util.List; +import java.util.Map; + import com.yanzhu.xd.system.domain.SurProjectAttendanceData; /** @@ -12,50 +14,128 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceData; public interface ISurProjectAttendanceDataService { /** - * 查询考勤数据 - * - * @param id 考勤数据ID - * @return 考勤数据 + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 */ public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id); /** - * 查询考勤数据列表 - * - * @param surProjectAttendanceData 考勤数据 - * @return 考勤数据集合 + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 */ - public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 新增考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData quartzProjectAttendanceData); + + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ - public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + public int insertSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 修改考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ - public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + public int updateSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData); /** - * 批量删除考勤数据 - * - * @param ids 需要删除的数据ID + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的劳务实名制管理主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceDataByIds(String ids); + public int deleteSurProjectAttendanceDataByIds(Long[] ids); /** - * 删除考勤数据信息 - * - * @param id 考勤数据ID + * 删除劳务实名制管理信息 + * + * @param id 劳务实名制管理主键 * @return 结果 */ public int deleteSurProjectAttendanceDataById(Long id); + + /** + * 批量删除劳务实名制管理 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceDataByParams(List list); + + /** + * 批量新增劳务实名制考勤管理 + * + * @param quartzProjectAttendanceDataList 劳务实名制管理考勤列表 + * @return 结果 + */ + public int batchSurProjectAttendanceData(List quartzProjectAttendanceDataList); + + public void add(SurProjectAttendanceData sdata); + + public String getLastServerId(SurProjectAttendanceData where); + + public List groupByComany(SurProjectAttendanceData where); + + public Long getHuazhuPage( SurProjectAttendanceData where); + + public List groupAllByComany(SurProjectAttendanceData where); + + public List> initOtherData(Map data); + + public List> initHuaZhuData(Map data); + + List todayAttendance(SurProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> groupAllByParams(SurProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(SurProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(SurProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(SurProjectAttendanceData where); + + List groupTodayCompanyTypeId(SurProjectAttendanceData where); + + /** + * 指增加 + * @param addList + */ + void addList(List addList); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceGroupService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceGroupService.java index 1ad80d7..75c4f44 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceGroupService.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceGroupService.java @@ -12,50 +12,82 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceGroup; public interface ISurProjectAttendanceGroupService { /** - * 查询班组信息 - * - * @param id 班组信息ID - * @return 班组信息 + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 */ public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); /** - * 查询班组信息列表 - * - * @param surProjectAttendanceGroup 班组信息 - * @return 班组信息集合 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 */ - public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup); + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 新增班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ - public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 修改班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ - public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup); /** - * 批量删除班组信息 - * - * @param ids 需要删除的数据ID + * 批量删除广联达班组信息 + * + * @param ids 需要删除的广联达班组信息主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceGroupByIds(String ids); + public int deleteSurProjectAttendanceGroupByIds(Long[] ids); /** - * 删除班组信息信息 - * - * @param id 班组信息ID + * 删除广联达班组信息信息 + * + * @param id 广联达班组信息主键 * @return 结果 */ public int deleteSurProjectAttendanceGroupById(Long id); + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupByParams(List list); + + /** + * 批量新增广联达班组信息 + * + * @param quartzProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + public int batchSurProjectAttendanceGroup(List quartzProjectAttendanceGroupList); + + public void add(SurProjectAttendanceGroup group); + + /** + * 更新济工网的分组类型 + * @param group + */ + public void updateJgw(SurProjectAttendanceGroup group); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceUserService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceUserService.java index 10879f9..8f5c383 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceUserService.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISurProjectAttendanceUserService.java @@ -1,6 +1,8 @@ package com.yanzhu.xd.system.service; import java.util.List; +import java.util.Map; + import com.yanzhu.xd.system.domain.SurProjectAttendanceUser; /** @@ -12,50 +14,148 @@ import com.yanzhu.xd.system.domain.SurProjectAttendanceUser; public interface ISurProjectAttendanceUserService { /** - * 查询实名制人员 - * - * @param id 实名制人员ID - * @return 实名制人员 + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 */ public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); /** - * 查询实名制人员列表 - * - * @param surProjectAttendanceUser 实名制人员 - * @return 实名制人员集合 + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 */ - public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 新增实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ - public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 修改实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ - public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser); /** - * 批量删除实名制人员 - * - * @param ids 需要删除的数据ID + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的考勤人员基本属性主键集合 * @return 结果 */ - public int deleteSurProjectAttendanceUserByIds(String ids); + public int deleteSurProjectAttendanceUserByIds(Long[] ids); /** - * 删除实名制人员信息 - * - * @param id 实名制人员ID + * 删除考勤人员基本属性信息 + * + * @param id 考勤人员基本属性主键 * @return 结果 */ public int deleteSurProjectAttendanceUserById(Long id); + + /** + * 批量删除考勤人员基本属性 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceUserByParams(List list); + + /** + * 批量新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + public int batchSurProjectAttendanceUser(List quartzProjectAttendanceUserList); + + public void add(SurProjectAttendanceUser user); + + public List queryAttendanceData(SurProjectAttendanceUser where); + + public long countTodayAttendance(SurProjectAttendanceUser where); + + public List todayAttendance(SurProjectAttendanceUser where); + + public long countAttendance(SurProjectAttendanceUser where); + + /** + * 济工网人员查询 + * @param quartzProjectAttendanceUser + * @return + */ + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List queryWorkerOnDuty(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where); + + List querySurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(SurProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(SurProjectAttendanceUser where); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java index 5f796ec..0d561fb 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java @@ -58,4 +58,6 @@ public interface ISysNativeService * @return 结果 */ public int deleteSysNativeById(Long id); + + List selectSysNativeListById(long id); } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceCfgServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceCfgServiceImpl.java index 7e03d9a..3a965be 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceCfgServiceImpl.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceCfgServiceImpl.java @@ -1,13 +1,17 @@ package com.yanzhu.xd.system.service.impl; +import java.util.ArrayList; import java.util.List; + +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.utils.DateUtils; +import com.yanzhu.xd.system.utils.SecurityTools; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.xd.system.mapper.SurProjectAttendanceCfgMapper; import com.yanzhu.xd.system.domain.SurProjectAttendanceCfg; import com.yanzhu.xd.system.service.ISurProjectAttendanceCfgService; -import com.ruoyi.common.core.text.Convert; + /** * 考勤配置Service业务层处理 @@ -18,80 +22,91 @@ import com.ruoyi.common.core.text.Convert; @Service public class SurProjectAttendanceCfgServiceImpl implements ISurProjectAttendanceCfgService { + + @Autowired - private SurProjectAttendanceCfgMapper surProjectAttendanceCfgMapper; + private SurProjectAttendanceCfgMapper attendanceCfgMapper; /** - * 查询考勤配置 - * - * @param id 考勤配置ID - * @return 考勤配置 + * 查询项目考勤配置 + * + * @param id 项目考勤配置主键 + * @return 项目考勤配置 */ @Override public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id) { - return surProjectAttendanceCfgMapper.selectSurProjectAttendanceCfgById(id); + return attendanceCfgMapper.selectSurProjectAttendanceCfgById(id); } /** - * 查询考勤配置列表 - * - * @param surProjectAttendanceCfg 考勤配置 - * @return 考勤配置 + * 查询项目考勤配置列表 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 + * @return 项目考勤配置 */ @Override - public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg) + public List selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg quartzProjectAttendanceCfg) { - return surProjectAttendanceCfgMapper.selectSurProjectAttendanceCfgList(surProjectAttendanceCfg); + return attendanceCfgMapper.selectSurProjectAttendanceCfgList(quartzProjectAttendanceCfg); } /** - * 新增考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 新增项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ @Override - public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg) + public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg) { - surProjectAttendanceCfg.setCreateTime(DateUtils.getNowDate()); - return surProjectAttendanceCfgMapper.insertSurProjectAttendanceCfg(surProjectAttendanceCfg); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceCfg.setCreateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceCfg.setCreateTime(DateUtils.getNowDate()); + return attendanceCfgMapper.insertSurProjectAttendanceCfg(quartzProjectAttendanceCfg); } /** - * 修改考勤配置 - * - * @param surProjectAttendanceCfg 考勤配置 + * 修改项目考勤配置 + * + * @param quartzProjectAttendanceCfg 项目考勤配置 * @return 结果 */ @Override - public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg) + public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg quartzProjectAttendanceCfg) { - surProjectAttendanceCfg.setUpdateTime(DateUtils.getNowDate()); - return surProjectAttendanceCfgMapper.updateSurProjectAttendanceCfg(surProjectAttendanceCfg); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceCfg.setUpdateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceCfg.setUpdateTime(DateUtils.getNowDate()); + return attendanceCfgMapper.updateSurProjectAttendanceCfg(quartzProjectAttendanceCfg); } /** - * 删除考勤配置对象 - * - * @param ids 需要删除的数据ID + * 批量删除项目考勤配置 + * + * @param ids 需要删除的项目考勤配置主键 * @return 结果 */ @Override - public int deleteSurProjectAttendanceCfgByIds(String ids) + public int deleteSurProjectAttendanceCfgByIds(Long[] ids) { - return surProjectAttendanceCfgMapper.deleteSurProjectAttendanceCfgByIds(Convert.toStrArray(ids)); + List cfgIds = new ArrayList<>(); + for(Long id:ids){ + SurProjectAttendanceCfg quartzProjectAttendanceCfg = attendanceCfgMapper.selectSurProjectAttendanceCfgById(id); + } + return attendanceCfgMapper.deleteSurProjectAttendanceCfgByIds(ids); } /** - * 删除考勤配置信息 - * - * @param id 考勤配置ID + * 删除项目考勤配置信息 + * + * @param id 项目考勤配置主键 * @return 结果 */ @Override public int deleteSurProjectAttendanceCfgById(Long id) { - return surProjectAttendanceCfgMapper.deleteSurProjectAttendanceCfgById(id); + SurProjectAttendanceCfg quartzProjectAttendanceCfg = attendanceCfgMapper.selectSurProjectAttendanceCfgById(id); + return attendanceCfgMapper.deleteSurProjectAttendanceCfgById(id); } } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceDataServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceDataServiceImpl.java index ad67932..4cd9f12 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceDataServiceImpl.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceDataServiceImpl.java @@ -1,13 +1,26 @@ package com.yanzhu.xd.system.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.DateUtil; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.yanzhu.xd.system.domain.SurProjectAttendanceCfg; +import com.yanzhu.xd.system.domain.SurProjectAttendanceGroup; +import com.yanzhu.xd.system.domain.SurProjectAttendanceUser; +import com.yanzhu.xd.system.mapper.SurProjectAttendanceCfgMapper; +import com.yanzhu.xd.system.mapper.SurProjectAttendanceGroupMapper; +import com.yanzhu.xd.system.mapper.SurProjectAttendanceUserMapper; +import com.yanzhu.xd.system.utils.SecurityTools; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.xd.system.mapper.SurProjectAttendanceDataMapper; import com.yanzhu.xd.system.domain.SurProjectAttendanceData; import com.yanzhu.xd.system.service.ISurProjectAttendanceDataService; -import com.ruoyi.common.core.text.Convert; /** * 考勤数据Service业务层处理 @@ -19,79 +32,489 @@ import com.ruoyi.common.core.text.Convert; public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanceDataService { @Autowired - private SurProjectAttendanceDataMapper surProjectAttendanceDataMapper; + private SurProjectAttendanceDataMapper attendanceDataMapper; + + @Autowired + private SurProjectAttendanceUserMapper attendanceUserMapper; + + @Autowired + private SurProjectAttendanceGroupMapper attendanceGroupMapper; + + @Autowired + private SurProjectAttendanceCfgMapper attendanceCfgMapper; + /** - * 查询考勤数据 - * - * @param id 考勤数据ID - * @return 考勤数据 + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 */ @Override public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id) { - return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataById(id); + return attendanceDataMapper.selectSurProjectAttendanceDataById(id); } /** - * 查询考勤数据列表 - * - * @param surProjectAttendanceData 考勤数据 - * @return 考勤数据 + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理 */ @Override - public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData) + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData quartzProjectAttendanceData) { - return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(surProjectAttendanceData); + return attendanceDataMapper.selectSurProjectAttendanceDataList(quartzProjectAttendanceData); } /** - * 新增考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + @Override + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData){ + return attendanceDataMapper.findCurrentAttendanceData(quartzProjectAttendanceData); + } + + @Override + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData quartzProjectAttendanceData) + { + return attendanceDataMapper.selectSurProjectAttendanceDataListEx(quartzProjectAttendanceData); + } + + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ @Override - public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) + public int insertSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData) { - surProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); - return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceData.setCreateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); + + return attendanceDataMapper.insertSurProjectAttendanceData(quartzProjectAttendanceData); } /** - * 修改考勤数据 - * - * @param surProjectAttendanceData 考勤数据 + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 * @return 结果 */ @Override - public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) + public int updateSurProjectAttendanceData(SurProjectAttendanceData quartzProjectAttendanceData) { - surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); - return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceData.setUpdateBy(StrUtil.isEmpty(userName)?"task":userName); + + quartzProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); + return attendanceDataMapper.updateSurProjectAttendanceData(quartzProjectAttendanceData); } /** - * 删除考勤数据对象 - * - * @param ids 需要删除的数据ID + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的劳务实名制管理主键 * @return 结果 */ @Override - public int deleteSurProjectAttendanceDataByIds(String ids) + public int deleteSurProjectAttendanceDataByIds(Long[] ids) { - return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByIds(Convert.toStrArray(ids)); + return attendanceDataMapper.deleteSurProjectAttendanceDataByIds(ids); } /** - * 删除考勤数据信息 - * - * @param id 考勤数据ID + * 删除劳务实名制管理信息 + * + * @param id 劳务实名制管理主键 * @return 结果 */ @Override public int deleteSurProjectAttendanceDataById(Long id) { - return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id); + return attendanceDataMapper.deleteSurProjectAttendanceDataById(id); } + + /** + * 批量删除劳务实名制管理 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataByParams(List list) { + return attendanceDataMapper.deleteSurProjectAttendanceDataByParams(list); + } + + /** + * 批量新增劳务实名制考勤管理 + * + * @param quartzProjectAttendanceDataList 劳务实名制考勤管理列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceData(List quartzProjectAttendanceDataList) { + return attendanceDataMapper.batchSurProjectAttendanceData(quartzProjectAttendanceDataList,DateUtils.dateTimeNow(DateUtils.YYYY)); + } + + @Override + public void add(SurProjectAttendanceData sdata) { + if(StringUtils.isEmpty(sdata.getWorkerId()) || StringUtils.isEmpty(sdata.getAttendanceTime())){ + return; + } + SurProjectAttendanceData where=new SurProjectAttendanceData(); + where.setVendorsCode(sdata.getVendorsCode()); + where.setCfgid(sdata.getCfgid()); + where.setWorkerId(sdata.getWorkerId()); + where.setAttendanceTime(sdata.getAttendanceTime()); + List list=selectSurProjectAttendanceDataListEx(where); + if(list.size()==0){ + //设置考勤其它参数 + //查询人员信息 + SurProjectAttendanceUser userWhere=new SurProjectAttendanceUser(); + userWhere.setWorkerId(sdata.getWorkerId()); + List uList= attendanceUserMapper.selectSurProjectAttendanceUserList(userWhere); + if(uList.size()==0){ + return; + } + SurProjectAttendanceUser user=uList.get(0); + sdata.setWorkerName(user.getName()); + String photo=user.getPhoto(); + if(StrUtil.isEmpty(photo)){ + photo=user.getRecentPhoto(); + } + + sdata.setWorkerPhoto(photo); + 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()); + if("jgw".equals(sdata.getVendorsCode())) { + sdata.setCompanyId(user.getCompanyId()); + } + //查询分组信息 + SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup(); + groupWhere.setCfgid(sdata.getCfgid()); + groupWhere.setCompanyId(sdata.getCompanyId()); + List gList= attendanceGroupMapper.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.setWorkerGender(sdata.getWorkerGender()); + sdata.setCompanyTypeId(getHuazhuCompanyTypeId(group.getCompanyName()));//获取华筑的分包商类型 + } + if("jgw".equals(sdata.getVendorsCode())){ + //sdata.setWorkTypeName(group.getCompanyCode()); + //sdata.setCompanyName(user.getCompanyName()); + sdata.setWorkTypeName(user.getWorkTypeName()); + sdata.setCompanyName(group.getCompanyName()); + sdata.setGroupName(group.getTeamName()); + } + //查询项目部门信息 + SurProjectAttendanceCfg cfgWhere=new SurProjectAttendanceCfg(); + cfgWhere.setId(sdata.getCfgid()); + List cfgList= attendanceCfgMapper.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()); + if(sdata.getCompanyTypeId()==null){ + sdata.setCompanyTypeId("0"); + } + insertSurProjectAttendanceData(sdata); + }else{ + sdata.setId(list.get(0).getId()); + SurProjectAttendanceData upData=list.get(0); + String dt1=upData.getAttendanceTime(); // + String dt2=upData.getAttendanceOutTime(); + String dt3=sdata.getAttendanceTime(); + if (StrUtil.isEmpty(dt3)) { + return; + } + long time3=DateUtil.parse(dt3).getTime(); + if(StrUtil.isEmpty(dt2)){ + upData.setAttendanceOutTime(dt3); + //比较 dt1,dt2 进行交换 + long time2=DateUtil.parse(dt3).getTime(); + long time1=DateUtil.parse(dt1).getTime(); + if(time1>time2){ + upData.setAttendanceTime(dt3); + upData.setAttendanceOutTime(dt1); + } + }else{ + long time2=DateUtil.parse(dt2).getTime(); + long time1=DateUtil.parse(dt1).getTime(); + //比较 dt3dt3 + if(time3dt2 out->dt3 + if(time3>time2){ + upData.setAttendanceOutTime(dt3); + } + } + //upData.setAttendanceOutTime(sdata.getAttendanceTime()); + if("jgw".equals(upData.getVendorsCode())){ + upData.setRemark(sdata.getRemark()); + } + updateSurProjectAttendanceData(upData); + } + } + + private String getHuazhuCompanyTypeId(String groupName) { + return attendanceDataMapper.findHuaZhuCompanyType(groupName); + } + + @Override + public String getLastServerId(SurProjectAttendanceData where) { + return ""+ attendanceDataMapper.getLastServerId(where); + } + + @Override + public List groupByComany(SurProjectAttendanceData where) { + return attendanceDataMapper.groupByComany(where); + } + + @Override + public Long getHuazhuPage( SurProjectAttendanceData attWhere) { + return attendanceDataMapper.getHuazhuPage(attWhere); + } + + @Override + public List groupAllByComany(SurProjectAttendanceData where) { + return attendanceDataMapper.groupAllByComany(where); + } + + @Override + public List> initOtherData(Map data) { + List> dataList = new ArrayList<>(); + List> list = attendanceDataMapper.initOtherData(data); + if(StringUtils.isNotEmpty(list)){ + List workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList()); + data.put("list",workerIds); + List datas= attendanceUserMapper.todayAttendanceOtherData(data); + for (Map map:list) { + for(SurProjectAttendanceUser sau:datas){ + if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ + map.put("inTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getInTime())); + map.put("outTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getOutTime())); + dataList.add(map); + } + } + } + } + return dataList; + } + + @Override + public List> initHuaZhuData(Map data) { + List> dataList = new ArrayList<>(); + List> list = attendanceDataMapper.initHuaZhuData(data); + if(StringUtils.isNotEmpty(list)){ + List workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList()); + data.put("list",workerIds); + List datas= attendanceUserMapper.todayAttendanceOtherData(data); + for (Map map:list) { + for(SurProjectAttendanceUser sau:datas){ + if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ + map.put("inTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getInTime())); + map.put("outTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getOutTime())); + dataList.add(map); + } + } + } + } + return dataList; + } + + @Override + public List todayAttendance(SurProjectAttendanceData where) { + return attendanceDataMapper.todayAttendance(where); + } + + /** + * 统计所有数据 + * @param where + * @return + */ + @Override + public List> groupAllByParams(SurProjectAttendanceData where) { + return attendanceDataMapper.findGroupAllByParams(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + @Override + public List> findGroupAllByDays(SurProjectAttendanceData where){ + return attendanceDataMapper.findGroupAllByDays(where); + } + + /** + * 统计考勤数据 + * @param where + * @return + */ + @Override + public List> groupDataByParams(SurProjectAttendanceData where){ + return attendanceDataMapper.groupDataByParams(where); + } + + /** + * 考勤数据列表 + * @param where + * @return + */ + @Override + public List attendanceDataList(SurProjectAttendanceData where) { + return attendanceDataMapper.attendanceDataList(where); + } + + @Override + public List groupTodayCompanyTypeId(SurProjectAttendanceData where) { + return attendanceDataMapper.groupTodayCompanyTypeId(where); + } + + /** + * 批量增加 + * @param addList + */ + @Override + public void addList(List addList) { + if(addList.size()==0){ + return; + } + SurProjectAttendanceData where=new SurProjectAttendanceData(); + where.setVendorsCode(addList.get(0).getVendorsCode()); + where.setCfgid(addList.get(0).getCfgid()); + where.setAttendanceTime(addList.get(0).getAttendanceTime()); + List oldList=selectSurProjectAttendanceDataListEx(where); + for(SurProjectAttendanceData sdata:addList){ + List list=oldList.stream().filter(d->d.getWorkerId().equals(sdata.getWorkerId())).collect(Collectors.toList()); + if(list.size()==0){ + //设置考勤其它参数 + //查询人员信息 + SurProjectAttendanceUser userWhere=new SurProjectAttendanceUser(); + userWhere.setWorkerId(sdata.getWorkerId()); + List uList= attendanceUserMapper.selectSurProjectAttendanceUserList(userWhere); + if(uList.size()==0){ + return; + } + SurProjectAttendanceUser user=uList.get(0); + sdata.setWorkerName(user.getName()); + String photo=user.getPhoto(); + if(StrUtil.isEmpty(photo)){ + photo=user.getRecentPhoto(); + } + + sdata.setWorkerPhoto(photo); + 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()); + if("jgw".equals(sdata.getVendorsCode())) { + sdata.setCompanyId(user.getCompanyId()); + } + //查询分组信息 + SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup(); + groupWhere.setCfgid(sdata.getCfgid()); + groupWhere.setCompanyId(sdata.getCompanyId()); + List gList= attendanceGroupMapper.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.setWorkerGender(sdata.getWorkerGender()); + sdata.setCompanyTypeId(getHuazhuCompanyTypeId(group.getCompanyName()));//获取华筑的分包商类型 + } + if("jgw".equals(sdata.getVendorsCode())){ + //sdata.setWorkTypeName(group.getCompanyCode()); + //sdata.setCompanyName(user.getCompanyName()); + sdata.setWorkTypeName(user.getWorkTypeName()); + sdata.setCompanyName(group.getCompanyName()); + sdata.setGroupName(group.getTeamName()); + } + //查询项目部门信息 + SurProjectAttendanceCfg cfgWhere=new SurProjectAttendanceCfg(); + cfgWhere.setId(sdata.getCfgid()); + List cfgList= attendanceCfgMapper.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()); + if(sdata.getCompanyTypeId()==null){ + sdata.setCompanyTypeId("0"); + } + insertSurProjectAttendanceData(sdata); + }else{ + sdata.setId(list.get(0).getId()); + SurProjectAttendanceData upData=list.get(0); + String dt1=upData.getAttendanceTime(); // + String dt2=upData.getAttendanceOutTime(); + String dt3=sdata.getAttendanceTime(); + if (StrUtil.isEmpty(dt3)) { + return; + } + long time3=DateUtil.parse(dt3).getTime(); + if(StrUtil.isEmpty(dt2)){ + upData.setAttendanceOutTime(dt3); + //比较 dt1,dt2 进行交换 + long time2=DateUtil.parse(dt3).getTime(); + long time1=DateUtil.parse(dt1).getTime(); + if(time1>time2){ + upData.setAttendanceTime(dt3); + upData.setAttendanceOutTime(dt1); + } + }else{ + long time2=DateUtil.parse(dt2).getTime(); + long time1=DateUtil.parse(dt1).getTime(); + //比较 dt3dt3 + if(time3dt2 out->dt3 + if(time3>time2){ + upData.setAttendanceOutTime(dt3); + } + } + //upData.setAttendanceOutTime(sdata.getAttendanceTime()); + if("jgw".equals(upData.getVendorsCode())){ + upData.setRemark(sdata.getRemark()); + } + updateSurProjectAttendanceData(upData); + } + } + } + } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceGroupServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceGroupServiceImpl.java index 1e24546..d49d52e 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceGroupServiceImpl.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceGroupServiceImpl.java @@ -1,7 +1,10 @@ package com.yanzhu.xd.system.service.impl; import java.util.List; + +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.utils.DateUtils; +import com.yanzhu.xd.system.utils.SecurityTools; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.xd.system.mapper.SurProjectAttendanceGroupMapper; @@ -19,79 +22,144 @@ import com.ruoyi.common.core.text.Convert; public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendanceGroupService { @Autowired - private SurProjectAttendanceGroupMapper surProjectAttendanceGroupMapper; + private SurProjectAttendanceGroupMapper attendanceGroupMapper; /** - * 查询班组信息 - * - * @param id 班组信息ID - * @return 班组信息 + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 */ @Override public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id) { - return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupById(id); + return attendanceGroupMapper.selectSurProjectAttendanceGroupById(id); } /** - * 查询班组信息列表 - * - * @param surProjectAttendanceGroup 班组信息 - * @return 班组信息 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息 */ @Override - public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup) + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup quartzProjectAttendanceGroup) { - return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup); + return attendanceGroupMapper.selectSurProjectAttendanceGroupViewList(quartzProjectAttendanceGroup); } /** - * 新增班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup quartzProjectAttendanceGroup) { + return attendanceGroupMapper.selectSurProjectAttendanceGroupList(quartzProjectAttendanceGroup); + } + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ @Override - public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup) { - surProjectAttendanceGroup.setCreateTime(DateUtils.getNowDate()); - return surProjectAttendanceGroupMapper.insertSurProjectAttendanceGroup(surProjectAttendanceGroup); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceGroup.setCreateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceGroup.setCreateTime(DateUtils.getNowDate()); + return attendanceGroupMapper.insertSurProjectAttendanceGroup(quartzProjectAttendanceGroup); } /** - * 修改班组信息 - * - * @param surProjectAttendanceGroup 班组信息 + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 * @return 结果 */ @Override - public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup quartzProjectAttendanceGroup) { - surProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate()); - return surProjectAttendanceGroupMapper.updateSurProjectAttendanceGroup(surProjectAttendanceGroup); + String userName= SecurityTools.getUsername(); + quartzProjectAttendanceGroup.setUpdateBy(StrUtil.isEmpty(userName)?"task":userName); + + quartzProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate()); + return attendanceGroupMapper.updateSurProjectAttendanceGroup(quartzProjectAttendanceGroup); } /** - * 删除班组信息对象 - * - * @param ids 需要删除的数据ID + * 批量删除广联达班组信息 + * + * @param ids 需要删除的广联达班组信息主键 * @return 结果 */ @Override - public int deleteSurProjectAttendanceGroupByIds(String ids) + public int deleteSurProjectAttendanceGroupByIds(Long[] ids) { - return surProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupByIds(Convert.toStrArray(ids)); + return attendanceGroupMapper.deleteSurProjectAttendanceGroupByIds(ids); } /** - * 删除班组信息信息 - * - * @param id 班组信息ID + * 删除广联达班组信息信息 + * + * @param id 广联达班组信息主键 * @return 结果 */ @Override public int deleteSurProjectAttendanceGroupById(Long id) { - return surProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupById(id); + return attendanceGroupMapper.deleteSurProjectAttendanceGroupById(id); + } + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupByParams(List list) { + return attendanceGroupMapper.deleteSurProjectAttendanceGroupByParams(list); + } + + /** + * 批量新增广联达班组信息 + * + * @param quartzProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceGroup(List quartzProjectAttendanceGroupList) { + return attendanceGroupMapper.batchSurProjectAttendanceGroup(quartzProjectAttendanceGroupList); + } + + @Override + public void add(SurProjectAttendanceGroup group) { + SurProjectAttendanceGroup where=new SurProjectAttendanceGroup(); + where.setServerid(group.getServerid()); + where.setCfgid(group.getCfgid()); + List list=selectSurProjectAttendanceGroupList(where); + if(list.size()==0){ + insertSurProjectAttendanceGroup(group); + }else{ + group.setId(list.get(0).getId()); + updateSurProjectAttendanceGroup(group); + } + } + + /** + * 更新济工网的分组类型 + * @param group + */ + @Override + public void updateJgw(SurProjectAttendanceGroup group) { + SurProjectAttendanceGroup where=new SurProjectAttendanceGroup(); + where.setBizLicense(group.getBizLicense()); + List list=selectSurProjectAttendanceGroupList(where); + for(SurProjectAttendanceGroup g:list){ + g.setCompanyTypeId(group.getCompanyTypeId()); + updateSurProjectAttendanceGroup(g); + } } } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceUserServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceUserServiceImpl.java index 74d4a9c..43be9bd 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceUserServiceImpl.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SurProjectAttendanceUserServiceImpl.java @@ -1,7 +1,12 @@ package com.yanzhu.xd.system.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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.xd.system.mapper.SurProjectAttendanceUserMapper; @@ -19,79 +24,291 @@ import com.ruoyi.common.core.text.Convert; public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanceUserService { @Autowired - private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper; + private SurProjectAttendanceUserMapper attendanceUserMapper; /** - * 查询实名制人员 - * - * @param id 实名制人员ID - * @return 实名制人员 + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 */ @Override public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id) { - return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id); + return attendanceUserMapper.selectSurProjectAttendanceUserById(id); } /** - * 查询实名制人员列表 - * - * @param surProjectAttendanceUser 实名制人员 - * @return 实名制人员 + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 */ @Override - public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser) - { - return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(surProjectAttendanceUser); + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser) { + return attendanceUserMapper.findCurrentAttendanceUser(quartzProjectAttendanceUser); } /** - * 新增实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser){ + return attendanceUserMapper.findYzCurrentAttendanceUser(quartzProjectAttendanceUser); + } + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性 + */ + @Override + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser) + { + return attendanceUserMapper.selectSurProjectAttendanceUserList(quartzProjectAttendanceUser); + } + + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ @Override - public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser) { - surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); - return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser); + if(StringUtils.isEmpty(quartzProjectAttendanceUser.getCreateBy())){ + quartzProjectAttendanceUser.setCreateBy("task"); + quartzProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); + } + return attendanceUserMapper.insertSurProjectAttendanceUser(quartzProjectAttendanceUser); } /** - * 修改实名制人员 - * - * @param surProjectAttendanceUser 实名制人员 + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 * @return 结果 */ @Override - public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser quartzProjectAttendanceUser) { - surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); - return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser); + if(StringUtils.isEmpty(quartzProjectAttendanceUser.getCreateBy())){ + quartzProjectAttendanceUser.setUpdateBy("task"); + } + quartzProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); + return attendanceUserMapper.updateSurProjectAttendanceUser(quartzProjectAttendanceUser); } /** - * 删除实名制人员对象 - * - * @param ids 需要删除的数据ID + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的考勤人员基本属性主键 * @return 结果 */ @Override - public int deleteSurProjectAttendanceUserByIds(String ids) + public int deleteSurProjectAttendanceUserByIds(Long[] ids) { - return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByIds(Convert.toStrArray(ids)); + return attendanceUserMapper.deleteSurProjectAttendanceUserByIds(ids); } /** - * 删除实名制人员信息 - * - * @param id 实名制人员ID + * 删除考勤人员基本属性信息 + * + * @param id 考勤人员基本属性主键 * @return 结果 */ @Override public int deleteSurProjectAttendanceUserById(Long id) { - return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id); + return attendanceUserMapper.deleteSurProjectAttendanceUserById(id); } + + /** + * 批量删除考勤人员基本属性 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserByParams(List list) { + return attendanceUserMapper.deleteSurProjectAttendanceUserByParams(list); + } + + /** + * 批量新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceUser(List quartzProjectAttendanceUserList) { + return attendanceUserMapper.batchSurProjectAttendanceUser(quartzProjectAttendanceUserList); + } + + @Override + public void add(SurProjectAttendanceUser user) { + SurProjectAttendanceUser where=new SurProjectAttendanceUser(); + where.setWorkerId(user.getWorkerId()); + where.setCfgid(user.getCfgid()); + List list=selectSurProjectAttendanceUserList(where); + if(list.size()==0){ + insertSurProjectAttendanceUser(user); + }else{ + SurProjectAttendanceUser old=list.get(0); + if(user.getVendorsCode().equals("jgw")){ + user.setCompanyId(old.getCompanyId()); + String oldNav=old.getNativePlace(); + String newNav=user.getNativePlace(); + if(oldNav==null || !oldNav.equals(newNav)){ + old.setNativePlace(newNav); + } + } + user.setId(old.getId()); + updateSurProjectAttendanceUser(user); + } + } + + @Override + public List queryAttendanceData(SurProjectAttendanceUser where) { + List list= attendanceUserMapper.queryAttendanceUsers(where); + List workerIds=new ArrayList<>(); + for(SurProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + where.setWorkerIds(workerIds); + List datas= attendanceUserMapper.todayAttendanceData(workerIds); + for (SurProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countTodayAttendance(SurProjectAttendanceUser where) { + return attendanceUserMapper.countTodayAttendance(where); + } + + @Override + public List todayAttendance(SurProjectAttendanceUser where) { + if(where.getIndex()<1){ + where.setIndex(1); + } + where.setIndex((where.getIndex()-1)* where.getSize()); + List list= attendanceUserMapper.todayAttendance(where); + List workerIds=new ArrayList<>(); + for(SurProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + List datas= attendanceUserMapper.todayAttendanceData(workerIds); + for (SurProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countAttendance(SurProjectAttendanceUser user) { + SurProjectAttendanceUser where=new SurProjectAttendanceUser(); + where.setCreateBy(user.getCreateBy()); + where.setSubDeptId(user.getSubDeptId()); + where.setProjectId(user.getProjectId()); + return attendanceUserMapper.countAttendance(where); + } + + @Override + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser quartzProjectAttendanceUser) { + return attendanceUserMapper.selectSurProjectAttendanceUserListJgw(quartzProjectAttendanceUser); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerOnDuty(SurProjectAttendanceUser where) { + return attendanceUserMapper.queryWorkerOnDuty(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where){ + return attendanceUserMapper.groupUserByParams(where); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List attendanceUserList(SurProjectAttendanceUser where){ + return attendanceUserMapper.attendanceUserList(where); + } + + /** + * 统计人员数据 + * @param projectId + * @return + */ + @Override + public List> findUserAllByDays(Long projectId){ + return attendanceUserMapper.findUserAllByDays(projectId); + } + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where) { + return attendanceUserMapper.groupByWorkerOnDutyByDept(where); + } + + @Override + public List querySurProjectAttendanceUserList(SurProjectAttendanceUser quartzProjectAttendanceUser) { + return attendanceUserMapper.querySurProjectAttendanceUserList(quartzProjectAttendanceUser); + } + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerByDept(SurProjectAttendanceUser where) { + return attendanceUserMapper.groupByWorkerByDept(where); + } + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerByState(SurProjectAttendanceUser where) { + return attendanceUserMapper.queryWorkerByState(where); + } + + private Date findDate(List datas, SurProjectAttendanceUser u, String type) { + for (SurProjectAttendanceUser user:datas) { + if(user.getWorkerId().equals(u.getWorkerId()) && user.getName().equals(type)){ + if(type.equals("L")){ + return user.getOutTime(); + }else{ + return user.getInTime(); + } + } + } + return null; + } + } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java index e3f049d..7ac9ed8 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java @@ -91,4 +91,9 @@ public class SysNativeServiceImpl implements ISysNativeService { return sysNativeMapper.deleteSysNativeById(id); } + + @Override + public List selectSysNativeListById(long id) { + return sysNativeMapper.selectSysNativeListById(id); + } } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java index e4fc3fe..5f0c9c6 100644 --- a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java @@ -1,12 +1,36 @@ package com.yanzhu.xd.system.task; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.common.utils.security.Md5Utils; +import com.yanzhu.xd.system.domain.*; import com.yanzhu.xd.system.service.*; +import okhttp3.*; +import org.apache.logging.log4j.util.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.io.File; +import java.util.*; +import java.util.concurrent.TimeUnit; + @Component("attendanceJgwTask") public class AttendanceJgwTask { + //@Autowired + //private RedisCache redisCache; + @Autowired private ISysNativeService sysNativeService; @@ -22,4 +46,1158 @@ public class AttendanceJgwTask { @Autowired ISurProjectAttendanceGroupService attendanceGroupService; + private String getNative(long id){ + String ckey="attendance_jgw_native_"+id; + Object obj=null;//redisCache.getCacheObject(ckey); + String tmp=""; + if(obj!=null){ + tmp=obj.toString(); + if(StrUtil.isNotEmpty(tmp)){ + return tmp; + } + } + List list=sysNativeService.selectSysNativeListById(id); + if(list.size()==0){ + id=id/100*100; + list=sysNativeService.selectSysNativeListById(id); + if(list.size()==0){ + id=id/10000*10000; + list=sysNativeService.selectSysNativeListById(id); + } + } + if(list.size()==0){ + tmp=""; + }else{ + tmp= list.get(0).getAddress(); + } + //redisCache.setCacheObject(ckey, tmp, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.DAYS); + return tmp; + } + private String getWorkTypeName(String appid,String token,String type,String key){ + String ckey="attendance_jgw_work_type_"+type; + Object obj=null;//redisCache.getCacheObject(ckey); + HashMap map=null; + if(obj==null){ + map=getJobTypeData(appid,token,type); + if(map!=null){ + //redisCache.setCacheObject(ckey, map, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.DAYS); + }else{ + return "未知"; + } + }else{ + map=(HashMap)obj; + } + if(map.containsKey(key)){ + return map.get(key); + } + return "未知"; + } + static String host="http://api.gongyoumishu.com:80/gomeetapi/"; + + + //sign/photo/20240101/E24E76-C9A5CB-0000FF/1741751233297383424_8848.JPG + public static String getToken(String appid,String secret){ + String grantType="client_credential"; + String path="/webapi/credential"; + Map params = new HashMap<>(); + params.put("appId",appid); + params.put("secret",secret); + params.put("grantType",grantType); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject jo= JSON.parseObject(data); + JSONObject joData= jo.getJSONObject("data"); + if(joData!=null){ + return joData.getString("token"); + + } + return null; + } + private static RequestBody toFormBody(Map params ){ + FormBody.Builder builder=new FormBody.Builder(); + for(String key :params.keySet()){ + builder.add(key,params.get(key).toString()); + } + return builder.build(); + } + public void clearAlllPhoto(){ + String filePath= RuoYiConfig.getUploadPath(); + String path=filePath+"/jgw"; + long endTime=DateUtil.current(); + for(int i=365;i>=0;i--) { + Date dt = DateUtil.date(endTime - 3600l * 1000 * 24 * i); + String clearPath=path +"/" + DateUtil.format(dt, "YYYY/MM/dd"); + String url="/jgw/"+DateUtil.format(dt, "YYYY/MM/dd"); + clearDatePhone(clearPath,url); + } + } + public void clear3DayPhoto(){ + String filePath= RuoYiConfig.getUploadPath(); + String path=filePath+"/jgw"; + long endTime=DateUtil.current(); + for(int i=3;i>=0;i--) { + Date dt = DateUtil.date(endTime - 3600l * 1000 * 24 * i); + String clearPath=path +"/" + DateUtil.format(dt, "YYYY/MM/dd"); + String url="/jgw/"+DateUtil.format(dt, "YYYY/MM/dd"); + clearDatePhone(clearPath,url); + } + } + + public void clearToDayPhoto(){ + String filePath= RuoYiConfig.getUploadPath(); + String path=filePath+"/jgw"; + long endTime=DateUtil.current(); + Date dt = new Date(); + String clearPath=path +"/" + DateUtil.format(dt, "YYYY/MM/dd"); + String url="/jgw/"+DateUtil.format(dt, "YYYY/MM/dd"); + clearDatePhone(clearPath,url); + + } + private void clearDatePhone(String path,String url){ + File file=new File(path); + if(file.isDirectory()){ + SurProjectAttendanceData where=new SurProjectAttendanceData(); + where.setScanPhoto(url); + List list=attendanceDataService.selectSurProjectAttendanceDataList(where); + List names=new ArrayList<>(); + for(SurProjectAttendanceData it:list){ + names.add(it.getScanPhoto()); + } + for(String f : file.list()){ + try{ + String name= FileUtils.getName(f); + if(!findInNames(names,name)){ + FileUtil.del(path+"/"+f); + } + }catch (Exception ex){ + } + + } + } + } + + private boolean findInNames(List names, String name) { + for(String it :names){ + if(it.indexOf(name)>=0){ + return true; + } + } + return false; + } + + 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=="; + //String prjId="db955e11ef774e63968a47c3dc2acc15";//"b67f1baa6dca4558a16bf90a4681b82e";// + //String prjId="cace2f676371427e8f6da20d2924f64e";//泾河新城荟锦坊二期 + String prjId="209aa0c01d8248b6a56a0921d1b88c83";//泾河新城锦樾坊项目 + String phone="15619028761"; + String token= getToken(appid,secret); + if(token==null || token.length()==0){ + return; + } + System.out.println(token); + System.out.println(DateUtil.format(DateTime.now(),"yyyy-MM-dd")); + String subcontractorId=new AttendanceJgwTask().getSubcontractor(appid,token,phone); + String leaderTeamId="b3774a8cd04c418dabf36bffbf276661"; + System.out.println(subcontractorId); + + + //findWorkerByLeader(appid,token,leaderTeamId); + findDirectlyUnderTeam(appid,token,prjId,subcontractorId,0); + //queryProject(appid,token,phone,0);; + //findAddWorkerByProject(appid,token,prjId,0); + //findUpdateWorkerByProject(appid,token,prjId,0); + //findAttendanceByProject(appid,token,prjId,"0"); + //findTeamByProjectId(appid,token,prjId); + //findProContractorByProjectId(appid,token,prjId); + //getJobTypeData(appid,token,"0"); + //findDirectlyUnderTeam(appid,token,prjId); + } + public static void findDirectlyUnderTeam(String appId,String token,String projectId,String subcontractorId,int rowId){ + String path="/webapi/project/findDirectlyUnderTeam"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + System.out.println(url); + String tokenSign = Md5Utils.hash(url); + System.out.println(tokenSign); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("subcontractorId",subcontractorId); + params.put("rowId",rowId); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + System.out.println(data); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("teamList"); + if(arr.size()>0){ + for(int i=0;i"+jo.getString("teamName")); + } + + } + } + public static void queryProject(String appId,String token,String phone,int rowId){ + + String path="/webapi/project/queryProject"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + System.out.println(url); + String tokenSign = Md5Utils.hash(url); + System.out.println(tokenSign); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("account",phone); + params.put("rowId",rowId); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + System.out.println(data); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("projectList"); + if(arr.size()>0){ + JSONObject jo=arr.getJSONObject(0); + + } + } + public String getSubcontractor(String appId,String token,String phone){ + String ckey = "attendance_jgw_Subcontractor_" + phone; + /* + if(redisCache!=null) { + Object obj = redisCache.getCacheObject(ckey); + if(obj!=null){ + String str=(String)obj; + if(StrUtil.isNotEmpty(str)){ + return str; + } + } + }*/ + + String path="/webapi/project/querySubcontractorByPhone"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + System.out.println(url); + String tokenSign = Md5Utils.hash(url); + System.out.println(tokenSign); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("phone",phone); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + System.out.println(data); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("subcontractorList"); + if(arr.size()>0){ + JSONObject jo=arr.getJSONObject(0); + String tmp=jo.getString("subcontractorId"); + /* + if(StrUtil.isNotEmpty(tmp) && redisCache!=null){ + redisCache.setCacheObject(ckey, tmp, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.DAYS); + return tmp; + }else{ + return tmp; + }*/ + return tmp; + } + return ""; + } + public static HashMap getJobTypeData(String appId,String token,String type){ + String path="/webapi/dictInfo/getJobTypeData"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + System.out.println(url); + String tokenSign = Md5Utils.hash(url); + System.out.println(tokenSign); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("type",type); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + System.out.println(data); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("jobTypes"); + HashMap map=new HashMap<>(); + for(int i=0;i0){ + for(int i=0;i"+sdata.getRemark()); + } + //sdata.setScanPhoto(photoUrl); + } + findAttendanceByProject(appId,token,projectId,endId); + } + + } + + private static String getPhoto(String appId,String token, String photo) { + String path="/webapi/dictInfo/getPhoyoAllPaths"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + String tokenSign = Md5Utils.hash(url); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("filePath",photo); + + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + String purl=joData.getString("result"); + try { + byte[] buffer= HttpUtil.downloadBytes(purl); + String filePath= RuoYiConfig.getUploadPath(); + String name=FileUtil.getName(photo); + return FileUtils.writeBytes(buffer, filePath+"/jgw",name); + }catch (Exception ex){ + return ""; + } + } + + + + + public static void findWorkerByLeader(String appId,String token,String leaderTeamId){ + String path="/webapi/project/findWorkerByLeader"; + String time = System.currentTimeMillis() + ""; + String startId="0"; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("leaderTeamId",leaderTeamId); + url=host+path; + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("recordList"); + for(int i=0;i0){ + for(int i=0;i"+json.getString("teamName")); + } + } + } + public static void findTeamByProjectId(String appId,String token,String projectId){ + String path="webapi/project/findTeamByProjectId"; + String time = System.currentTimeMillis() + ""; + String startId="0"; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("rowId",startId); + url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId; + Request request = new Request.Builder() + .url(url) + .get() + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + JSONArray arr=joData.getJSONArray("teamList"); + if(arr.size()>0){ + for(int i=0;i params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("phone",phone); + url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&phone="+phone+"×tamp="+time; + Request request = new Request.Builder() + .url(url) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + JSONArray arr=joData.getJSONArray("teamList"); + if(arr.size()>0){ + for(int i=0;i0){ + for(int i=0;i0) { + int cnt=0; + for(int i=0;i0) { + int cnt=0; + for(int i=0;i list=attendanceCfgService.selectSurProjectAttendanceCfgList(where); + for(SurProjectAttendanceCfg it :list){ + String param= it.getVendorsParameter(); + if(Strings.isNotEmpty(param)){ + try{ + JSONObject jo=JSON.parseObject(param); + String appId=jo.getString("appId"); + String secret=jo.getString("secret"); + secret=Base64.encode(secret); + jo.put("secret",secret); + String token= getToken(appId,secret); + jo.put("token",token); + doSyncWorker(jo,0l,it); + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + syncWorkerByLeader(); + } + + /** + * 同步群组和人的关系 + */ + public void syncWorkerByLeader(){ + SurProjectAttendanceCfg where =new SurProjectAttendanceCfg(); + where.setEnabled(1l); + where.setIsDel(0l); + where.setVendorsCode("jgw"); + List list=attendanceCfgService.selectSurProjectAttendanceCfgList(where); + for(SurProjectAttendanceCfg it :list){ + String param= it.getVendorsParameter(); + if(Strings.isNotEmpty(param)){ + try{ + JSONObject jo=JSON.parseObject(param); + String appId=jo.getString("appId"); + String secret=jo.getString("secret"); + secret=Base64.encode(secret); + jo.put("secret",secret); + String token= getToken(appId,secret); + jo.put("token",token); + SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup(); + groupWhere.setCfgid(it.getId()); + groupWhere.setLeaderPhone("directly"); + List groupList=attendanceGroupService.selectSurProjectAttendanceGroupList(groupWhere); + for(SurProjectAttendanceGroup g:groupList) { + if(StrUtil.isNotEmpty(g.getLeaderName()) && StrUtil.isNotEmpty(g.getCompanyId())) { + jo.put("subcontractorId", g.getLeaderName()); + jo.put("leaderTeamId", g.getCompanyId()); + jo.put("companyName", g.getCompanyName()); + dosyncWorkerByLeader(jo, 0l, it); + } + } + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + } + + private void dosyncWorkerByLeader(JSONObject jo, long startId, SurProjectAttendanceCfg it){ + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String path="/webapi/project/findWorkerByLeader"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + String leaderTeamId=jo.getString("leaderTeamId"); + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("leaderTeamId",leaderTeamId); + params.put("subcontractorId",jo.getString("subcontractorId")); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject jd=j.getJSONObject("data"); + JSONArray arr=jd.getJSONArray("recordList"); + if(arr!=null && arr.size()>0){ + for(int i=0;i userList=attendanceUserService.selectSurProjectAttendanceUserList(userWhere); + if(userList.size()>0){ + SurProjectAttendanceUser upUser=userList.get(0); + upUser.setCompanyId(json.getString("leaderTeamId")); + upUser.setWorkTypeName(json.getString("jobType")); + upUser.setCompanyName(jo.getString("companyName")); + attendanceUserService.updateSurProjectAttendanceUser(upUser); + } + } + } + } + private void doSyncWorker(JSONObject jo, long startId, SurProjectAttendanceCfg it) { + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String projectId=jo.getString("projectId"); + String path="/webapi/project/findAddWorkerByProject"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("startId",startId); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + long endId= joData.getLong("endId"); + JSONArray arr=joData.getJSONArray("workerList"); + if(arr.size()>0) { + for(int i=0;i6){ + try { + long idStr = Long.parseLong(idNumber.substring(0, 6)); + String natstr=getNative(idStr); + if(StrUtil.isNotEmpty(natstr)){ + user.setNativePlace(natstr); + } + }catch (Exception ex){ + + } + } + attendanceUserService.add(user); + } + doSyncWorker(jo,endId,it); + } + } + + /** + * 同步群组信息 + */ + public void syncGroup(){ + SurProjectAttendanceCfg where =new SurProjectAttendanceCfg(); + where.setEnabled(1l); + where.setIsDel(0l); + where.setVendorsCode("jgw"); + List list=attendanceCfgService.selectSurProjectAttendanceCfgList(where); + for(SurProjectAttendanceCfg it :list){ + String param= it.getVendorsParameter(); + if(Strings.isNotEmpty(param)){ + try{ + JSONObject jo=JSON.parseObject(param); + String appId=jo.getString("appId"); + String secret=jo.getString("secret"); + secret=Base64.encode(secret); + jo.put("secret",secret); + String token= getToken(appId,secret); + jo.put("token",token); + //doSyncGroup(jo,0l,it); + doSyncDirectlyUnderGroup(jo,0l,it); + doSyncProContractor(jo,0l,it); + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + } + + /** + * 查询参建单位 + * @param jo + * @param startId + * @param it + */ + private void doSyncProContractor(JSONObject jo, long startId, SurProjectAttendanceCfg it) { + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String projectId=jo.getString("projectId"); + String path="/webapi/project/findProContractorByProjectId"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("rowId",startId); + url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId; + Request request = new Request.Builder() + .url(url) + .get() + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + JSONArray arr=joData.getJSONArray("proContractorList"); + if(arr.size()>0){ + long rowId=0; + for(int i=0;i0){ + doSyncProContractor(jo,rowId+1,it); + } + } + } + + /** + * 查询班组直隶 + * @param jo + * @param startId + * @param it + */ + private void doSyncDirectlyUnderGroup(JSONObject jo, long startId, SurProjectAttendanceCfg it) { + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String projectId=jo.getString("projectId"); + String phone=jo.getString("phone"); + String subcontractorId=getSubcontractor(appId,token,phone); + String path="/webapi/project/findDirectlyUnderTeam"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("subcontractorId",subcontractorId); + params.put("rowId",startId); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + JSONArray arr=joData.getJSONArray("teamList"); + if(arr.size()>0){ + long rowId=0; + for(int i=0;i list=attendanceGroupService.selectSurProjectAttendanceGroupList(where); + if(list.size()==0){ + attendanceGroupService.add(group); + }else{ + group.setId(list.get(0).getId()); + attendanceGroupService.updateSurProjectAttendanceGroup(group); + } + } + if(rowId>0){ + doSyncDirectlyUnderGroup(jo,rowId+1,it); + } + } + } + + /** + * 查询班组 + * @param jo + * @param startId + * @param it + */ + private void doSyncGroup(JSONObject jo, long startId, SurProjectAttendanceCfg it) { + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String projectId=jo.getString("projectId"); + String path="/webapi/project/findTeamByProjectId"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("rowId",startId); + url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId; + Request request = new Request.Builder() + .url(url) + .get() + .build(); + String data=AttendanceTask.getResult(request); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + JSONArray arr=joData.getJSONArray("teamList"); + if(arr.size()>0){ + long rowId=0; + for(int i=0;i list=attendanceGroupService.selectSurProjectAttendanceGroupList(where); + if(list.size()==0){ + attendanceGroupService.add(group); + } + } + if(rowId>0){ + doSyncGroup(jo,rowId+1,it); + } + } + } + + /** + * 同步当天数据 + */ + public void syncAttendanceData(){ + String dtStart=DateUtil.format(DateTime.now(),"yyyy-MM-dd"); + String dtEnd=dtStart; + syncAttendanceData(dtStart,dtEnd); + clearToDayPhoto(); + } + + /** + * 同步7天之内数据 + */ + public void syncLastWeekAttendanceData(){ + String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd"); + String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-7),"yyyy-MM-dd"); + syncAttendanceData(dtStart,dtEnd); + } + + /** + * 同步30天内数据 + */ + public void syncLast30DayAttendanceData(){ + String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd"); + String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-300),"yyyy-MM-dd"); + syncAttendanceData(dtStart,dtEnd); + } + + public void syncLast202406to202410DayAttendanceData(){ + //String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd"); + //String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-300),"yyyy-MM-dd"); + String dtStart="2024-06-01"; + String dtEnd="2024-07-01"; + syncAttendanceData(dtStart,dtEnd); + dtStart="2024-07-01"; + dtEnd="2024-08-01"; + syncAttendanceData(dtStart,dtEnd); + dtStart="2024-08-01"; + dtEnd="2024-09-01"; + syncAttendanceData(dtStart,dtEnd); + dtStart="2024-09-01"; + dtEnd="2024-10-01"; + syncAttendanceData(dtStart,dtEnd); + dtStart="2024-10-01"; + dtEnd="2024-11-01"; + syncAttendanceData(dtStart,dtEnd); + } + + + private void syncAttendanceData(String dtStart,String dtEnd){ + SurProjectAttendanceCfg where =new SurProjectAttendanceCfg(); + where.setEnabled(1l); + where.setIsDel(0l); + where.setVendorsCode("jgw"); + List list=attendanceCfgService.selectSurProjectAttendanceCfgList(where); + for(SurProjectAttendanceCfg it :list){ + String param= it.getVendorsParameter(); + if(Strings.isNotEmpty(param)){ + try{ + JSONObject jo=JSON.parseObject(param); + String appId=jo.getString("appId"); + String secret=jo.getString("secret"); + secret=Base64.encode(secret); + jo.put("secret",secret); + String token= getToken(appId,secret); + jo.put("token",token); + jo.put("startTime",dtStart); + jo.put("endTime",dtEnd); + doSyncAttendanceData(jo,"0",it); + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + } + + private void doSyncAttendanceData(JSONObject jo, String startId, SurProjectAttendanceCfg it) { + String appId=jo.getString("appId"); + String token=jo.getString("token"); + String projectId=jo.getString("projectId"); + String startTime=jo.getString("startTime"); + String endTime=jo.getString("endTime"); + String path="/webapi/project/findAttendanceByProject"; + String time = System.currentTimeMillis() + ""; + String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time; + + String tokenSign = Md5Utils.hash(url); + Map params = new HashMap<>(); + params.put("appId",appId); + params.put("timestamp",time); + params.put("tokenSign",tokenSign); + params.put("projectId",projectId); + params.put("startId",startId); + params.put("startTime",startTime); + params.put("endTime",endTime); + Request request = new Request.Builder() + .url(host+path) + .post(toFormBody(params)) + .build(); + String data=AttendanceTask.getResult(request); + System.out.println(data); + JSONObject j= JSON.parseObject(data); + JSONObject joData= j.getJSONObject("data"); + String endId= joData.getString("endId"); + JSONArray arr=joData.getJSONArray("workerAttList"); + //List addList=new ArrayList<>(); + if(arr!=null && arr.size()>0){ + for(int i=0;i"+sdata.getRemark()); + } + sdata.setVendorsCode(it.getVendorsCode()); + attendanceDataService.add(sdata); + //addList.add(sdata); + } + //attendanceDataService.addList(addList); + doSyncAttendanceData(jo,endId,it); + } + } + + } diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceTask.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceTask.java new file mode 100644 index 0000000..3251ce2 --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceTask.java @@ -0,0 +1,25 @@ +package com.yanzhu.xd.system.task; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +import java.io.IOException; + +public class AttendanceTask { + public static String getResult(Request request) { + OkHttpClient client = new OkHttpClient(); + Response response; + try { + response = client.newCall(request).execute(); + if (response.body() != null) { + return response.body().string(); + } else { + throw new RuntimeException(); + } + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/utils/SecurityTools.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/utils/SecurityTools.java new file mode 100644 index 0000000..fdbc653 --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/utils/SecurityTools.java @@ -0,0 +1,13 @@ +package com.yanzhu.xd.system.utils; + +import com.ruoyi.common.utils.ShiroUtils; + +public class SecurityTools { + public static String getUsername() { + try { + return ShiroUtils.getLoginName(); + } catch (Exception e) { + return "task"; + } + } +} diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceCfgMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceCfgMapper.xml index bfafa98..e135cd2 100644 --- a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceCfgMapper.xml +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceCfgMapper.xml @@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN sys_dict_data sdd1 ON sdd1.dict_type = 'attendance_vendors' AND sdd1.dict_value = a.vendors_code ) sur_project_attendance_cfg + - + + + + - + insert into sur_project_attendance_cfg @@ -66,7 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time, update_by, update_time, - + #{projectId}, #{subDeptId}, @@ -80,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createTime}, #{updateBy}, #{updateTime}, - + @@ -107,10 +115,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from sur_project_attendance_cfg where id in + delete from sur_project_attendance_cfg where id in #{id} - \ No newline at end of file diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceDataMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceDataMapper.xml index ace6ea4..3e401dc 100644 --- a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceDataMapper.xml +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceDataMapper.xml @@ -8,160 +8,564 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - - + + + + + + + + + + + + + + + - - - - - - + - select 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 from sur_project_attendance_data + select + id, + cfgid, + app_id, + projectId, + projectName, + deptId, + deptName, + vendors_code, + serverid, + workerId, + workerName, + identification, + workerPhoto, + workerGender, + birthDate, + ethnic, + nativePlace, + phone, + workTypeName, + specWorkType, + groupName, + companyTypeId, + companyName, + attendance_time, + attendance_out_time, + scanPhoto, + teamId, + workTypeCode, + companyId, + vendorId, + device_code, + is_del, + create_by, + create_time, + update_by, + update_time, + remark + from sur_project_attendance_data_${year} - - + select * from sur_project_attendance_data_${year} + and cfgid = #{cfgid} - and app_id = #{appId} + and app_id = #{appId} + and workerId = #{workerId} + and date(attendance_time) = date(#{attendanceTime}) + + order by id desc LIMIT 1 + + + - - + + - 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_${year} where CONCAT(app_id,'-',serverid,'-',workerId) in + + #{item} + + + + + insert into sur_project_attendance_data_${year}( id, cfgid, app_id, projectId, projectName, deptId, deptName, vendors_code, serverid, workerId, workerName, identification, workerPhoto, workerGender, birthDate, ethnic, nativePlace, phone, workTypeName, specWorkType, groupName, companyTypeId, + companyName, attendance_time, attendance_out_time, scanPhoto, teamId,workTypeCode, companyId, vendorId, device_code, is_del, create_by, create_time, update_by, update_time) values + + ( #{item.id}, #{item.cfgid},#{item.appId}, #{item.projectId}, #{item.projectName}, #{item.deptId}, #{item.deptName}, #{item.vendorsCode}, #{item.serverid}, #{item.workerId}, #{item.workerName}, #{item.identification},#{item.workerPhoto}, #{item.workerGender}, #{item.birthDate},#{item.ethnic}, #{item.nativePlace}, #{item.phone}, #{item.workTypeName}, #{item.specWorkType}, #{item.groupName}, #{item.companyTypeId}, + #{item.companyName}, #{item.attendanceTime}, #{item.attendanceOutTime}, #{item.scanPhoto},#{item.teamId}, #{item.workTypeCode}, #{item.companyId}, #{item.vendorId}, #{item.deviceCode},#{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceGroupMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceGroupMapper.xml index 2d5b056..bd15d82 100644 --- a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceGroupMapper.xml +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceGroupMapper.xml @@ -37,18 +37,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTimestamp, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_group + select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTimestamp, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time + from view_sur_project_attendance_group - - + and cfgid = #{cfgid} - and app_id = #{appId} - and serverid = #{serverid} + and app_id = #{appId} + and serverid = #{serverid} and bizLicense = #{bizLicense} and companyCode = #{companyCode} - and companyId = #{companyId} + and companyId = #{companyId} and companyName like concat('%', #{companyName}, '%') and companyTypeId = #{companyTypeId} and vendorId = #{vendorId} @@ -60,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and type = #{type} and leaderId = #{leaderId} and deleted = #{deleted} - and createTimestamp = #{createTimestamp} + and createTime = #{createTime} and platformGroupId = #{platformGroupId} and platformTeamId = #{platformTeamId} and enterDate = #{enterDate} @@ -68,12 +69,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and is_del = #{isDel} - + + + - + insert into sur_project_attendance_group @@ -105,7 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time, update_by, update_time, - + #{cfgid}, #{appId}, @@ -135,7 +166,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createTime}, #{updateBy}, #{updateTime}, - + @@ -178,10 +209,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from sur_project_attendance_group where id in + delete from sur_project_attendance_group where id in #{id} + + delete from sur_project_attendance_group where CONCAT(app_id,'-',serverid) in + + #{item} + + + + + insert into sur_project_attendance_group(id,cfgid,app_id,serverid,bizLicense,companyCode,companyId,companyName,companyTypeId,vendorId,name,leaderName,leaderPhone,teamId,teamName,type,leaderId,deleted,createTimestamp,platformGroupId,platformTeamId,enterDate,exitDate,remark,create_by,create_time,update_by,update_time) values + + (#{item.id}, #{item.cfgid}, #{item.appId}, #{item.serverid}, #{item.bizLicense}, #{item.companyCode}, #{item.companyId}, #{item.companyName},#{item.companyTypeId}, #{item.vendorId}, #{item.name}, #{item.leaderName}, #{item.leaderPhone}, #{item.teamId}, #{item.teamName}, #{item.type}, #{item.leaderId}, #{item.deleted}, #{item.createTimestamp}, #{item.platformGroupId}, #{item.platformTeamId}, #{item.enterDate}, + #{item.exitDate}, #{item.remark}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}) + + + \ No newline at end of file diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceUserMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceUserMapper.xml index e11208e..0eecb86 100644 --- a/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceUserMapper.xml +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SurProjectAttendanceUserMapper.xml @@ -45,19 +45,147 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select id, cfgid, app_id, vendors_code, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_user + SELECT * FROM ( + SELECT a.*,b.project_id,b.sub_dept_id + FROM sur_project_attendance_user a,sur_project_attendance_cfg b + WHERE a.cfgid=b.id ) + sur_project_attendance_user + - + SELECT * FROM ( + SELECT a.id, + a.cfgid, + a.app_id, + a.vendors_code, + a.workerId, + a.laborWorkerId, + a.workerCategory, + a.qrCode, + a.name, + a.ethnic, + a.nativePlace, + a.gender, + a.birthDate, + a.phone, + a.degreeName, + a.photo, + a.recentPhoto, + a.groupId, + a.groupName, + a.leader, + a.workTypeCode, + a.workTypeName, + a.specWorkType, + a.hatCode, + a.state, + a.enterDate, + a.exitDate, + a.companyId, + a.companyName, + a.vendorId, + a.teamId, + a.teamName, + a.enterType, + a.other, + a.is_del, + a.create_by, + a.create_time, + a.update_by, + a.update_time,b.project_id,b.sub_dept_id,g.companyTypeId,g.companyName as remark + FROM sur_project_attendance_user a,sur_project_attendance_cfg b,view_sur_project_attendance_group g + WHERE a.cfgid=b.id and a.companyId=g.companyId and g.id in(select min(id) from view_sur_project_attendance_group group by companyid) + ) + sur_project_attendance_user + + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + and cfgid = #{cfgid} - and app_id = #{appId} + and app_id = #{appId} and vendors_code = #{vendorsCode} - and workerId = #{workerId} + and workerId = #{workerId} and laborWorkerId = #{laborWorkerId} and workerCategory = #{workerCategory} and qrCode = #{qrCode} @@ -70,7 +198,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and degreeName like concat('%', #{degreeName}, '%') and photo = #{photo} and recentPhoto = #{recentPhoto} - and groupId = #{groupId} + and groupId = #{groupId} and groupName like concat('%', #{groupName}, '%') and leader = #{leader} and workTypeCode = #{workTypeCode} @@ -80,22 +208,96 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and state = #{state} and enterDate = #{enterDate} and exitDate = #{exitDate} - and companyId = #{companyId} + and companyId = #{companyId} and companyName like concat('%', #{companyName}, '%') and vendorId = #{vendorId} and teamId = #{teamId} and teamName like concat('%', #{teamName}, '%') and enterType = #{enterType} and other = #{other} + and project_id = #{projectId} + and sub_dept_id = #{subDeptId} + and is_del = #{isDel} + + + - - + + + + + insert into sur_project_attendance_user @@ -131,14 +333,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" teamId, teamName, enterType, - other, + other, remark, is_del, create_by, create_time, update_by, update_time, - + #{cfgid}, #{appId}, @@ -172,14 +374,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{teamId}, #{teamName}, #{enterType}, - #{other}, + #{other}, #{remark}, #{isDel}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, - + @@ -217,7 +419,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" teamId = #{teamId}, teamName = #{teamName}, enterType = #{enterType}, - other = #{other}, + other = #{other}, remark = #{remark}, is_del = #{isDel}, create_by = #{createBy}, @@ -233,10 +435,378 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from sur_project_attendance_user where id in + delete from sur_project_attendance_user where id in #{id} + + delete from sur_project_attendance_user where CONCAT(app_id,'-',workerId) in + + #{item} + + + + + insert into sur_project_attendance_user( id, cfgid, vendors_code, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time) values + + ( #{item.id}, #{item.cfgid}, #{item.vendorsCode}, #{item.workerId}, #{item.laborWorkerId}, #{item.workerCategory}, #{item.qrCode}, #{item.name}, #{item.ethnic}, #{item.nativePlace}, #{item.gender}, #{item.birthDate}, #{item.phone}, #{item.degreeName}, #{item.photo}, #{item.recentPhoto}, #{item.groupId}, #{item.groupName}, #{item.leader}, #{item.workTypeCode}, #{item.workTypeName}, #{item.specWorkType}, #{item.hatCode}, #{item.state}, #{item.enterDate}, #{item.exitDate}, #{item.companyId}, #{item.companyName}, #{item.vendorId}, #{item.teamId}, #{item.teamName}, #{item.enterType}, #{item.other}, #{item.remark}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}) + + + + + ( + SELECT * FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN ( + SELECT id FROM sur_project_attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId} + ) ) xx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml index ca6a83c..61fab05 100644 --- a/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml @@ -70,5 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - + \ No newline at end of file