From 8a4261e572b35c8b8f677fbb2f6e5dc765d58d3c Mon Sep 17 00:00:00 2001 From: "lj7788@126.com" Date: Wed, 25 Jun 2025 18:43:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=AD=97=E5=BB=BA=E8=80=83=E5=8B=A4?= =?UTF-8?q?=E6=8E=A5=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yanzhu-bigscreen/src/components/header.vue | 5 +- yanzhu-bigscreen/src/views/greenCarbon.vue | 2 +- yanzhu-bigscreen/src/views/projectDetail.vue | 5 +- yanzhu-bigscreen/src/views/projectLabor.vue | 5 +- .../manage/SurProjectAttendanceDataMapper.xml | 6 +- .../manage/SurProjectAttendanceUserMapper.xml | 24 +- .../domain/QuartzProjectAttendanceData.java | 512 ++++++++++++ .../domain/QuartzProjectAttendanceGroup.java | 429 ++++++++++ .../domain/QuartzProjectAttendanceUser.java | 754 +++++++++++++++++ .../yanzhu/job/domain/SzjEnterpriseInfo.java | 155 ++++ .../QuartzProjectAttendanceDataMapper.java | 135 +++ .../QuartzProjectAttendanceGroupMapper.java | 87 ++ .../QuartzProjectAttendanceUserMapper.java | 170 ++++ .../IQuartzProjectAttendanceDataService.java | 141 ++++ .../IQuartzProjectAttendanceGroupService.java | 95 +++ .../IQuartzProjectAttendanceUserService.java | 163 ++++ .../QuartzProAttendanceCfgServiceImpl.java | 4 +- ...uartzProjectAttendanceDataServiceImpl.java | 501 +++++++++++ ...artzProjectAttendanceGroupServiceImpl.java | 166 ++++ ...uartzProjectAttendanceUserServiceImpl.java | 315 +++++++ .../yanzhu/job/task/AttendanceSzjTask.java | 786 ++++++++++-------- .../job/QuartzProjectAttendanceDataMapper.xml | 573 +++++++++++++ .../QuartzProjectAttendanceGroupMapper.xml | 233 ++++++ .../job/QuartzProjectAttendanceUserMapper.xml | 753 +++++++++++++++++ .../controller/bigscreen/LaborController.java | 2 +- ...roProjectInfoSubdeptsUsersServiceImpl.java | 12 +- yanzhu-ui-vue3/src/main.js | 3 + .../thirdLabor/attendanceData/index.vue | 4 +- 28 files changed, 5666 insertions(+), 374 deletions(-) create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceData.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceGroup.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceUser.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/SzjEnterpriseInfo.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceDataMapper.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceGroupMapper.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceUserMapper.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceDataService.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceGroupService.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceUserService.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceDataServiceImpl.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceGroupServiceImpl.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceUserServiceImpl.java create mode 100644 yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceDataMapper.xml create mode 100644 yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceGroupMapper.xml create mode 100644 yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceUserMapper.xml diff --git a/yanzhu-bigscreen/src/components/header.vue b/yanzhu-bigscreen/src/components/header.vue index 0c708f26..fb04a47c 100644 --- a/yanzhu-bigscreen/src/components/header.vue +++ b/yanzhu-bigscreen/src/components/header.vue @@ -207,7 +207,10 @@ export default { if (tmps.length > 0) { this.$store.dispatch("SetSelProject", tmps[0]); this.selProject = tmps[0]; - this.selProject.vendorsCode = "uni"; + if(this.sel.vendorsCode == "jgw" ){ + this.selProject.vendorsCode = "uni"; + } + document.title = this.selProject.projectName + " - 大屏"; } else { this.$store.dispatch("SetSelProject", null); diff --git a/yanzhu-bigscreen/src/views/greenCarbon.vue b/yanzhu-bigscreen/src/views/greenCarbon.vue index 1abb8851..7ee955eb 100644 --- a/yanzhu-bigscreen/src/views/greenCarbon.vue +++ b/yanzhu-bigscreen/src/views/greenCarbon.vue @@ -205,7 +205,6 @@ export default { }), ] this.$api.http.all(ajax).then((res) => { - console.log(res) this.allData = res[0] this.curMonthData = res[1] this.yearMonthData = res[2] @@ -236,6 +235,7 @@ export default { tmps = this.curMonthData.filter((it) => it.factorType == 0) this.totalData[2] = tmps.length > 0 ? tmps[0].emissionReduction : 0 this.chartKey++ + setTimeout(this.loadData,60*1000); }) }, renderChart1() { diff --git a/yanzhu-bigscreen/src/views/projectDetail.vue b/yanzhu-bigscreen/src/views/projectDetail.vue index 7260dfb0..cd9032b5 100644 --- a/yanzhu-bigscreen/src/views/projectDetail.vue +++ b/yanzhu-bigscreen/src/views/projectDetail.vue @@ -579,7 +579,10 @@ export default { } this.$api.project.getProjectInfo(this.selProject.id).then((d) => { this.prjInfo = d.data || {} - this.prjInfo.vendorsCode = 'uni' + if(this.prjInfo.vendorsCode == 'jgw'){ + this.prjInfo.vendorsCode = 'uni' + } + let tmps = this.prjInfo.projectDeptsList || [] const func = (t) => { let objs = tmps.filter((it) => it.deptType == t) diff --git a/yanzhu-bigscreen/src/views/projectLabor.vue b/yanzhu-bigscreen/src/views/projectLabor.vue index de838378..0a2d9773 100644 --- a/yanzhu-bigscreen/src/views/projectLabor.vue +++ b/yanzhu-bigscreen/src/views/projectLabor.vue @@ -197,6 +197,7 @@ export default { this.getWorkerCountGroupByType() this.getRealAttendance() this.getAttendanceAlert() + setTimeout(this.init,3*60*1000); }, resize() { let is1K = this.$dpi() == '1K' @@ -257,8 +258,8 @@ export default { this.weekData = d.data.map((it) => { return { name: it.dt.substring(5).replace('-', '.'), - //value: it.cnt, - value: it.cnt + parseInt(Math.random() * 100), + value: it.cnt, + } }) this.chartKey++ diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceDataMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceDataMapper.xml index 1a51ee06..2d78a2e4 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceDataMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceDataMapper.xml @@ -664,16 +664,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml index fab4183e..01460fe8 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml @@ -830,7 +830,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceData.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceData.java new file mode 100644 index 00000000..0342c87a --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceData.java @@ -0,0 +1,512 @@ +package com.yanzhu.job.domain; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson2.JSONObject; +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 劳务实名制管理对象 sur_project_attendance_data + * + * @author ruoyi + * @date 2023-09-24 + */ +public class QuartzProjectAttendanceData extends BaseEntity +{ + public QuartzProjectAttendanceData(){ + 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 */ + private Long cfgid; + + /** 注册应用ID */ + private String appId; + + /** 厂商编号参考字典attendance_vendors */ + private String vendorsCode; + + /** 服务端ID */ + private String serverid; + + /** 队伍id */ + private Long teamId; + + /** 工种编码 */ + private String workTypeCode; + + /** 分包商id */ + private String companyId; + + /** 平台对应分包商ID */ + private Long vendorId; + + /** 设备编号 */ + private String deviceCode; + + /** 照片 */ + private String scanPhoto; + + /** */ + private Long isDel; + + 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 QuartzProjectAttendanceData createFromHuazhu(JSONObject j) { + QuartzProjectAttendanceData d=new QuartzProjectAttendanceData(); + 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 QuartzProjectAttendanceData createFromJgw(JSONObject j) { + QuartzProjectAttendanceData d=new QuartzProjectAttendanceData(); + 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 QuartzProjectAttendanceData create(JSONObject json) { + QuartzProjectAttendanceData d=new QuartzProjectAttendanceData(); + 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() + { + return id; + } + public void setCfgid(Long cfgid) + { + this.cfgid = cfgid; + } + + public Long getCfgid() + { + return cfgid; + } + public void setVendorsCode(String vendorsCode) + { + this.vendorsCode = vendorsCode; + } + + public String getVendorsCode() + { + return vendorsCode; + } + public void setServerid(String serverid) + { + this.serverid = serverid; + } + + public String getServerid() + { + return serverid; + } + public void setWorkerId(String workerId) + { + this.workerId = workerId; + } + + public String getWorkerId() + { + return workerId; + } + + public void setAttendanceTime(String attendanceTime) + { + this.attendanceTime = attendanceTime; + } + + public String getAttendanceTime() + { + return attendanceTime; + } + public void setIdentification(String identification) + { + this.identification = identification; + } + + public String getIdentification() + { + return identification; + } + public void setTeamId(Long teamId) + { + this.teamId = teamId; + } + + public Long getTeamId() + { + return teamId; + } + public void setWorkTypeCode(String workTypeCode) + { + this.workTypeCode = workTypeCode; + } + + public String getWorkTypeCode() + { + return workTypeCode; + } + public void setCompanyId(String companyId) + { + this.companyId = companyId; + } + + public String getCompanyId() + { + return companyId; + } + public void setVendorId(Long vendorId) + { + this.vendorId = vendorId; + } + + public Long getVendorId() + { + return vendorId; + } + + public void setDeviceCode(String deviceCode) + { + this.deviceCode = deviceCode; + } + + public String getDeviceCode() + { + return deviceCode; + } + + + public void setScanPhoto(String scanPhoto) + { + this.scanPhoto = scanPhoto; + } + + public String getScanPhoto() + { + return scanPhoto; + } + + public void setIsDel(Long isDel) + { + this.isDel = isDel; + } + + 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("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/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceGroup.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceGroup.java new file mode 100644 index 00000000..a84f3463 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceGroup.java @@ -0,0 +1,429 @@ +package com.yanzhu.job.domain; + +import com.alibaba.fastjson2.JSONObject; +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 广联达班组信息对象 sur_project_attendance_group + * + * @author ruoyi + * @date 2023-09-26 + */ +public class QuartzProjectAttendanceGroup extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** cfgid */ + @Excel(name = "cfgid") + private Long cfgid; + + /** 注册应用ID */ + @Excel(name = "注册应用ID") + private String appId; + + /** 服务器主键id */ + @Excel(name = "服务器主键id") + private String serverid; + + /** 营业执照号 */ + @Excel(name = "营业执照号") + private String bizLicense; + + /** 分包商统一社会信用代码 */ + @Excel(name = "分包商统一社会信用代码") + private String companyCode; + + /** 分包商ID */ + @Excel(name = "分包商ID") + private String companyId; + + /** 分包商名称 */ + @Excel(name = "分包商名称") + private String companyName; + + /** 分包商类型 */ + @Excel(name = "分包商类型") + private String companyTypeId; + + /** 平台对应分包商ID */ + @Excel(name = "平台对应分包商ID") + private Long vendorId; + + /** 班组名称 */ + @Excel(name = "班组名称") + private String name; + + /** 班组长名称 */ + @Excel(name = "班组长名称") + private String leaderName; + + /** 班组长电话 */ + @Excel(name = "班组长电话") + private String leaderPhone; + + /** 队伍Id */ + @Excel(name = "队伍Id") + private Long teamId; + + /** 队伍名称 */ + @Excel(name = "队伍名称") + private String teamName; + + /** 班组类型0:建筑工人班组;1:管理人员班组 */ + @Excel(name = "班组类型0:建筑工人班组;1:管理人员班组") + private Long type; + + /** 班组长对应的工人ID */ + @Excel(name = "班组长对应的工人ID") + private Long leaderId; + + /** 是否删除 */ + @Excel(name = "是否删除") + private Integer deleted; + + /** 基础平台对应班组ID */ + @Excel(name = "基础平台对应班组ID") + private Long platformGroupId; + + /** 基础平台对应队伍ID */ + @Excel(name = "基础平台对应队伍ID") + private Long platformTeamId; + + /** 企业进场日期 */ + @Excel(name = "企业进场日期") + private Long enterDate; + + /** 企业退场日期 */ + @Excel(name = "企业退场日期") + private Long exitDate; + + /** 是否有效 */ + @Excel(name = "是否有效") + private Long isDel; + + /** 时间戳 */ + @Excel(name = "时间戳") + private Long createTimestamp; + + public static QuartzProjectAttendanceGroup createHuazhu(JSONObject j) { + QuartzProjectAttendanceGroup g=new QuartzProjectAttendanceGroup(); + 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 QuartzProjectAttendanceGroup createJgw(JSONObject j, boolean isDirectlyUnder) { + QuartzProjectAttendanceGroup g=new QuartzProjectAttendanceGroup(); + 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 QuartzProjectAttendanceGroup create(JSONObject json) { + QuartzProjectAttendanceGroup g=new QuartzProjectAttendanceGroup(); + 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() + { + return id; + } + public void setCfgid(Long cfgid) + { + this.cfgid = cfgid; + } + + public Long getCfgid() + { + return cfgid; + } + public void setServerid(String serverid) + { + this.serverid = serverid; + } + + public String getServerid() + { + return serverid; + } + public void setBizLicense(String bizLicense) + { + this.bizLicense = bizLicense; + } + + public String getBizLicense() + { + return bizLicense; + } + public void setCompanyCode(String companyCode) + { + this.companyCode = companyCode; + } + + public String getCompanyCode() + { + return companyCode; + } + public void setCompanyId(String companyId) + { + this.companyId = companyId; + } + + public String getCompanyId() + { + return companyId; + } + public void setCompanyName(String companyName) + { + this.companyName = companyName; + } + + public String getCompanyName() + { + return companyName; + } + public void setCompanyTypeId(String companyTypeId) + { + this.companyTypeId = companyTypeId; + } + + public String getCompanyTypeId() + { + return companyTypeId; + } + public void setVendorId(Long vendorId) + { + this.vendorId = vendorId; + } + + public Long getVendorId() + { + return vendorId; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setLeaderName(String leaderName) + { + this.leaderName = leaderName; + } + + public String getLeaderName() + { + return leaderName; + } + public void setLeaderPhone(String leaderPhone) + { + this.leaderPhone = leaderPhone; + } + + public String getLeaderPhone() + { + return leaderPhone; + } + public void setTeamId(Long teamId) + { + this.teamId = teamId; + } + + public Long getTeamId() + { + return teamId; + } + public void setTeamName(String teamName) + { + this.teamName = teamName; + } + + public String getTeamName() + { + return teamName; + } + public void setType(Long type) + { + this.type = type; + } + + public Long getType() + { + return type; + } + public void setLeaderId(Long leaderId) + { + this.leaderId = leaderId; + } + + public Long getLeaderId() + { + return leaderId; + } + public void setDeleted(Integer deleted) + { + this.deleted = deleted; + } + + public Integer getDeleted() + { + return deleted; + } + public void setPlatformGroupId(Long platformGroupId) + { + this.platformGroupId = platformGroupId; + } + + public Long getPlatformGroupId() + { + return platformGroupId; + } + public void setPlatformTeamId(Long platformTeamId) + { + this.platformTeamId = platformTeamId; + } + + public Long getPlatformTeamId() + { + return platformTeamId; + } + public void setEnterDate(Long enterDate) + { + this.enterDate = enterDate; + } + + public Long getEnterDate() + { + return enterDate; + } + public void setExitDate(Long exitDate) + { + this.exitDate = exitDate; + } + + public Long getExitDate() + { + return exitDate; + } + public void setIsDel(Long isDel) + { + this.isDel = isDel; + } + + 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("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/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceUser.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceUser.java new file mode 100644 index 00000000..0cc55c19 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/QuartzProjectAttendanceUser.java @@ -0,0 +1,754 @@ +package com.yanzhu.job.domain; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; +import java.util.List; + +/** + * 考勤人员基本属性对象 sur_project_attendance_user + * + * @author ruoyi + * @date 2023-09-24 + */ +public class QuartzProjectAttendanceUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + + /** */ + private Long id; + + /** 配置项ID,可以获取项目ID和总包ID */ + + private Long cfgid; + + /** 注册应用ID */ + + private String appId; + + /** 厂商编号参考字典attendance_vendors */ + + private String vendorsCode; + + /** 工人id */ + @Excel(name = "工人id") + private String workerId; + + /** 项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId */ + + private Long laborWorkerId; + + /** 人员类别0:工人,1:管理人员 */ + @Excel(name = "人员类别0:工人,1:管理人员") + private Long workerCategory; + + /** 工号 */ + + private Long qrCode; + + /** 姓名 */ + @Excel(name = "姓名") + private String name; + + /** 民族 */ + @Excel(name = "民族") + private String ethnic; + + /** 籍贯 */ + @Excel(name = "籍贯") + private String nativePlace; + + /** 性别0:男 1:女 */ + @Excel(name = "性别0:男 1:女") + private Long gender; + + /** 出生日期时间戳 */ + @Excel(name = "出生日期时间戳") + private Long birthDate; + + /** 联系电话 */ + @Excel(name = "联系电话") + private String phone; + + /** 学历 */ + @Excel(name = "学历") + private String degreeName; + + /** 身份证照 */ + @Excel(name = "身份证照") + private String photo; + + @Excel(name = "证件号码") + private String idCardNo; + + public String getIdCardNo() { + return idCardNo; + } + + public void setIdCardNo(String idCardNo) { + this.idCardNo = idCardNo; + } + + public String getIdTypeName() { + return idTypeName; + } + + public void setIdTypeName(String idTypeName) { + this.idTypeName = idTypeName; + } + + @Excel(name = "证件类型") + private String idTypeName; + /** 近照 */ + + private String recentPhoto; + + /** 所属班组ID */ + + private String groupId; + + /** 所属班组 */ + @Excel(name = "所属班组") + private String groupName; + + /** 是否班组长 */ + @Excel(name = "是否班组长") + private Integer leader; + + /** 工种编码 */ + @Excel(name = "工种编码") + private String workTypeCode; + + /** 工种 */ + @Excel(name = "工种") + private String workTypeName; + + /** 是否特殊工种 */ + @Excel(name = "是否特殊工种") + private Integer specWorkType; + + /** 安全帽编号 */ + @Excel(name = "安全帽编号") + private String hatCode; + + /** 进退场状态0:进场,1:退场 */ + @Excel(name = "进退场状态0:进场,1:退场") + private Long state; + + /** 进场日期 */ + @Excel(name = "进场日期") + private String enterDate; + + /** 退场日期 */ + @Excel(name = "退场日期") + private String exitDate; + + /** 分包商id */ + @Excel(name = "分包商id") + private String companyId; + + /** 分包商名称 */ + @Excel(name = "分包商名称") + private String companyName; + + /** 平台对应分包商ID */ + @Excel(name = "平台对应分包商ID") + private Long vendorId; + + /** 队伍id */ + @Excel(name = "队伍id") + private Integer teamId; + + /** 队伍名称 */ + @Excel(name = "队伍名称") + private String teamName; + + /** 进场方式0:自动,1:手动2:拍照 */ + @Excel(name = "进场方式0:自动,1:手动2:拍照") + private String enterType; + + /** 服务返回的JSON */ + @Excel(name = "服务返回的JSON") + private String other; + + /** 是否有效 */ + @Excel(name = "是否有效") + private Long isDel; + + /** 人员部门类型 */ + @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 QuartzProjectAttendanceUser createFromHuazhu(JSONObject j) { + QuartzProjectAttendanceUser u=new QuartzProjectAttendanceUser(); + 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 QuartzProjectAttendanceUser createFromJgw(JSONObject j) { + QuartzProjectAttendanceUser u=new QuartzProjectAttendanceUser(); + 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 QuartzProjectAttendanceUser create(JSONObject json) { + QuartzProjectAttendanceUser u=new QuartzProjectAttendanceUser(); + 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() + { + return id; + } + public void setCfgid(Long cfgid) + { + this.cfgid = cfgid; + } + + public Long getCfgid() + { + return cfgid; + } + public void setVendorsCode(String vendorsCode) + { + this.vendorsCode = vendorsCode; + } + + public String getVendorsCode() + { + return vendorsCode; + } + public void setWorkerId(String workerId) + { + this.workerId = workerId; + } + + public String getWorkerId() + { + return workerId; + } + public void setLaborWorkerId(Long laborWorkerId) + { + this.laborWorkerId = laborWorkerId; + } + + public Long getLaborWorkerId() + { + return laborWorkerId; + } + public void setWorkerCategory(Long workerCategory) + { + this.workerCategory = workerCategory; + } + + public Long getWorkerCategory() + { + return workerCategory; + } + public void setQrCode(Long qrCode) + { + this.qrCode = qrCode; + } + + public Long getQrCode() + { + return qrCode; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setEthnic(String ethnic) + { + this.ethnic = ethnic; + } + + public String getEthnic() + { + return ethnic; + } + public void setNativePlace(String nativePlace) + { + this.nativePlace = nativePlace; + } + + public String getNativePlace() + { + return nativePlace; + } + public void setGender(Long gender) + { + this.gender = gender; + } + + public Long getGender() + { + return gender; + } + public void setBirthDate(Long birthDate) + { + this.birthDate = birthDate; + } + + public Long getBirthDate() + { + return birthDate; + } + public void setPhone(String phone) + { + this.phone = phone; + } + + public String getPhone() + { + return phone; + } + public void setDegreeName(String degreeName) + { + this.degreeName = degreeName; + } + + public String getDegreeName() + { + return degreeName; + } + public void setPhoto(String photo) + { + this.photo = photo; + } + + public String getPhoto() + { + return photo; + } + public void setRecentPhoto(String recentPhoto) + { + this.recentPhoto = recentPhoto; + } + + public String getRecentPhoto() + { + return recentPhoto; + } + public void setGroupId(String groupId) + { + this.groupId = groupId; + } + + public String getGroupId() + { + return groupId; + } + public void setGroupName(String groupName) + { + this.groupName = groupName; + } + + public String getGroupName() + { + return groupName; + } + public void setLeader(Integer leader) + { + this.leader = leader; + } + + public Integer getLeader() + { + return leader; + } + public void setWorkTypeCode(String workTypeCode) + { + this.workTypeCode = workTypeCode; + } + + public String getWorkTypeCode() + { + return workTypeCode; + } + public void setWorkTypeName(String workTypeName) + { + this.workTypeName = workTypeName; + } + + public String getWorkTypeName() + { + return workTypeName; + } + public void setSpecWorkType(Integer specWorkType) + { + this.specWorkType = specWorkType; + } + + public Integer getSpecWorkType() + { + return specWorkType; + } + public void setHatCode(String hatCode) + { + this.hatCode = hatCode; + } + + public String getHatCode() + { + return hatCode; + } + public void setState(Long state) + { + this.state = state; + } + + public Long getState() + { + return state; + } + public void setEnterDate(String enterDate) + { + this.enterDate = enterDate; + } + + public String getEnterDate() + { + return enterDate; + } + public void setExitDate(String exitDate) + { + this.exitDate = exitDate; + } + + public String getExitDate() + { + return exitDate; + } + public void setCompanyId(String companyId) + { + this.companyId = companyId; + } + + public String getCompanyId() + { + return companyId; + } + public void setCompanyName(String companyName) + { + this.companyName = companyName; + } + + public String getCompanyName() + { + return companyName; + } + public void setVendorId(Long vendorId) + { + this.vendorId = vendorId; + } + + public Long getVendorId() + { + return vendorId; + } + public void setTeamId(Integer teamId) + { + this.teamId = teamId; + } + + public Integer getTeamId() + { + return teamId; + } + public void setTeamName(String teamName) + { + this.teamName = teamName; + } + + public String getTeamName() + { + return teamName; + } + public void setEnterType(String enterType) + { + this.enterType = enterType; + } + + public String getEnterType() + { + return enterType; + } + public void setOther(String other) + { + this.other = other; + } + + public String getOther() + { + return other; + } + public void setIsDel(Long isDel) + { + this.isDel = isDel; + } + + 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("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(); + } +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/SzjEnterpriseInfo.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/SzjEnterpriseInfo.java new file mode 100644 index 00000000..a67b560c --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/domain/SzjEnterpriseInfo.java @@ -0,0 +1,155 @@ +package com.yanzhu.job.domain; + +/** + * 数字建 参建单位 + * + */ +public class SzjEnterpriseInfo { + private Long id; + private String enterpriseName; + private String enterpriseAddress; + private Long enterpriseType; + private Long companyTypeId; + private String creditCode; + private String address; + private String city; + private Integer cityCode; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEnterpriseName() { + return enterpriseName; + } + + public void setEnterpriseName(String enterpriseName) { + this.enterpriseName = enterpriseName; + } + + public String getEnterpriseAddress() { + return enterpriseAddress; + } + + public void setEnterpriseAddress(String enterpriseAddress) { + this.enterpriseAddress = enterpriseAddress; + } + + public Long getEnterpriseType() { + return enterpriseType; + } + + public void setEnterpriseType(Long enterpriseType) { + this.enterpriseType = enterpriseType; + if(enterpriseType==null){ + companyTypeId = 0L; + return; + } + if(enterpriseType==3L){ + companyTypeId = 1L; + }else if(enterpriseType==1L){ + companyTypeId = 8L; + }else{ + companyTypeId = 2L; + } + } + + public Long getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Long companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public String getCreditCode() { + return creditCode; + } + + public void setCreditCode(String creditCode) { + this.creditCode = creditCode; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public Integer getCityCode() { + return cityCode; + } + + public void setCityCode(Integer cityCode) { + this.cityCode = cityCode; + } + + public String getContactNumber() { + return contactNumber; + } + + public void setContactNumber(String contactNumber) { + this.contactNumber = contactNumber; + } + + public String getContactPerson() { + return contactPerson; + } + + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getCountryCode() { + return countryCode; + } + + public void setCountryCode(String countryCode) { + this.countryCode = countryCode; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getProvinceCode() { + return provinceCode; + } + + public void setProvinceCode(String provinceCode) { + this.provinceCode = provinceCode; + } + + private String contactNumber; + private String contactPerson; + private String country; + private String countryCode; + private String province; + private String provinceCode; +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceDataMapper.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceDataMapper.java new file mode 100644 index 00000000..13689133 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceDataMapper.java @@ -0,0 +1,135 @@ +package com.yanzhu.job.mapper; + +import com.yanzhu.job.domain.QuartzProjectAttendanceData; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 劳务实名制管理Mapper接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface QuartzProjectAttendanceDataMapper +{ + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + public QuartzProjectAttendanceData selectSurProjectAttendanceDataById(Long id); + + /** + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public List selectSurProjectAttendanceDataList(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public QuartzProjectAttendanceData findCurrentAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(QuartzProjectAttendanceData quartzProjectAttendanceData); + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int insertSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int updateSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 删除劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 结果 + */ + public int deleteSurProjectAttendanceDataById(Long id); + + /** + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + 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(QuartzProjectAttendanceData where); + + List groupAllByComany(QuartzProjectAttendanceData where); + List groupByComany(QuartzProjectAttendanceData where); + + public Long getHuazhuPage(QuartzProjectAttendanceData where); + + + public List> initOtherData(Map data); + + public List> initHuaZhuData(Map data); + + public String findHuaZhuCompanyType(String deptName); + + public List todayAttendance(QuartzProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(QuartzProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> findGroupAllByParams(QuartzProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(QuartzProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(QuartzProjectAttendanceData where); + + public List groupTodayCompanyTypeId(QuartzProjectAttendanceData where); +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceGroupMapper.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceGroupMapper.java new file mode 100644 index 00000000..00c5cf2b --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceGroupMapper.java @@ -0,0 +1,87 @@ +package com.yanzhu.job.mapper; + + +import com.yanzhu.job.domain.QuartzProjectAttendanceGroup; + +import java.util.List; + +/** + * 广联达班组信息Mapper接口 + * + * @author ruoyi + * @date 2023-09-26 + */ +public interface QuartzProjectAttendanceGroupMapper +{ + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + public QuartzProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupViewList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int insertSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int updateSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 删除广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupById(Long id); + + /** + * 批量删除广联达班组信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupByIds(Long[] ids); + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupByParams(List list); + + /** + * 批量新增广联达班组信息 + * + * @param quartzProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + public int batchSurProjectAttendanceGroup(List quartzProjectAttendanceGroupList); +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceUserMapper.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceUserMapper.java new file mode 100644 index 00000000..1927be49 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/mapper/QuartzProjectAttendanceUserMapper.java @@ -0,0 +1,170 @@ +package com.yanzhu.job.mapper; + + +import com.yanzhu.job.domain.QuartzProAttendanceCfg; +import com.yanzhu.job.domain.QuartzProjectAttendanceData; +import com.yanzhu.job.domain.QuartzProjectAttendanceUser; + +import java.util.List; +import java.util.Map; + +/** + * 考勤人员基本属性Mapper接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface QuartzProjectAttendanceUserMapper +{ + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + + /** + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser findCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser findYzCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + + public List querySurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + public List selectSurProjectAttendanceUserListJgw(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int insertSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int updateSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 删除考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 结果 + */ + public int deleteSurProjectAttendanceUserById(Long id); + + /** + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + 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(QuartzProjectAttendanceUser where); + public long countAttendance(QuartzProAttendanceCfg where); + public List queryAttendanceUsers(QuartzProjectAttendanceUser where); + + public long countTodayAttendance(QuartzProjectAttendanceUser where); + + + public List todayAttendance(QuartzProjectAttendanceUser where); + public List todayAttendanceData(List list); + + public List todayAttendanceOtherData(Map data); + + /** + * 在岗工人查询 + * @param where + * @return + */ + List queryWorkerOnDuty(QuartzProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(QuartzProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(QuartzProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(QuartzProjectAttendanceUser where); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(QuartzProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(QuartzProjectAttendanceUser where); + +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceDataService.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceDataService.java new file mode 100644 index 00000000..70513719 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceDataService.java @@ -0,0 +1,141 @@ +package com.yanzhu.job.service; + + +import com.yanzhu.job.domain.QuartzProjectAttendanceData; + +import java.util.List; +import java.util.Map; + +/** + * 劳务实名制管理Service接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface IQuartzProjectAttendanceDataService +{ + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + public QuartzProjectAttendanceData selectSurProjectAttendanceDataById(Long id); + + /** + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public List selectSurProjectAttendanceDataList(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public QuartzProjectAttendanceData findCurrentAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int insertSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int updateSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData); + + /** + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的劳务实名制管理主键集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceDataByIds(Long[] ids); + + /** + * 删除劳务实名制管理信息 + * + * @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(QuartzProjectAttendanceData sdata); + + public String getLastServerId(QuartzProjectAttendanceData where); + + public List groupByComany(QuartzProjectAttendanceData where); + + public Long getHuazhuPage( QuartzProjectAttendanceData where); + + public List groupAllByComany(QuartzProjectAttendanceData where); + + + public List> initHuaZhuData(Map data); + + List todayAttendance(QuartzProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> groupAllByParams(QuartzProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(QuartzProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(QuartzProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(QuartzProjectAttendanceData where); + + List groupTodayCompanyTypeId(QuartzProjectAttendanceData where); + + /** + * 指增加 + * @param addList + */ + void addList(List addList); +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceGroupService.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceGroupService.java new file mode 100644 index 00000000..2c811190 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceGroupService.java @@ -0,0 +1,95 @@ +package com.yanzhu.job.service; + + +import com.yanzhu.job.domain.QuartzProjectAttendanceGroup; + +import java.util.List; + +/** + * 广联达班组信息Service接口 + * + * @author ruoyi + * @date 2023-09-26 + */ +public interface IQuartzProjectAttendanceGroupService +{ + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + public QuartzProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupViewList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int insertSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int updateSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup); + + /** + * 批量删除广联达班组信息 + * + * @param ids 需要删除的广联达班组信息主键集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceGroupByIds(Long[] ids); + + /** + * 删除广联达班组信息信息 + * + * @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(QuartzProjectAttendanceGroup group); + + /** + * 更新济工网的分组类型 + * @param group + */ + public void updateJgw(QuartzProjectAttendanceGroup group); +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceUserService.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceUserService.java new file mode 100644 index 00000000..4a2265a0 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/IQuartzProjectAttendanceUserService.java @@ -0,0 +1,163 @@ +package com.yanzhu.job.service; + + +import com.yanzhu.job.domain.QuartzProjectAttendanceData; +import com.yanzhu.job.domain.QuartzProjectAttendanceUser; + +import java.util.List; +import java.util.Map; + +/** + * 考勤人员基本属性Service接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface IQuartzProjectAttendanceUserService +{ + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + + /** + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser findCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser findYzCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int insertSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int updateSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的考勤人员基本属性主键集合 + * @return 结果 + */ + public int deleteSurProjectAttendanceUserByIds(Long[] ids); + + /** + * 删除考勤人员基本属性信息 + * + * @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(QuartzProjectAttendanceUser user); + + public List queryAttendanceData(QuartzProjectAttendanceUser where); + + public long countTodayAttendance(QuartzProjectAttendanceUser where); + + public List todayAttendance(QuartzProjectAttendanceUser where); + + public long countAttendance(QuartzProjectAttendanceUser where); + + /** + * 济工网人员查询 + * @param quartzProjectAttendanceUser + * @return + */ + public List selectSurProjectAttendanceUserListJgw(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List queryWorkerOnDuty(QuartzProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(QuartzProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(QuartzProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(QuartzProjectAttendanceUser where); + + List querySurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(QuartzProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(QuartzProjectAttendanceUser where); +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProAttendanceCfgServiceImpl.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProAttendanceCfgServiceImpl.java index fa97c2f9..5c210355 100644 --- a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProAttendanceCfgServiceImpl.java +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProAttendanceCfgServiceImpl.java @@ -19,7 +19,7 @@ public class QuartzProAttendanceCfgServiceImpl implements IQuartzProAttendanceCf { @Autowired - private QuartzProAttendanceCfgMapper quartzProjectAttendanceCfgMapper; + private QuartzProAttendanceCfgMapper cfgMapper; /** * 查询项目考勤配置列表 @@ -30,7 +30,7 @@ public class QuartzProAttendanceCfgServiceImpl implements IQuartzProAttendanceCf @Override public List selectProAttendanceCfgList(QuartzProAttendanceCfg quartzProAttendanceCfg) { - return quartzProjectAttendanceCfgMapper.selectProAttendanceCfgList(quartzProAttendanceCfg); + return cfgMapper.selectProAttendanceCfgList(quartzProAttendanceCfg); } } diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceDataServiceImpl.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceDataServiceImpl.java new file mode 100644 index 00000000..cc9d387c --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceDataServiceImpl.java @@ -0,0 +1,501 @@ +package com.yanzhu.job.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.utils.StringUtils; +import com.yanzhu.common.security.utils.SecurityUtils; +import com.yanzhu.job.domain.QuartzProAttendanceCfg; +import com.yanzhu.job.domain.QuartzProjectAttendanceData; +import com.yanzhu.job.domain.QuartzProjectAttendanceGroup; +import com.yanzhu.job.domain.QuartzProjectAttendanceUser; +import com.yanzhu.job.mapper.QuartzProAttendanceCfgMapper; +import com.yanzhu.job.mapper.QuartzProjectAttendanceDataMapper; +import com.yanzhu.job.mapper.QuartzProjectAttendanceGroupMapper; +import com.yanzhu.job.mapper.QuartzProjectAttendanceUserMapper; +import com.yanzhu.job.service.IQuartzProjectAttendanceDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 劳务实名制管理Service业务层处理 + * + * @author ruoyi + * @date 2023-09-24 + */ +@Service +public class QuartzProjectAttendanceDataServiceImpl implements IQuartzProjectAttendanceDataService +{ + @Autowired + private QuartzProjectAttendanceDataMapper quartzProjectAttendanceDataMapper; + + @Autowired + private QuartzProjectAttendanceUserMapper quartzProjectAttendanceUserMapper; + + @Autowired + private QuartzProjectAttendanceGroupMapper quartzProjectAttendanceGroupMapper; + + @Autowired + private QuartzProAttendanceCfgMapper cfgMapper; + + + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + @Override + public QuartzProjectAttendanceData selectSurProjectAttendanceDataById(Long id) + { + return quartzProjectAttendanceDataMapper.selectSurProjectAttendanceDataById(id); + } + + /** + * 查询劳务实名制管理列表 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理 + */ + @Override + public List selectSurProjectAttendanceDataList(QuartzProjectAttendanceData quartzProjectAttendanceData) + { + return quartzProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(quartzProjectAttendanceData); + } + + /** + * 查询考勤信息 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + @Override + public QuartzProjectAttendanceData findCurrentAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData){ + return quartzProjectAttendanceDataMapper.findCurrentAttendanceData(quartzProjectAttendanceData); + } + + @Override + public List selectSurProjectAttendanceDataListEx(QuartzProjectAttendanceData quartzProjectAttendanceData) + { + return quartzProjectAttendanceDataMapper.selectSurProjectAttendanceDataListEx(quartzProjectAttendanceData); + } + + /** + * 新增劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData) + { + String userName= SecurityUtils.getUsername(); + quartzProjectAttendanceData.setCreateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); + + return quartzProjectAttendanceDataMapper.insertSurProjectAttendanceData(quartzProjectAttendanceData); + } + + /** + * 修改劳务实名制管理 + * + * @param quartzProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceData(QuartzProjectAttendanceData quartzProjectAttendanceData) + { + String userName=SecurityUtils.getUsername(); + quartzProjectAttendanceData.setUpdateBy(StrUtil.isEmpty(userName)?"task":userName); + + quartzProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); + return quartzProjectAttendanceDataMapper.updateSurProjectAttendanceData(quartzProjectAttendanceData); + } + + /** + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的劳务实名制管理主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataByIds(Long[] ids) + { + return quartzProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByIds(ids); + } + + /** + * 删除劳务实名制管理信息 + * + * @param id 劳务实名制管理主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataById(Long id) + { + return quartzProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id); + } + + /** + * 批量删除劳务实名制管理 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataByParams(List list) { + return quartzProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByParams(list); + } + + /** + * 批量新增劳务实名制考勤管理 + * + * @param quartzProjectAttendanceDataList 劳务实名制考勤管理列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceData(List quartzProjectAttendanceDataList) { + return quartzProjectAttendanceDataMapper.batchSurProjectAttendanceData(quartzProjectAttendanceDataList,DateUtils.dateTimeNow(DateUtils.YYYY)); + } + + @Override + public void add(QuartzProjectAttendanceData sdata) { + if(StringUtils.isEmpty(sdata.getWorkerId()) || StringUtils.isEmpty(sdata.getAttendanceTime())){ + return; + } + QuartzProjectAttendanceData where=new QuartzProjectAttendanceData(); + where.setVendorsCode(sdata.getVendorsCode()); + where.setCfgid(sdata.getCfgid()); + where.setWorkerId(sdata.getWorkerId()); + where.setAttendanceTime(sdata.getAttendanceTime()); + List list=selectSurProjectAttendanceDataListEx(where); + if(list.size()==0){ + //设置考勤其它参数 + //查询人员信息 + QuartzProjectAttendanceUser userWhere=new QuartzProjectAttendanceUser(); + userWhere.setWorkerId(sdata.getWorkerId()); + List uList= quartzProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(userWhere); + if(uList.size()==0){ + return; + } + QuartzProjectAttendanceUser 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()); + } + //查询分组信息 + QuartzProjectAttendanceGroup groupWhere=new QuartzProjectAttendanceGroup(); + groupWhere.setCfgid(sdata.getCfgid()); + groupWhere.setCompanyId(sdata.getCompanyId()); + List gList= quartzProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(groupWhere); + if(gList.size()==0){ + return; + } + QuartzProjectAttendanceGroup 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()); + } + //查询项目部门信息 + QuartzProAttendanceCfg cfgWhere=new QuartzProAttendanceCfg(); + cfgWhere.setId(sdata.getCfgid()); + List cfgList= cfgMapper.selectProAttendanceCfgList(cfgWhere); + if(cfgList.size()==0){ + return; + } + QuartzProAttendanceCfg cfg=cfgList.get(0); + sdata.setProjectId(cfg.getProjectId()); + sdata.setDeptId(cfg.getDeptId()); + sdata.setProjectName(cfg.getProjectName()); + sdata.setDeptName(cfg.getDeptName()); + if(sdata.getCompanyTypeId()==null){ + sdata.setCompanyTypeId("0"); + } + insertSurProjectAttendanceData(sdata); + }else{ + sdata.setId(list.get(0).getId()); + QuartzProjectAttendanceData 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 quartzProjectAttendanceDataMapper.findHuaZhuCompanyType(groupName); + } + + @Override + public String getLastServerId(QuartzProjectAttendanceData where) { + return ""+ quartzProjectAttendanceDataMapper.getLastServerId(where); + } + + @Override + public List groupByComany(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.groupByComany(where); + } + + @Override + public Long getHuazhuPage( QuartzProjectAttendanceData attWhere) { + return quartzProjectAttendanceDataMapper.getHuazhuPage(attWhere); + } + + @Override + public List groupAllByComany(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.groupAllByComany(where); + } + + + @Override + public List> initHuaZhuData(Map data) { + List> dataList = new ArrayList<>(); + List> list = quartzProjectAttendanceDataMapper.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= quartzProjectAttendanceUserMapper.todayAttendanceOtherData(data); + for (Map map:list) { + for(QuartzProjectAttendanceUser 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(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.todayAttendance(where); + } + + /** + * 统计所有数据 + * @param where + * @return + */ + @Override + public List> groupAllByParams(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.findGroupAllByParams(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + @Override + public List> findGroupAllByDays(QuartzProjectAttendanceData where){ + return quartzProjectAttendanceDataMapper.findGroupAllByDays(where); + } + + /** + * 统计考勤数据 + * @param where + * @return + */ + @Override + public List> groupDataByParams(QuartzProjectAttendanceData where){ + return quartzProjectAttendanceDataMapper.groupDataByParams(where); + } + + /** + * 考勤数据列表 + * @param where + * @return + */ + @Override + public List attendanceDataList(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.attendanceDataList(where); + } + + @Override + public List groupTodayCompanyTypeId(QuartzProjectAttendanceData where) { + return quartzProjectAttendanceDataMapper.groupTodayCompanyTypeId(where); + } + + /** + * 批量增加 + * @param addList + */ + @Override + public void addList(List addList) { + if(addList.size()==0){ + return; + } + QuartzProjectAttendanceData where=new QuartzProjectAttendanceData(); + where.setVendorsCode(addList.get(0).getVendorsCode()); + where.setCfgid(addList.get(0).getCfgid()); + where.setAttendanceTime(addList.get(0).getAttendanceTime()); + List oldList=selectSurProjectAttendanceDataListEx(where); + for(QuartzProjectAttendanceData sdata:addList){ + List list=oldList.stream().filter(d->d.getWorkerId().equals(sdata.getWorkerId())).collect(Collectors.toList()); + if(list.size()==0){ + //设置考勤其它参数 + //查询人员信息 + QuartzProjectAttendanceUser userWhere=new QuartzProjectAttendanceUser(); + userWhere.setWorkerId(sdata.getWorkerId()); + List uList= quartzProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(userWhere); + if(uList.size()==0){ + return; + } + QuartzProjectAttendanceUser 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()); + } + //查询分组信息 + QuartzProjectAttendanceGroup groupWhere=new QuartzProjectAttendanceGroup(); + groupWhere.setCfgid(sdata.getCfgid()); + groupWhere.setCompanyId(sdata.getCompanyId()); + List gList= quartzProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(groupWhere); + if(gList.size()==0){ + return; + } + QuartzProjectAttendanceGroup 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()); + } + //查询项目部门信息 + QuartzProAttendanceCfg cfgWhere=new QuartzProAttendanceCfg(); + cfgWhere.setId(sdata.getCfgid()); + List cfgList= cfgMapper.selectProAttendanceCfgList(cfgWhere); + if(cfgList.size()==0){ + return; + } + QuartzProAttendanceCfg cfg=cfgList.get(0); + sdata.setProjectId(cfg.getProjectId()); + sdata.setDeptId(cfg.getDeptId()); + sdata.setProjectName(cfg.getProjectName()); + sdata.setDeptName(cfg.getDeptName()); + if(sdata.getCompanyTypeId()==null){ + sdata.setCompanyTypeId("0"); + } + insertSurProjectAttendanceData(sdata); + }else{ + sdata.setId(list.get(0).getId()); + QuartzProjectAttendanceData 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/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceGroupServiceImpl.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceGroupServiceImpl.java new file mode 100644 index 00000000..547bee56 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceGroupServiceImpl.java @@ -0,0 +1,166 @@ +package com.yanzhu.job.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.security.utils.SecurityUtils; +import com.yanzhu.job.domain.QuartzProjectAttendanceGroup; +import com.yanzhu.job.mapper.QuartzProjectAttendanceGroupMapper; +import com.yanzhu.job.service.IQuartzProjectAttendanceGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 广联达班组信息Service业务层处理 + * + * @author ruoyi + * @date 2023-09-26 + */ +@Service +public class QuartzProjectAttendanceGroupServiceImpl implements IQuartzProjectAttendanceGroupService +{ + @Autowired + private QuartzProjectAttendanceGroupMapper quartzProjectAttendanceGroupMapper; + + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + @Override + public QuartzProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id) + { + return quartzProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupById(id); + } + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息 + */ + @Override + public List selectSurProjectAttendanceGroupViewList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup) + { + return quartzProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupViewList(quartzProjectAttendanceGroup); + } + + /** + * 查询广联达班组信息列表 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup) { + return quartzProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(quartzProjectAttendanceGroup); + } + /** + * 新增广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup) + { + String userName= SecurityUtils.getUsername(); + quartzProjectAttendanceGroup.setCreateBy(StrUtil.isEmpty(userName)?"task":userName); + quartzProjectAttendanceGroup.setCreateTime(DateUtils.getNowDate()); + return quartzProjectAttendanceGroupMapper.insertSurProjectAttendanceGroup(quartzProjectAttendanceGroup); + } + + /** + * 修改广联达班组信息 + * + * @param quartzProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceGroup(QuartzProjectAttendanceGroup quartzProjectAttendanceGroup) + { + String userName= SecurityUtils.getUsername(); + quartzProjectAttendanceGroup.setUpdateBy(StrUtil.isEmpty(userName)?"task":userName); + + quartzProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate()); + return quartzProjectAttendanceGroupMapper.updateSurProjectAttendanceGroup(quartzProjectAttendanceGroup); + } + + /** + * 批量删除广联达班组信息 + * + * @param ids 需要删除的广联达班组信息主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupByIds(Long[] ids) + { + return quartzProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupByIds(ids); + } + + /** + * 删除广联达班组信息信息 + * + * @param id 广联达班组信息主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupById(Long id) + { + return quartzProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupById(id); + } + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupByParams(List list) { + return quartzProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupByParams(list); + } + + /** + * 批量新增广联达班组信息 + * + * @param quartzProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceGroup(List quartzProjectAttendanceGroupList) { + return quartzProjectAttendanceGroupMapper.batchSurProjectAttendanceGroup(quartzProjectAttendanceGroupList); + } + + @Override + public void add(QuartzProjectAttendanceGroup group) { + QuartzProjectAttendanceGroup where=new QuartzProjectAttendanceGroup(); + 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(QuartzProjectAttendanceGroup group) { + QuartzProjectAttendanceGroup where=new QuartzProjectAttendanceGroup(); + where.setBizLicense(group.getBizLicense()); + where.setCompanyName(group.getCompanyName()); + where.setCfgid(group.getCfgid()); + List list=selectSurProjectAttendanceGroupList(where); + for(QuartzProjectAttendanceGroup g:list){ + g.setCompanyTypeId(group.getCompanyTypeId()); + updateSurProjectAttendanceGroup(g); + } + } +} diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceUserServiceImpl.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceUserServiceImpl.java new file mode 100644 index 00000000..34417b0c --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/service/impl/QuartzProjectAttendanceUserServiceImpl.java @@ -0,0 +1,315 @@ +package com.yanzhu.job.service.impl; + +import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.utils.StringUtils; +import com.yanzhu.job.domain.QuartzProAttendanceCfg; +import com.yanzhu.job.domain.QuartzProjectAttendanceData; +import com.yanzhu.job.domain.QuartzProjectAttendanceUser; +import com.yanzhu.job.mapper.QuartzProjectAttendanceUserMapper; +import com.yanzhu.job.service.IQuartzProjectAttendanceUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 考勤人员基本属性Service业务层处理 + * + * @author ruoyi + * @date 2023-09-24 + */ +@Service +public class QuartzProjectAttendanceUserServiceImpl implements IQuartzProjectAttendanceUserService +{ + @Autowired + private QuartzProjectAttendanceUserMapper quartzProjectAttendanceUserMapper; + + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + @Override + public QuartzProjectAttendanceUser selectSurProjectAttendanceUserById(Long id) + { + return quartzProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id); + } + + /** + * 查询考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + @Override + public QuartzProjectAttendanceUser findCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser) { + return quartzProjectAttendanceUserMapper.findCurrentAttendanceUser(quartzProjectAttendanceUser); + } + + /** + * 查询[研筑]考勤人员信息 + * + * @param quartzProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public QuartzProjectAttendanceUser findYzCurrentAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser){ + return quartzProjectAttendanceUserMapper.findYzCurrentAttendanceUser(quartzProjectAttendanceUser); + } + + /** + * 查询考勤人员基本属性列表 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性 + */ + @Override + public List selectSurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser) + { + return quartzProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(quartzProjectAttendanceUser); + } + + /** + * 新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser) + { + if(StringUtils.isEmpty(quartzProjectAttendanceUser.getCreateBy())){ + quartzProjectAttendanceUser.setCreateBy("task"); + quartzProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); + } + return quartzProjectAttendanceUserMapper.insertSurProjectAttendanceUser(quartzProjectAttendanceUser); + } + + /** + * 修改考勤人员基本属性 + * + * @param quartzProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceUser(QuartzProjectAttendanceUser quartzProjectAttendanceUser) + { + if(StringUtils.isEmpty(quartzProjectAttendanceUser.getCreateBy())){ + quartzProjectAttendanceUser.setUpdateBy("task"); + } + quartzProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); + return quartzProjectAttendanceUserMapper.updateSurProjectAttendanceUser(quartzProjectAttendanceUser); + } + + /** + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的考勤人员基本属性主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserByIds(Long[] ids) + { + return quartzProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByIds(ids); + } + + /** + * 删除考勤人员基本属性信息 + * + * @param id 考勤人员基本属性主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserById(Long id) + { + return quartzProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id); + } + + /** + * 批量删除考勤人员基本属性 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserByParams(List list) { + return quartzProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByParams(list); + } + + /** + * 批量新增考勤人员基本属性 + * + * @param quartzProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceUser(List quartzProjectAttendanceUserList) { + return quartzProjectAttendanceUserMapper.batchSurProjectAttendanceUser(quartzProjectAttendanceUserList); + } + + @Override + public void add(QuartzProjectAttendanceUser user) { + QuartzProjectAttendanceUser where=new QuartzProjectAttendanceUser(); + where.setWorkerId(user.getWorkerId()); + where.setCfgid(user.getCfgid()); + List list=selectSurProjectAttendanceUserList(where); + if(list.size()==0){ + insertSurProjectAttendanceUser(user); + }else{ + QuartzProjectAttendanceUser 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(QuartzProjectAttendanceUser where) { + List list= quartzProjectAttendanceUserMapper.queryAttendanceUsers(where); + List workerIds=new ArrayList<>(); + for(QuartzProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + where.setWorkerIds(workerIds); + List datas= quartzProjectAttendanceUserMapper.todayAttendanceData(workerIds); + for (QuartzProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countTodayAttendance(QuartzProjectAttendanceUser where) { + return quartzProjectAttendanceUserMapper.countTodayAttendance(where); + } + + @Override + public List todayAttendance(QuartzProjectAttendanceUser where) { + if(where.getIndex()<1){ + where.setIndex(1); + } + where.setIndex((where.getIndex()-1)* where.getSize()); + List list= quartzProjectAttendanceUserMapper.todayAttendance(where); + List workerIds=new ArrayList<>(); + for(QuartzProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + List datas= quartzProjectAttendanceUserMapper.todayAttendanceData(workerIds); + for (QuartzProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countAttendance(QuartzProjectAttendanceUser user) { + QuartzProAttendanceCfg where=new QuartzProAttendanceCfg(); + where.setCreateBy(user.getCreateBy()); + where.setDeptId(user.getSubDeptId()); + where.setProjectId(user.getProjectId()); + return quartzProjectAttendanceUserMapper.countAttendance(where); + } + + @Override + public List selectSurProjectAttendanceUserListJgw(QuartzProjectAttendanceUser quartzProjectAttendanceUser) { + return quartzProjectAttendanceUserMapper.selectSurProjectAttendanceUserListJgw(quartzProjectAttendanceUser); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerOnDuty(QuartzProjectAttendanceUser where) { + return quartzProjectAttendanceUserMapper.queryWorkerOnDuty(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(QuartzProjectAttendanceUser where){ + return quartzProjectAttendanceUserMapper.groupUserByParams(where); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List attendanceUserList(QuartzProjectAttendanceUser where){ + return quartzProjectAttendanceUserMapper.attendanceUserList(where); + } + + /** + * 统计人员数据 + * @param projectId + * @return + */ + @Override + public List> findUserAllByDays(Long projectId){ + return quartzProjectAttendanceUserMapper.findUserAllByDays(projectId); + } + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerOnDutyByDept(QuartzProjectAttendanceUser where) { + return quartzProjectAttendanceUserMapper.groupByWorkerOnDutyByDept(where); + } + + @Override + public List querySurProjectAttendanceUserList(QuartzProjectAttendanceUser quartzProjectAttendanceUser) { + return quartzProjectAttendanceUserMapper.querySurProjectAttendanceUserList(quartzProjectAttendanceUser); + } + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerByDept(QuartzProjectAttendanceUser where) { + return quartzProjectAttendanceUserMapper.groupByWorkerByDept(where); + } + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerByState(QuartzProjectAttendanceUser where) { + return quartzProjectAttendanceUserMapper.queryWorkerByState(where); + } + + private Date findDate(List datas, QuartzProjectAttendanceUser u, String type) { + for (QuartzProjectAttendanceUser 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/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceSzjTask.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceSzjTask.java index e7c30b14..28ce6e97 100644 --- a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceSzjTask.java +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceSzjTask.java @@ -1,33 +1,25 @@ package com.yanzhu.job.task; -import cn.hutool.core.codec.Base64; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.enums.*; import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.utils.DateUtils; -import com.yanzhu.common.core.utils.Md5Utils; import com.yanzhu.common.core.utils.StringUtils; -import com.yanzhu.common.core.utils.file.FileUtils; import com.yanzhu.common.core.utils.http.HttpUtils; import com.yanzhu.common.redis.service.RedisService; -import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.job.domain.*; import com.yanzhu.job.service.*; import com.yanzhu.system.api.RemoteFileService; import com.yanzhu.system.api.RemoteUserService; -import com.yanzhu.system.api.domain.SysUser; import lombok.extern.slf4j.Slf4j; import okhttp3.*; -import org.apache.logging.log4j.util.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; import java.util.*; import java.util.concurrent.TimeUnit; @@ -54,20 +46,18 @@ public class AttendanceSzjTask { @Autowired private RemoteUserService remoteUserService; - @Autowired - private IQuartzProSubdeptsService quartzProSubdeptsService; - - @Autowired - private IQuartzProSubdeptsGroupService quartzProSubdeptsGroupService; - - @Autowired - private IQuartzProSubdeptsUsersService quartzProSubdeptsUsersService; - @Autowired private IQuartzProAttendanceCfgService quartzProAttendanceCfgService; @Autowired - private IQuartzProAttendanceDataService quartzProAttendanceDataService; + private IQuartzProjectAttendanceGroupService groupService; + + @Autowired + private IQuartzProjectAttendanceUserService userService; + + @Autowired + private IQuartzProjectAttendanceDataService attendanceDataService; + private final String code = "szj"; private static final String SZJ_HOST = "https://sc.uni-ubi.com/sc/api/"; @@ -109,40 +99,238 @@ public class AttendanceSzjTask { AttendanceSzjTask task = new AttendanceSzjTask(); String secret = "185677eed140468fbb7d4dc47c1b2806"; String token = task.getToken(secret); - task.testEnterpriseQuery(token); + //List enterpriseInfos= task.getEnterpriseQuery(token); + //task.testTeamQuery(token,enterpriseInfos); + //task.testPersonQuery(token); + task.testAttendanceQuery(token); } - public void testEnterpriseQuery(String token){ + private void testAttendanceQuery(String token){ + Map headerMap = new HashMap<>(); + headerMap.put("token",token); + Map params = new HashMap<>(); + try { + params.put("offset",5); + params.put("recordSize",5); + params.put("startTime","2025-06-01"); + params.put("endTime","2025-06-07"); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/recognition/query", JSON.toJSONString(params), headerMap); + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + int offset= data.getInteger("offset"); + JSONArray records= data.getJSONArray("list"); + List atts=toAttendance(records); + System.out.println("offset="+offset); + System.out.println(result); + + } + + }catch (Exception e){ + System.out.println(e.getMessage()); + } + + } + + private List toAttendance(JSONArray arr) { + List attendanceList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject jo = arr.getJSONObject(i); + QuartzProjectAttendanceData attendance = new QuartzProjectAttendanceData(); + attendance.setServerid(jo.getString("id")); + if(1==jo.getInteger("doorType")){ + attendance.setAttendanceTime(jo.getString("showTime")); + }else{ + attendance.setAttendanceOutTime(jo.getString("showTime")); + } + attendance.setIdentification(jo.getString("idCardNo")); + attendance.setWorkerName(jo.getString("personName")); + attendance.setScanPhoto(jo.getString("photoUrl")); + attendance.setCompanyName(jo.getString("enterpriseName")); + attendance.setGroupName(jo.getString("teamName")); + attendance.setDeviceCode(jo.getString("deviceKey")); + attendance.setRemark(jo.getString("deviceName")); + attendanceList.add(attendance); + } + return attendanceList; + } + + private void testPersonQuery(String token) { + Map headerMap = new HashMap<>(); + headerMap.put("token",token); + Map params = new HashMap<>(); + try { + params.put("offset",1); + params.put("recordSize",100); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/person/query", JSON.toJSONString(params), headerMap); + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + int total= data.getInteger("total"); + JSONArray records= data.getJSONArray("records"); + List users=toUsers(records); + System.out.println("total="+total); + System.out.println(result); + + } + + }catch (Exception e){ + } + } + + //将json转换为参建人员信息 + private List toUsers(JSONArray arr) { + List users = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject jo = arr.getJSONObject(i); + QuartzProjectAttendanceUser user = new QuartzProjectAttendanceUser(); + user.setWorkerId(jo.getString("id")); + user.setName(jo.getString("personName")); + user.setEthnic(jo.getString("national")); + user.setNativePlace(jo.getString("nativePlace")); + user.setGender("男".equals(jo.getString("gender"))?0L:1L); + user.setBirthDate(DateUtil.parse( jo.getString("birthDate")).getTime()); + user.setPhone(jo.getString("phoneNumber")); + user.setDegreeName(toQualification(jo.getString("qualification"))); + user.setPhoto(jo.getString("faceUrl")); + user.setRecentPhoto(jo.getString("faceUrl")); + user.setGroupId(jo.getString("teamId")); + user.setGroupName(jo.getString("teamName")); + user.setWorkTypeCode(jo.getString("workTypeCode")); + user.setWorkTypeName(jo.getString("workType")); + user.setState(jo.getInteger("personStatus")==1?0L:1L); + String tmp=jo.getString("startTime"); + user.setEnterDate(StringUtils.isEmpty(tmp)?null:DateUtil.formatDateTime( DateUtil.parse(tmp))); + tmp=jo.getString("leftTime"); + user.setExitDate(StringUtils.isEmpty(tmp)?null:DateUtil.formatDateTime( DateUtil.parse(tmp))); + user.setCompanyId(jo.getString("enterpriseId")); + user.setCompanyName(jo.getString("enterpriseName")); + user.setTeamId(jo.getInteger("roleType")); + user.setIdCardNo(jo.getString("idCardNo")); + user.setIdTypeName(jo.getString("idTypeName")); + user.setTeamName(jo.getString("role")); + user.setOther(jo.toString()); + users.add(user); + } + return users; + } + + private String toQualification(String degreeName) { + if("1".equals(degreeName)){ + return "初中"; + } + if("2".equals(degreeName)){ + return "高中"; + } + if("3".equals(degreeName)){ + return "大专"; + } + if("4".equals(degreeName)){ + return "大学"; + } + if("5".equals(degreeName)){ + return "硕士"; + } + if("6".equals(degreeName)){ + return "博士"; + } + return ""; + } + //试参建单位获取 + private List getEnterpriseQuery(String token){ Map headerMap = new HashMap<>(); headerMap.put("token",token); Map params = new HashMap<>(); try { String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/enterprise/query", JSON.toJSONString(params), headerMap); JSONObject jsonObject = JSONObject.parseObject(result); + List list=toEnters(jsonObject); System.out.println(result); + return list; }catch (Exception e){ + log.error("ERROR->",e); + } + return new ArrayList<>(); + } + public void testTeamQuery(String token,List enterpriseInfos){ + Map headerMap = new HashMap<>(); + headerMap.put("token",token); + Map params = new HashMap<>(); + try { + params.put("offset",1); + params.put("recordSize",100); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/team/query", JSON.toJSONString(params), headerMap); + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + int total= data.getInteger("total"); + JSONArray records= data.getJSONArray("records"); + List groups=toGroups(records,enterpriseInfos); + System.out.println("total="+total); + System.out.println(result); + + } + + }catch (Exception e){ } } - public int updateAttendanceGroup(JSONObject jsonObject) { - int result = 0; + + //将json转换为参见班组信息 + private List toGroups(JSONArray records, List enterpriseInfos) { + List groups = new ArrayList<>(); + for (int i = 0; i < records.size(); i++) { + JSONObject jo = records.getJSONObject(i); + QuartzProjectAttendanceGroup group = new QuartzProjectAttendanceGroup(); + group.setServerid(jo.getInteger("id")+""); + SzjEnterpriseInfo szjEnterpriseInfo = findEnterperiseCreditCode(jo.getInteger("enterpriseId"),enterpriseInfos); + group.setBizLicense(szjEnterpriseInfo!=null?szjEnterpriseInfo.getCreditCode():jo.getInteger("enterpriseId")+""); + group.setCompanyId(jo.getInteger("enterpriseId")+""); + group.setCompanyName(jo.getString("enterpriseName")); + group.setCompanyTypeId(jo.getInteger("enterpriseType")+""); + group.setName(jo.getString("teamName")); + group.setTeamId(jo.getLong("id")); + group.setLeaderName(jo.getString("teamLeader")); + group.setLeaderPhone(jo.getString("teamLeaderTel")); + group.setTeamName(jo.getString("teamContact")); + group.setLeaderId(jo.getLongValue("personCount")); + group.setRemark(jo.getString("remark")); + group.setIsDel(jo.getInteger("isDeleted")==0?0L:1L); + groups.add(group); + } + return groups; + } + + private SzjEnterpriseInfo findEnterperiseCreditCode(Integer enterpriseId, List enterpriseInfos) { + for (SzjEnterpriseInfo enterpriseInfo : enterpriseInfos) { + if(enterpriseInfo.getId().equals(enterpriseId)){ + return enterpriseInfo; + } + } + return null; + } + + + //将json转换为参见单位 + public List toEnters(JSONObject jsonObject) { + List szjEnterpriseInfos = new ArrayList<>(); if (jsonObject != null && jsonObject.getBoolean("success")) { JSONArray jsonArray = jsonObject.getJSONArray("data"); if (jsonArray.size() > 0) { for (int i = 0; i < jsonArray.size(); i++) { JSONObject json = jsonArray.getJSONObject(i); - QuartzProSubdepts dept = new QuartzProSubdepts(); - + SzjEnterpriseInfo szjEnterpriseInfo = json.toJavaObject(SzjEnterpriseInfo.class); + szjEnterpriseInfos.add(szjEnterpriseInfo); } } } - return result; + return szjEnterpriseInfos; } /** - * 同步单位及班组信息 + * 同步班组信息 */ - public void syncContractorAndGroupData() { - log.info("开始同步数智建单位&班组信息...{}",DateUtils.dateTimeStr()); + public void syncGroupData() { + log.info("开始同步数智建班组信息...{}",DateUtils.dateTimeStr()); QuartzProAttendanceCfg where = new QuartzProAttendanceCfg(); where.setEnabled(ShiFouEnums.SHI.getCode()); where.setIsDel(ShiFouEnums.FOU.getCode()); @@ -154,92 +342,62 @@ public class AttendanceSzjTask { JSONObject jSONObject = JSON.parseObject(param); try { String token = getToken(jSONObject.getString("secret")); - doSyncProContractor(token, item); - //doSyncDirectlyUnderGroup(jo, 0l, item); + List enterpriseInfos= getEnterpriseQuery(token); + doSyncGroup(token, item,enterpriseInfos,1); } catch (Exception ex) { - ex.printStackTrace(); + log.error("syncGroupData->",ex); } } } } /** - * 查询直属班组 - * - * @param token 请求令牌 - * @param it 配置信息 + * 同步班组信息 + * @param token + * @param cfg 配置信息 + * @param enterpriseInfos 参建单位信息 + * @param pageIndex 页码 */ - private void doSyncProContractor(String token, QuartzProAttendanceCfg it){ - log.info("开始查询数智建参建单位信息...{}",it.getProjectId()); + private void doSyncGroup(String token, QuartzProAttendanceCfg cfg,List enterpriseInfos,int pageIndex) { Map headerMap = new HashMap<>(); headerMap.put("token",token); + Map params = new HashMap<>(); try { - Map params = new HashMap<>(); - String result = HttpUtils.sendJSONPost(SZJ_HOST+"v1/api/enterprise/query",JSON.toJSONString(params),headerMap); + params.put("offset",pageIndex); + params.put("recordSize",100); + params.put("deleted",0); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/team/query", JSON.toJSONString(params), headerMap); JSONObject jsonObject = JSONObject.parseObject(result); - if(jsonObject!=null && jsonObject.getBoolean("success")){ - JSONArray jsonArray = jsonObject.getJSONArray("data"); - if(jsonArray.size()>0){ - for (int i = 0; i < jsonArray.size(); i++){ - JSONObject json = jsonArray.getJSONObject(i); - String subDeptType = convertSubDeptType(json.getString("enterpriseType")); - // 总包单位不同步 - if(!"3".equals(subDeptType)){ - QuartzProSubdepts quartzProSubdeptsQuery = new QuartzProSubdepts(); - quartzProSubdeptsQuery.setProjectId(it.getProjectId()); - quartzProSubdeptsQuery.setSubDeptCode(json.getString("creditCode")); - List list = quartzProSubdeptsService.selectQuartzProSubdeptsList(quartzProSubdeptsQuery); - if(StringUtils.isEmpty(list)){ - QuartzProSubdepts quartzProSubdepts = new QuartzProSubdepts(); - quartzProSubdepts.setComId(it.getComId()); - quartzProSubdepts.setProjectId(it.getProjectId()); - quartzProSubdepts.setSubDeptType(subDeptType); - quartzProSubdepts.setSubDeptName(json.getString("enterpriseName")); - quartzProSubdepts.setSubDeptCode(json.getString("creditCode")); - quartzProSubdepts.setSubDeptLeaderName(json.getString("contactPerson")); - quartzProSubdepts.setSubDeptLeaderPhone(json.getString("contactNumber")); - Map subDeptInfos = new HashMap<>(); - subDeptInfos.put("signDate",json.getString("registTime")); - subDeptInfos.put("address",json.getString("enterpriseAddress")); - subDeptInfos.put("businessAddress",json.getString("enterpriseAddress")); - subDeptInfos.put("officePhone",json.getString("contactNumber")); - quartzProSubdepts.setSubDeptInfos(JSON.toJSONString(subDeptInfos)); - quartzProSubdepts.setUseStatus(UseStateEnums.IN.getCode()); - quartzProSubdepts.setUseDates(DateUtils.getNowDate()); - quartzProSubdepts.setApproveStatus(ApproveStatus.passed.getCode()); - quartzProSubdepts.setSource(code.toUpperCase()+"::"+json.getString("id")); - quartzProSubdepts.setCreateBy("SZJ-TASK"); - quartzProSubdepts.setCreateTime(DateUtils.getNowDate()); - quartzProSubdeptsService.insertQuartzProSubdepts(quartzProSubdepts); - redisService.setCacheObject("doSyncProContractor.szj.contractorId::"+json.getString("id"),quartzProSubdepts,2L,TimeUnit.HOURS); - }else{ - QuartzProSubdepts quartzProSubdepts = list.get(0); - quartzProSubdepts.setSource(code.toUpperCase()+"::"+json.getString("contractorId")); - quartzProSubdeptsService.updateQuartzProSubdepts(quartzProSubdepts); - redisService.setCacheObject("doSyncProContractor.szj.contractorId::"+json.getString("id"),list.get(0),2L,TimeUnit.HOURS); - } - }else{ - QuartzProSubdepts quartzProSubdepts = new QuartzProSubdepts(); - quartzProSubdepts.setComId(it.getComId()); - quartzProSubdepts.setProjectId(it.getProjectId()); - quartzProSubdepts.setSubDeptType(subDeptType); - quartzProSubdepts.setSubDeptName(json.getString("enterpriseName")); - quartzProSubdepts.setSubDeptCode(json.getString("creditCode")); - quartzProSubdepts.setSubDeptLeaderName(json.getString("contactPerson")); - quartzProSubdepts.setSubDeptLeaderPhone(json.getString("contactNumber")); - quartzProSubdepts.setUseStatus(UseStateEnums.IN.getCode()); - quartzProSubdepts.setUseDates(DateUtils.getNowDate()); - quartzProSubdepts.setApproveStatus(ApproveStatus.passed.getCode()); - quartzProSubdepts.setSource(code.toUpperCase()+"::"+json.getString("id")); - quartzProSubdepts.setCreateBy("SZJ-TASK"); - quartzProSubdepts.setCreateTime(DateUtils.getNowDate()); - redisService.setCacheObject("doSyncProContractor.szj.contractorId::"+json.getString("id"),quartzProSubdepts,2L,TimeUnit.HOURS); - } + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + int total= data.getInteger("total"); + JSONArray records= data.getJSONArray("records"); + List groups=toGroups(records,enterpriseInfos); + for(QuartzProjectAttendanceGroup group:groups){ + group.setCfgid(cfg.getId()); + QuartzProjectAttendanceGroup where=new QuartzProjectAttendanceGroup(); + where.setServerid(group.getServerid()); + where.setCfgid(group.getCfgid()); + List list=groupService.selectSurProjectAttendanceGroupList(where); + if(list.size()==0){ + group.setCreateBy("TASK"); + group.setCreateTime(new Date()); + groupService.add(group); + + }else{ + group.setUpdateBy("TASK"); + group.setUpdateTime(new Date()); + group.setId(list.get(0).getId()); + groupService.updateSurProjectAttendanceGroup(group); } } - }; + if(total>pageIndex*100){ + doSyncGroup(token,cfg,enterpriseInfos,pageIndex+1); + } + } + }catch (Exception e){ - e.printStackTrace(); + log.error("doSyncGroup->",e); } } @@ -268,247 +426,211 @@ public class AttendanceSzjTask { } /** - * 查询直属班组 - * - * @param token 请求令牌 - * @param it 配置信息 + * 同步人员 */ - private void doSyncDirectlyUnderGroup(String token, QuartzProAttendanceCfg it) { - log.info("开始同步数智建直属班组信息...{}",it.getProjectId()); - Map headerMap = new HashMap<>(); - headerMap.put("token",token); - Map params = new HashMap<>(); - try { - String result = HttpUtils.sendJSONPost(SZJ_HOST+"v1/api/team/query",JSON.toJSONString(params),headerMap); - JSONObject jsonObject = JSONObject.parseObject(result); - if(jsonObject!=null && jsonObject.getBoolean("success")) { - JSONArray jsonArray = jsonObject.getJSONArray("data"); - if (jsonArray.size() > 0) { - for (int i = 0; i < jsonArray.size(); i++) { - JSONObject json = jsonArray.getJSONObject(i); - Map dataMap = convertSubJobTypes(json.getString("corpType")); - QuartzProSubdeptsGroup quartzProSubdeptsGroupQuery = new QuartzProSubdeptsGroup(); - quartzProSubdeptsGroupQuery.setProjectId(it.getProjectId()); - quartzProSubdeptsGroupQuery.setGroupName(json.getString("teamName")); - List list = quartzProSubdeptsGroupService.selectQuartzProSubdeptsGroupList(quartzProSubdeptsGroupQuery); - if(StringUtils.isEmpty(list)){ - QuartzProSubdepts quartzProSubdepts = redisService.getCacheObject("doSyncProContractor.contractorId::"+json.getString("contractorId")); - QuartzProSubdeptsGroup quartzProSubdeptsGroup = new QuartzProSubdeptsGroup(); - quartzProSubdeptsGroup.setComId(it.getComId()); - quartzProSubdeptsGroup.setProjectId(it.getProjectId()); - quartzProSubdeptsGroup.setSubDeptId(quartzProSubdepts.getId()); - quartzProSubdeptsGroup.setSubDeptType(quartzProSubdepts.getSubDeptType()); - quartzProSubdeptsGroup.setSubDeptName(quartzProSubdepts.getSubDeptName()); - quartzProSubdeptsGroup.setSubDeptCode(quartzProSubdepts.getSubDeptCode()); - quartzProSubdeptsGroup.setGroupName(json.getString("teamName")); - if(StringUtils.eqObj(dataMap.get("type"),"2")){ - quartzProSubdeptsGroup.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); - }else if(StringUtils.eqObj(dataMap.get("type"),"3")){ - quartzProSubdeptsGroup.setGroupCode(DeptGroupEnums.MANAGE.getCode()); - } - quartzProSubdeptsGroup.setCraftType(dataMap.get("type")); - quartzProSubdeptsGroup.setCraftPost(dataMap.get("post")); - quartzProSubdeptsGroup.setUseStatus(UseStateEnums.IN.getCode()); - quartzProSubdeptsGroup.setApproveStatus(ApproveStatus.passed.getCode()); - quartzProSubdeptsGroup.setIsDel(Convert.toLong(json.getString("deleteFlag"),0L)); - quartzProSubdeptsGroup.setCreateBy("JGW-TASK"); - quartzProSubdeptsGroup.setCreateTime(DateUtils.getNowDate()); - quartzProSubdeptsGroup.setSource(code.toUpperCase()+"::"+json.getString("id")); - quartzProSubdeptsGroupService.insertQuartzProSubdeptsGroup(quartzProSubdeptsGroup); - redisService.setCacheObject("doSyncDirectlyUnderGroup.jgw.teamLeaderId::"+json.getString("leaderId"),quartzProSubdeptsGroup,2L,TimeUnit.HOURS); - }else{ - QuartzProSubdeptsGroup quartzProSubdeptsGroup = list.get(0); - quartzProSubdeptsGroup.setSource(code.toUpperCase()+"::"+json.getString("id")); - quartzProSubdeptsGroup.setIsDel(Convert.toLong(json.getString("deleteFlag"),0L)); - quartzProSubdeptsGroup.setUpdateBy("JGW-TASK"); - quartzProSubdeptsGroup.setUpdateTime(DateUtils.getNowDate()); - quartzProSubdeptsGroupService.updateQuartzProSubdeptsGroup(quartzProSubdeptsGroup); - redisService.setCacheObject("doSyncDirectlyUnderGroup.jgw.teamLeaderId::"+json.getString("leaderId"),quartzProSubdeptsGroup,2L,TimeUnit.HOURS); - } - } + public void syncUser() { + log.info("开始同步数智建人员信息...{}",DateUtils.dateTimeStr()); + QuartzProAttendanceCfg where = new QuartzProAttendanceCfg(); + where.setEnabled(ShiFouEnums.SHI.getCode()); + where.setIsDel(ShiFouEnums.FOU.getCode()); + where.setVendorsCode(code); + List list = quartzProAttendanceCfgService.selectProAttendanceCfgList(where); + for (QuartzProAttendanceCfg item : list) { + String param = item.getVendorsParameter(); + if (StringUtils.isNotEmpty(param)) { + JSONObject jSONObject = JSON.parseObject(param); + try { + String token = getToken(jSONObject.getString("secret")); + doSyncUser(token, item,1); + } catch (Exception ex) { + log.error("syncUser->",ex); } } - }catch (Exception e){ - e.printStackTrace(); } } /** - * 转换工种类型 - * @param jobTypes - * @return + * 执行同步人员 + * @param token + * @param cfg + * @param pageIndex */ - private Map convertSubJobTypes(String jobTypes){ - Map dataMap = new HashMap<>(); - if(StringUtils.isEmpty(jobTypes)){ - dataMap.put("type","3"); - dataMap.put("post","4037"); - return dataMap; + private void doSyncUser(String token, QuartzProAttendanceCfg cfg, int pageIndex) { + Map headerMap = new HashMap<>(); + headerMap.put("token",token); + Map params = new HashMap<>(); + try { + params.put("offset",1); + params.put("recordSize",100); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/person/query", JSON.toJSONString(params), headerMap); + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + int total= data.getInteger("total"); + JSONArray records= data.getJSONArray("records"); + List users=toUsers(records); + for(QuartzProjectAttendanceUser user:users) { + user.setCfgid(cfg.getId()); + user.setVendorsCode(cfg.getVendorsCode()); + QuartzProjectAttendanceUser where = new QuartzProjectAttendanceUser(); + where.setWorkerId(user.getWorkerId()); + where.setCfgid(user.getCfgid()); + List list=userService.selectSurProjectAttendanceUserList(where); + if(list.size()==0){ + user.setCreateBy("TASK"); + user.setCreateTime(new Date()); + userService.add(user); + }else{ + user.setUpdateBy("TASK"); + user.setUpdateTime(new Date()); + user.setId(list.get(0).getId()); + userService.updateSurProjectAttendanceUser(user); + } + } + if(total>pageIndex*100){ + doSyncUser(token,cfg,pageIndex+1); + } + + } + + }catch (Exception e){ + log.error("doSyncUser-->",e); } - switch (jobTypes){ - case "3001" : dataMap.put("type","2");dataMap.put("post","1015"); break; - case "3002" : dataMap.put("type","2");dataMap.put("post","1014"); break; - case "3003" : - case "3004" : dataMap.put("type","2");dataMap.put("post","2021"); break; - case "3005" : dataMap.put("type","2");dataMap.put("post","2022"); break; - case "3006" : dataMap.put("type","2");dataMap.put("post","1013"); break; - case "3007" : dataMap.put("type","1");dataMap.put("post","1006"); break; - case "3008" : dataMap.put("type","1");dataMap.put("post","1004"); break; - case "3009" : dataMap.put("type","1");dataMap.put("post","1001"); break; - case "3010" : dataMap.put("type","1");dataMap.put("post","1003"); break; - case "3011" : dataMap.put("type","1");dataMap.put("post","1017"); break; - case "3012" : dataMap.put("type","1");dataMap.put("post","1007"); break; - case "3013" : dataMap.put("type","1");dataMap.put("post","1008"); break; - case "3014" : dataMap.put("type","1");dataMap.put("post","1009"); break; - case "3015" : dataMap.put("type","1");dataMap.put("post","1012"); break; - case "3016" : dataMap.put("type","3");dataMap.put("post","3024"); break; - case "3017" : dataMap.put("type","1");dataMap.put("post","1010"); break; - case "3018" : dataMap.put("type","3");dataMap.put("post","3025"); break; - case "3019" : dataMap.put("type","2");dataMap.put("post","2017"); break; - case "3020" : dataMap.put("type","2");dataMap.put("post","2018"); break; - case "3021" : dataMap.put("type","2");dataMap.put("post","2016"); break; - case "3031" : - case "3032" : - case "3042" : dataMap.put("type","2");dataMap.put("post","2019"); break; - case "3072" : - case "3039" : - case "6002" : - case "6003" : - case "6004" : - case "6005" : - case "6006" : - case "6007" : - case "6008" : - case "6009" : - case "6010" : - case "6012" : - case "6013" : - case "6014" : - case "6015" : - case "6016" : - case "6017" : - case "6018" : - case "6019" : - case "6020" : - case "6021" : - case "6022" : - case "6023" : - case "6024" : - case "6025" : - case "6026" : - case "6027" : - case "6028" : - case "6029" : - case "6030" : - case "6031" : - case "6032" : - case "6033" : - case "6034" : - case "6035" : - case "6036" : - case "6037" : - case "6038" : - case "6039" : - case "6040" : - case "6041" : - case "6042" : - case "6043" : - case "6044" : - case "6045" : - case "6046" : - case "6047" : - case "6048" : - case "6049" : - case "6050" : - case "6051" : - case "6052" : - case "6053" : - case "6054" : - case "6055" : - case "6056" : - case "6057" : - case "6058" : - case "6059" : - case "6060" : - case "6061" : - case "6062" : - case "6063" : - case "6064" : - case "6065" : - case "6066" : - case "6067" : - case "6068" : - case "6069" : - case "6070" : - case "6071" : - case "6072" : - case "6073" : - case "6074" : - case "6075" : - case "6076" : - case "6077" : - case "6078" : - case "6079" : - case "6080" : - case "6081" : - case "6082" : - case "6083" : - case "6084" : - case "6085" : - case "6086" : - case "6087" : - case "6088" : - case "6089" : - case "6090" : - case "6091" : - case "6092" : - case "6093" : - case "6094" : - case "6095" : - case "6096" : - case "6097" : - case "6001" : dataMap.put("type","3");dataMap.put("post","4037"); break; - case "6011" : dataMap.put("type","3");dataMap.put("post","3023"); break; - case "3036" : - case "3054" : - case "3056" : - case "3057" : - case "3058" : - case "3059" : - case "3060" : - case "3061" : - case "3062" : - case "3063" : - case "3064" : - case "3065" : - case "3055" : dataMap.put("type","1");dataMap.put("post","8888"); break; - case "3041" : - case "3040" : - case "3037" : - case "3038" : - case "3043" : - case "3044" : - case "3045" : - case "3046" : - case "3047" : - case "3048" : - case "3049" : - case "3050" : - case "3051" : - case "3052" : - case "3053" : - case "3033" : - case "3066" : - case "3067" : - case "3068" : - case "3069" : - case "3070" : - case "3035" : - case "3071" : - case "3034" : dataMap.put("type","2");dataMap.put("post","9999"); break; - default : dataMap.put("type","3");dataMap.put("post","4037"); break; + } + + /** + * 同步当日考勤记录 + */ + public void syncAttendanceData() { + log.info("开始同步数智建考勤记录...{}",DateUtils.dateTimeStr()); + String startTime=DateUtil.formatDate(new Date()); + String endTime=DateUtil.formatDate(new Date()); + syncAttendanceData(startTime,endTime); + } + + /** + * 同步最后一周考勤记录 + */ + public void syncLastWeekAttendanceData() { + log.info("开始同步数智建考勤记录...{}",DateUtils.dateTimeStr()); + String startTime=DateUtil.formatDate(DateUtil.offsetDay(new Date(),-7)); + String endTime=DateUtil.formatDate(new Date()); + syncAttendanceData(startTime,endTime); + } + + /** + * 同步最近30天考勤记录 + */ + public void syncLast30DayAttendanceData() { + log.info("开始同步数智建考勤记录...{}",DateUtils.dateTimeStr()); + Date date=DateUtil.offsetDay(new Date(),-30); + for(int i=0;i<30;i+=7){ + String startTime=DateUtil.formatDate(DateUtil.offsetDay(date,i)); + String endTime=DateUtil.formatDate(DateUtil.offsetDay(date,i+7)); + syncAttendanceData(startTime,endTime); + } + } + + private void syncAttendanceData(String startTime, String endTime) { + QuartzProAttendanceCfg where = new QuartzProAttendanceCfg(); + where.setEnabled(ShiFouEnums.SHI.getCode()); + where.setIsDel(ShiFouEnums.FOU.getCode()); + where.setVendorsCode(code); + List list = quartzProAttendanceCfgService.selectProAttendanceCfgList(where); + for (QuartzProAttendanceCfg item : list) { + String param = item.getVendorsParameter(); + if (StringUtils.isNotEmpty(param)) { + JSONObject jSONObject = JSON.parseObject(param); + try { + String token = getToken(jSONObject.getString("secret")); + doSyncAttendance(token, item,0,startTime,endTime); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + } + + private void doSyncAttendance(String token, QuartzProAttendanceCfg cfg, int offset, String startTime, String endTime) { + Map headerMap = new HashMap<>(); + headerMap.put("token",token); + Map params = new HashMap<>(); + try { + params.put("offset",offset); + params.put("recordSize",100); + params.put("startTime",startTime); + params.put("endTime",endTime); + String result = HttpUtils.sendJSONPost(SZJ_HOST + "v1/api/recognition/query", JSON.toJSONString(params), headerMap); + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject != null && jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + offset= data.getInteger("offset"); + JSONArray records= data.getJSONArray("list"); + List atts=toAttendance(records); + for(QuartzProjectAttendanceData att:atts) { + att.setCfgid(cfg.getId()); + att.setVendorsCode(cfg.getVendorsCode()); + att.setProjectId(cfg.getProjectId()); + att.setProjectName(cfg.getProjectName()); + att.setDeptId(cfg.getDeptId()); + att.setDeptName(cfg.getDeptName()); + + QuartzProjectAttendanceUser userWhere=new QuartzProjectAttendanceUser(); + userWhere.setIdCardNo(att.getIdentification()); + userWhere.setCfgid(cfg.getId()); + List userList=userService.selectSurProjectAttendanceUserList(userWhere); + if(userList.isEmpty()){ + continue; + } + QuartzProjectAttendanceUser user=userList.get(0); + att.setWorkerId(user.getWorkerId()); + att.setWorkerName(user.getName()); + att.setWorkerPhoto(user.getPhoto()); + att.setWorkerGender(user.getGender()); + att.setBirthDate(user.getBirthDate()); + att.setEthnic(user.getEthnic()); + att.setNativePlace(user.getNativePlace()); + att.setPhone(user.getPhone()); + att.setWorkTypeName(user.getWorkTypeName()); + att.setGroupName(user.getGroupName()); + att.setCompanyName(user.getCompanyName()); + att.setCompanyTypeId(user.getCompanyTypeId()); + QuartzProjectAttendanceGroup groupWhere=new QuartzProjectAttendanceGroup(); + List groupList=groupService.selectSurProjectAttendanceGroupList(groupWhere); + if(!groupList.isEmpty()){ + QuartzProjectAttendanceGroup group=groupList.get(0); + att.setCompanyTypeId(group.getCompanyTypeId()); + } + groupWhere.setTeamId(NumberUtil.parseLong(user.getCompanyId())); + QuartzProjectAttendanceData where = new QuartzProjectAttendanceData(); + where.setWorkerId(att.getWorkerId()); + where.setCfgid(att.getCfgid()); + if(StringUtils.isNotEmpty(att.getAttendanceTime())){ + where.setAttendanceTime(att.getAttendanceTime()); + } + if(StringUtils.isNotEmpty(att.getAttendanceOutTime())){ + where.setAttendanceTime(att.getAttendanceOutTime()); + } + List attList=attendanceDataService.selectSurProjectAttendanceDataListEx(where); + if(attList.isEmpty()){ + att.setCreateBy("TASK"); + att.setCreateTime(new Date()); + attendanceDataService.insertSurProjectAttendanceData(att); + }else{ + att.setUpdateBy("TASK"); + att.setUpdateTime(new Date()); + att.setId(attList.get(0).getId()); + attendanceDataService.updateSurProjectAttendanceData(att); + } + } + if(atts.size()==100){ + doSyncAttendance(token,cfg,offset+1,startTime,endTime); + } + } + + }catch (Exception e){ + log.error("doSyncAttendance->",e); } - return dataMap; } } diff --git a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceDataMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceDataMapper.xml new file mode 100644 index 00000000..97b29be6 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceDataMapper.xml @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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} + + + + + + + + + + + + insert into sur_project_attendance_data_${year} + + 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, + + + #{cfgid}, + #{appId}, + #{projectId}, + #{projectName}, + #{deptId}, + #{deptName}, + #{vendorsCode}, + #{serverid}, + #{workerId}, + #{workerName}, + #{identification}, + #{workerPhoto}, + #{workerGender}, + #{birthDate}, + #{ethnic}, + #{nativePlace}, + #{phone}, + #{workTypeName}, + #{specWorkType}, + #{groupName}, + #{companyTypeId}, + #{companyName}, + #{attendanceTime}, + #{attendanceOutTime}, + #{scanPhoto}, + #{teamId}, + #{workTypeCode}, + #{companyId}, + #{vendorId}, + #{deviceCode}, + #{isDel}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + 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}, + 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}, + device_code = #{deviceCode}, + 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_${year} where id = #{id} + + + + 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/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceGroupMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceGroupMapper.xml new file mode 100644 index 00000000..d5072469 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceGroupMapper.xml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + insert into sur_project_attendance_group + + 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, + + + #{cfgid}, + #{appId}, + #{serverid}, + #{bizLicense}, + #{companyCode}, + #{companyId}, + #{companyName}, + #{companyTypeId}, + #{vendorId}, + #{name}, + #{leaderName}, + #{leaderPhone}, + #{teamId}, + #{teamName}, + #{type}, + #{leaderId}, + #{deleted}, + #{createTimestamp}, + #{platformGroupId}, + #{platformTeamId}, + #{enterDate}, + #{exitDate}, + #{remark}, + #{isDel}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update sur_project_attendance_group + + cfgid = #{cfgid}, + app_id = #{appId}, + serverid = #{serverid}, + bizLicense = #{bizLicense}, + companyCode = #{companyCode}, + companyId = #{companyId}, + companyName = #{companyName}, + companyTypeId = #{companyTypeId}, + vendorId = #{vendorId}, + name = #{name}, + leaderName = #{leaderName}, + leaderPhone = #{leaderPhone}, + teamId = #{teamId}, + teamName = #{teamName}, + type = #{type}, + leaderId = #{leaderId}, + deleted = #{deleted}, + createTimestamp = #{createTimestamp}, + platformGroupId = #{platformGroupId}, + platformTeamId = #{platformTeamId}, + enterDate = #{enterDate}, + exitDate = #{exitDate}, + remark = #{remark}, + is_del = #{isDel}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from sur_project_attendance_group where id = #{id} + + + + 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/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceUserMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceUserMapper.xml new file mode 100644 index 00000000..8b050229 --- /dev/null +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProjectAttendanceUserMapper.xml @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT * FROM ( + SELECT a.*,b.project_id,b.dept_id + FROM sur_project_attendance_user a,attendance_cfg b + WHERE a.cfgid=b.id ) + sur_project_attendance_user + + + + + + + + + + + + + insert into sur_project_attendance_user + + cfgid, + app_id, + vendors_code, + workerId, + laborWorkerId, + workerCategory, + qrCode, + name, + idCardNo, + idTypeName, + 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, + + + #{cfgid}, + #{appId}, + #{vendorsCode}, + #{workerId}, + #{laborWorkerId}, + #{workerCategory}, + #{qrCode}, + #{name}, + #{idCardNo}, + #{idTypeName}, + #{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}, + #{isDel}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update sur_project_attendance_user + + cfgid = #{cfgid}, + app_id = #{appId}, + vendors_code = #{vendorsCode}, + workerId = #{workerId}, + laborWorkerId = #{laborWorkerId}, + workerCategory = #{workerCategory}, + qrCode = #{qrCode}, + name = #{name}, + name = #{idCardNo}, + name = #{idTypeName}, + ethnic = #{ethnic}, + nativePlace = #{nativePlace}, + gender = #{gender}, + birthDate = #{birthDate}, + phone = #{phone}, + degreeName = #{degreeName}, + photo = #{photo}, + recentPhoto = #{recentPhoto}, + groupId = #{groupId}, + groupName = #{groupName}, + leader = #{leader}, + workTypeCode = #{workTypeCode}, + workTypeName = #{workTypeName}, + specWorkType = #{specWorkType}, + hatCode = #{hatCode}, + state = #{state}, + enterDate = #{enterDate}, + exitDate = #{exitDate}, + companyId = #{companyId}, + companyName = #{companyName}, + vendorId = #{vendorId}, + teamId = #{teamId}, + teamName = #{teamName}, + enterType = #{enterType}, + other = #{other}, + remark = #{remark}, + is_del = #{isDel}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from sur_project_attendance_user where id = #{id} + + + + 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,idCardNo,idTypeName, 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.idCardNo},#{item.idTypeName},#{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}) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/LaborController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/LaborController.java index adc6287d..9b983989 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/LaborController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/LaborController.java @@ -65,7 +65,7 @@ public class LaborController extends BaseController { @GetMapping("/groupAttendanceLastWeek/{type}/{prjId}") public AjaxResult groupAttendanceLastWeek(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){ Date dateEnd=new DateTime(); - Date dateStart=DateUtil.offsetDay(dateEnd,7); + Date dateStart=DateUtil.offsetDay(dateEnd,-7); if("uni".equals(type.toLowerCase())){ JSONArray sList=attendanceUbiDataService.groupAttendanceLastWeek(prjId,dateStart,dateEnd); return AjaxResult.success(sList); diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java index 6311427a..035f6712 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java @@ -1558,13 +1558,17 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu if(isAdmin){ SysUserExt userExt = new SysUserExt(); userExt.setUserId(loginUser.getUserid()); - userExt.setComId(loginUser.getSysUser().getComId()); + //userExt.setComId(loginUser.getSysUser().getComId()); + List userExts=sysUserExtMapper.selectSysUserExtList(userExt); if(userExts.size()>0){ SysUserExt oldExt = userExts.get(0); - oldExt.setProjectId(id); - oldExt.setIsActive(1l); - sysUserExtMapper.updateSysUserExt(oldExt); + if(!oldExt.getProjectId().equals(id)){ + oldExt.setProjectId(id); + oldExt.setIsActive(1l); + sysUserExtMapper.updateSysUserExt(oldExt); + } + }else{ userExt.setProjectId(id); userExt.setStatus("0"); diff --git a/yanzhu-ui-vue3/src/main.js b/yanzhu-ui-vue3/src/main.js index 0c5feca4..649ecee3 100644 --- a/yanzhu-ui-vue3/src/main.js +++ b/yanzhu-ui-vue3/src/main.js @@ -104,6 +104,9 @@ app.config.globalProperties.$formatDateTime = dt=>{ app.config.globalProperties.$formatTime = dt=>{ return dt?dayjs(dt).format("HH:mm:ss"):"" ; }; +app.config.globalProperties.$formatTime = dt=>{ + return dt?dayjs(dt).format("HH:mm:ss"):"" ; +}; app.config.globalProperties.$http = request; // 全局组件挂载 diff --git a/yanzhu-ui-vue3/src/views/manage/thirdLabor/attendanceData/index.vue b/yanzhu-ui-vue3/src/views/manage/thirdLabor/attendanceData/index.vue index d2f7ba4f..db0d2062 100644 --- a/yanzhu-ui-vue3/src/views/manage/thirdLabor/attendanceData/index.vue +++ b/yanzhu-ui-vue3/src/views/manage/thirdLabor/attendanceData/index.vue @@ -37,14 +37,14 @@