diff --git a/yanzhu-bigscreen/src/api/detail.js b/yanzhu-bigscreen/src/api/detail.js index 0f11fa1e..345db928 100644 --- a/yanzhu-bigscreen/src/api/detail.js +++ b/yanzhu-bigscreen/src/api/detail.js @@ -36,8 +36,8 @@ const attendanceUbiDataList = (data) => { const photographyList = (proId) => { return request({ - url: "/manage/photography/finaList/"+proId, - method: "get" + url: "/manage/photography/finaList/" + proId, + method: "get", }); }; @@ -94,12 +94,12 @@ const milestoneList = (data) => { method: "get", params: data, }).then((d) => { - let tmps = (d.rows || []).map((it) => { - it.nodeText = it.nodeName||''; - it.planStartDate=it.scheduledStart; - it.planEndDate=it.scheduledEnd; - it.startDate=it.actualStart; - it.endDate=it.actualEnd; + let tmps = (d.rows || []).map((it) => { + it.nodeText = it.nodeName || ""; + it.planStartDate = it.scheduledStart; + it.planEndDate = it.scheduledEnd; + it.startDate = it.actualStart; + it.endDate = it.actualEnd; updateItemState(it); return it; }); @@ -108,82 +108,124 @@ const milestoneList = (data) => { }); }; -const costOutputSelectYearAndMonth=(data)=> { - return new Promise(reslove=>{ - let data2={...data}; - let y=data2.year; - let m=data2.month-1; - if(m==0){ - m=12; - y--; +const costOutputSelectYearAndMonth = (data) => { + return new Promise((reslove) => { + let data2 = { ...data }; + let y = data2.year; + let m = data2.month - 1; + if (m == 0) { + m = 12; + y--; } - data2.year=y; - data2.month=m; - var ajaxs=[request({ + data2.year = y; + data2.month = m; + var ajaxs = [ + request({ url: `/manage/costOutput/selectYearAndMonth`, - method: 'post', - data:data + method: "post", + data: data, }), request({ url: `/manage/costOutput/selectYearAndMonth`, - method: 'post', - data:data2 - })]; - - axios.all(ajaxs).then(res=>{ - let d=res[0] - const getValue=(tmps,type)=>{ - let objs=tmps.filter(d=>d.costType==type); - return objs.length>0?objs[0]:{}; - } - let tmps=(d.data||[]).map(it=>{ - it.money=it.money?it.money/10000.0:0; - return it; - }); - let y=data.year; - let m=data.month; - //if(m==0){ - // m=12; - // y--; - //} - let tmps2=(res[1].data||[]).map(it=>{ - it.money=it.money?it.money/10000.0:0; - return it; - }); - let curM=tmps.filter(it=>it.costType==9 && it.year==y && it.month==m); - curM=curM.length>0?curM[0]:{}; + method: "post", + data: data2, + }), + ]; - let totalObjs=tmps.filter(it=>it.costType==9); - let total=0; - totalObjs.forEach(it=>{ - if(it.money){ - total+=it.money; - } - }); - let yearObjs=tmps.filter(it=>it.costType==9 && it.year==y); - let totalY=0; - yearObjs.forEach(it=>{ - if(it.money){ - totalY+=it.money; - } - }); - let obj={ - totalInv:getValue(tmps,1).money||0,//总投资 - curYear:getValue(tmps,2).money||0,//年总投资 - contract1:getValue(tmps,3).money||0,//合同金额 - contract2:getValue(tmps,4).money||0,//合同支付金额 - contract3:getValue(tmps,5).money||0,//合同挂账金额 - safety1:getValue(tmps,6).money||0,//安措金额 - safety2:getValue(tmps,7).money||0,//安措支付金额 - safety3:getValue(tmps,8).money||0,//安措挂账金额 - curMonth:curM.money||0,//当月投资 - totalMonth:total,//开累投资 - totalYear:totalY,//本年完成 + axios.all(ajaxs).then((res) => { + let d = res[0]; + const getValue = (tmps, type) => { + let objs = tmps.filter((d) => d.costType == type); + return objs.length > 0 ? objs[0] : {}; + }; + let tmps = (d.data || []).map((it) => { + it.money = it.money ? it.money / 10000.0 : 0; + return it; + }); + let y = data.year; + let m = data.month; + //if(m==0){ + // m=12; + // y--; + //} + let tmps2 = (res[1].data || []).map((it) => { + it.money = it.money ? it.money / 10000.0 : 0; + return it; + }); + let curM = tmps.filter( + (it) => it.costType == 9 && it.year == y && it.month == m + ); + curM = curM.length > 0 ? curM[0] : {}; + + let totalObjs = tmps.filter((it) => it.costType == 9); + let total = 0; + totalObjs.forEach((it) => { + if (it.money) { + total += it.money; } - reslove(obj); - }) - }) -} + }); + let yearObjs = tmps.filter((it) => it.costType == 9 && it.year == y); + let totalY = 0; + yearObjs.forEach((it) => { + if (it.money) { + totalY += it.money; + } + }); + let obj = { + totalInv: getValue(tmps, 1).money || 0, //总投资 + curYear: getValue(tmps, 2).money || 0, //年总投资 + contract1: getValue(tmps, 3).money || 0, //合同金额 + contract2: getValue(tmps, 4).money || 0, //合同支付金额 + contract3: getValue(tmps, 5).money || 0, //合同挂账金额 + safety1: getValue(tmps, 6).money || 0, //安措金额 + safety2: getValue(tmps, 7).money || 0, //安措支付金额 + safety3: getValue(tmps, 8).money || 0, //安措挂账金额 + curMonth: curM.money || 0, //当月投资 + totalMonth: total, //开累投资 + totalYear: totalY, //本年完成 + }; + reslove(obj); + }); + }); +}; +const groupByComany = (data) => { + return request({ + url: `/manage/bgscreen/attendance/groupByComany`, + data: data, + method: "post", + }); +}; +const groupAllByComany = (data) => { + return request({ + url: `/manage/bgscreen/attendance/groupAllByComany`, + data: data, + method: "post", + }); +}; +// 查询劳务实名制管理列表 +const listAttendance = (query) => { + return request({ + url: "/manage/bgscreen/attendance/list", + method: "get", + params: query, + }); +}; + +const groupByWorkerState = (data) => { + return request({ + url: "/manage/bgscreen/attendance/groupByWorkerState", + method: "get", + params: data, + }); +}; + +const queryWorkerByState = (data) => { + return request({ + url: "/manage/bgscreen/attendance/queryWorkerByState", + method: "get", + params: data, + }); +}; export default { groupByCraftType, @@ -192,5 +234,10 @@ export default { attendanceUbiDataList, photographyList, milestoneList, - costOutputSelectYearAndMonth + costOutputSelectYearAndMonth, + groupByComany, + groupAllByComany, + listAttendance, + groupByWorkerState, + queryWorkerByState, }; diff --git a/yanzhu-bigscreen/src/views/detail/AttendanceDetailDialog.vue b/yanzhu-bigscreen/src/views/detail/AttendanceDetailDialog.vue new file mode 100644 index 00000000..1b522622 --- /dev/null +++ b/yanzhu-bigscreen/src/views/detail/AttendanceDetailDialog.vue @@ -0,0 +1,155 @@ + + + 今日出勤 + + 总包人员 + 监理人员 + 劳务人员 + + + + + + + + + + {{ row.workerGender == 1 ? '女' : '男' }} + + + + + + + {{ row.attendanceTime | formatTime }} + + + + + + {{ row.attendanceOutTime | formatTime }} + + + + + + + + + + + + + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/views/detail/JobWorkerDialog.vue b/yanzhu-bigscreen/src/views/detail/JobWorkerDialog.vue new file mode 100644 index 00000000..5ceb31eb --- /dev/null +++ b/yanzhu-bigscreen/src/views/detail/JobWorkerDialog.vue @@ -0,0 +1,337 @@ + + + + {{jobType==0?'在岗':'离岗'}}人数({{ total }}) + + + + + + + + + {{row.total }} + + + + + + 在岗人数({{ indexData.total }}) + + + 总包人员({{ indexData.data101 + }}) + + + 监理人员({{ indexData.data102 + }}) + + + 劳务人员({{ indexData.data103 + }}) + + + + + + + + + + + + {{ row.gender == 1 ? '女' : '男' }} + + + {{ row.enterDate | formatDate }} + + + {{row.companyName||row.degreeName}} + + + {{ row.groupName||row.remark }} + + + + + + + + + + + + + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/views/detail/attendanceInfoDlg.vue b/yanzhu-bigscreen/src/views/detail/attendanceInfoDlg.vue index c0c237f6..d8cc94ea 100644 --- a/yanzhu-bigscreen/src/views/detail/attendanceInfoDlg.vue +++ b/yanzhu-bigscreen/src/views/detail/attendanceInfoDlg.vue @@ -1,17 +1,13 @@ - - {{ title }} - + {{ title }} - {{ it.label }}({{ getTypeCount(it) }}) + {{ it.label }}({{ getTypeCount(it) }}) - + @@ -23,14 +19,12 @@ 离场 - + {{ scope.row.createTime | toDate }} - + @@ -43,13 +37,11 @@ - - + @@ -64,8 +56,7 @@ - + @@ -74,8 +65,7 @@ - + @@ -87,9 +77,15 @@ - + @@ -98,7 +94,7 @@ export default { //在岗人员 data() { return { - dpi: "", + dpi: '', show: false, title: '在岗人员', prjInfo: {}, @@ -116,93 +112,102 @@ export default { } }, mounted() { - this.dpi = this.$dpi(); - window.addEventListener("resize", () => { + this.dpi = this.$dpi() + window.addEventListener('resize', () => { if (this.dpi != this.$dpi()) { - this.dpi = this.$dpi(); - this.resize(); + this.dpi = this.$dpi() + this.resize() } - }); - this.resize(); + }) + this.resize() }, methods: { resize() { - let is1K = this.$dpi() == "1K"; - let is2K = this.$dpi() == "2K"; - this.tbHeight = is1K ? 400 : is2K ? 500 : 600; + let is1K = this.$dpi() == '1K' + let is2K = this.$dpi() == '2K' + this.tbHeight = is1K ? 400 : is2K ? 500 : 600 }, handleCurrentChange(n) { - this.index = n; - this.loadData(); + this.index = n + this.loadData() }, showDialog(opt) { - this.prjInfo = opt.prjInfo || {}; - this.type = opt.type || 0; - this.title = this.type == 0 ? "在岗人员" : "今日出勤"; - this.attendanceData = opt.attendanceData || []; - this.show = true; - this.$api.dict("pro_craft_type").then(dicts => { - this.types = dicts || []; - }); - this.$api.dict("pro_craft_post").then(dicts => { - this.pro_craft_post = dicts || []; - }); - this.index = 1; - this.loadData(); + this.prjInfo = opt.prjInfo || {} + this.type = opt.type || 0 + this.title = this.type == 0 ? '在岗人员' : '今日出勤' + this.attendanceData = opt.attendanceData || [] + this.show = true + this.$api.dict('pro_craft_type').then((dicts) => { + this.types = dicts || [] + }) + this.$api.dict('pro_craft_post').then((dicts) => { + this.pro_craft_post = dicts || [] + }) + debugger + this.index = 1 + this.loadData() }, loadData() { - let ajax = this.$api.detail.subdeptsUsersList; + if (this.prjInfo.vendorsCode == 'uni') { + this.loadDataUni() + } else { + this.loadDataJh() + } + }, + loadDataUni() { + let ajax = this.$api.detail.subdeptsUsersList let postData = { pageSize: this.size, pageNum: this.index, craftType: this.nav, comId: this.prjInfo.comId, useStatus: 0, - projectId: this.prjInfo.id - }; + projectId: this.prjInfo.id, + } if (this.type == 1) { - ajax = this.$api.detail.attendanceUbiDataList; + ajax = this.$api.detail.attendanceUbiDataList postData = { pageSize: this.size, pageNum: this.index, comId: this.prjInfo.comId, projectId: this.prjInfo.id, craftType: this.nav, - inTime: this.$dt(new Date()).format("YYYY-MM-DD") - }; - } - this.loading = true; - ajax(postData).then(d => { - this.loading = false; - if (this.type == 0) { - this.dataList = (d.rows || []).map(d => { - d.info = this.$tryToJson(d.userInfos || "{}") - d.user = d.user || {}; - if (d.info.birthDay) { - let birthDay = this.$dt(d.info.birthDay).format("YYYY-MM-DD"); - d.info.birthDayStr = birthDay; - d.info.age = this.$dt(new Date()).diff(d.info.birthDay, 'year'); - } - d.sex = d.userSex == 0 ? '男' : '女'; - d.nativePlace = d.info.nativePlace || ""; - return d; - }); - } else { - this.dataList = d.rows || []; + inTime: this.$dt(new Date()).format('YYYY-MM-DD'), } - this.total = d.total || 0; - }); + } + this.loading = true + ajax(postData).then((d) => { + this.loading = false + if (this.type == 0) { + this.dataList = (d.rows || []).map((d) => { + d.info = this.$tryToJson(d.userInfos || '{}') + d.user = d.user || {} + if (d.info.birthDay) { + let birthDay = this.$dt(d.info.birthDay).format('YYYY-MM-DD') + d.info.birthDayStr = birthDay + d.info.age = this.$dt(new Date()).diff(d.info.birthDay, 'year') + } + d.sex = d.userSex == 0 ? '男' : '女' + d.nativePlace = d.info.nativePlace || '' + return d + }) + } else { + this.dataList = d.rows || [] + } + this.total = d.total || 0 + }) }, + loadDataJh() {}, doNav(n) { - this.nav = n.value; - this.index = 1; - this.loadData(); + this.nav = n.value + this.index = 1 + this.loadData() }, getTypeCount(it) { - let tmps = this.attendanceData.filter(d => d.id == it.value) - return tmps.length > 0 ? tmps[0].value : 0; - } - } + let tmps = this.attendanceData.filter((d) => d.id == it.value) + return tmps.length > 0 ? tmps[0].value : 0 + }, + }, } @@ -277,7 +282,6 @@ export default { line-height: 28px !important; vertical-align: middle !important; } - } } @@ -340,7 +344,6 @@ export default { line-height: 36px !important; vertical-align: middle !important; } - } } } @@ -410,7 +413,6 @@ export default { line-height: 48px !important; vertical-align: middle !important; } - } } } diff --git a/yanzhu-bigscreen/src/views/projectDetail.vue b/yanzhu-bigscreen/src/views/projectDetail.vue index 4a764d60..ab47b924 100644 --- a/yanzhu-bigscreen/src/views/projectDetail.vue +++ b/yanzhu-bigscreen/src/views/projectDetail.vue @@ -474,6 +474,8 @@ + + @@ -482,6 +484,8 @@ import projectInfoDialog from './detail/projectInfoDialog.vue' import staffSurveyChart from '@/components/staffSurveyChart.vue' import MonitAndWarning from './components/MonitAndWarning.vue' import attendanceInfoDlg from './detail/attendanceInfoDlg.vue' +import jhAttendanceDetailDialog from './detail/AttendanceDetailDialog.vue' +import jhJobWorkerDialog from './detail/JobWorkerDialog.vue' import debounce from 'lodash.debounce' export default { components: { @@ -489,6 +493,8 @@ export default { staffSurveyChart, MonitAndWarning, attendanceInfoDlg, + jhAttendanceDetailDialog, + jhJobWorkerDialog, }, data() { return { @@ -608,6 +614,7 @@ export default { this.getWeatherNowInfo() } }) + this.loadAttendanceData() this.loadMilestoneData() this.loadCostOutput() @@ -653,6 +660,46 @@ export default { }) }, loadAttendanceData() { + if (this.prjInfo.vendorsCode != 'uni') { + this.loadJhAttendanceData() + } else { + this.loadUniAttendanceData() + } + }, + loadJhAttendanceData() { + let data = { + id: this.attendanceNav, + projectId: this.selProject.id, + attendanceTime: this.$dt(new Date()).format('YYYY-MM-DD'), + } + let ajax = this.$api.detail.groupByComany + if (this.attendanceNav != 1) { + ajax = this.$api.detail.groupAllByComany + } + ajax(data).then((d) => { + let tmps = d.data || [] + const func = (ids) => { + let sum = 0 + tmps.filter((it) => ids.includes(it.companyTypeId)) + .map((it) => it.id) + .forEach((it) => { + sum += it * 1 + }) + return sum + } + + this.attendanceTotal = 0 + this.attendanceData = [ + { text: '劳务人员', value: func(['0', '2', '3', '4', '5']) }, + { text: '监理人员', value: func(['8']) }, + { text: '总包人员', value: func(['1', '6']) }, + ] + this.attendanceData.forEach((it) => { + this.attendanceTotal += it.value + }) + }) + }, + loadUniAttendanceData() { let ajax = this.$api.detail.groupByCraftType let posData = { comId: this.selProject.comId, @@ -689,11 +736,34 @@ export default { this.loadAttendanceData() }, doShowAttendanceDetail() { - this.$refs.attDlg.showDialog({ - prjInfo: this.prjInfo, - attendanceData: this.attendanceData, - type: this.attendanceNav, - }) + if (this.prjInfo.vendorsCode == 'uni') { + this.$refs.attDlg.showDialog({ + prjInfo: this.prjInfo, + attendanceData: this.attendanceData, + type: this.attendanceNav, + }) + } else { + let data = { + deptId: this.prjInfo.deptId || 0, + projectId: this.prjInfo.id || 0, + attendanceTime: this.$dt(new Date()).format('YYYY-MM-DD'), + } + if (this.attendanceNav === 1) { + this.$refs.jhAttDlg.showDialog(data) + } else { + this.$refs.jhJobWorkerDlg.showDialog({ + ...data, + type: this.attendanceNav, + total: this.attendanceTotal, + datas: this.attendanceData.map((it) => { + return { + text: it.text.replace('总包人员', '101').replace('监理人员', '102').replace('劳务人员', '103'), + cnt: it.value, + } + }), + }) + } + } }, doDeviceNav(n) { this.deviceNav = n diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/JhBaseEntity.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/JhBaseEntity.java new file mode 100644 index 00000000..2b88817b --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/JhBaseEntity.java @@ -0,0 +1,33 @@ +package com.yanzhu.manage.domain; + +import com.yanzhu.common.core.web.domain.BaseEntity; + +import java.util.List; + +public class JhBaseEntity extends BaseEntity { + /** + * 保存项目ID列表,用于B类用户 b.监理单位、总包单位、分包单位用户不展示项目概况菜单,二级菜单只展示自已参与的项目 + */ + private List prjIds; + + /** + * 项目类型 + */ + private String proType; + + public List getPrjIds() { + return prjIds; + } + + public void setPrjIds(List prjIds) { + this.prjIds = prjIds; + } + + public String getProType() { + return proType; + } + + public void setProType(String proType) { + this.proType = proType; + } +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java index 1926dde1..7c73f3af 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java @@ -106,6 +106,16 @@ public class ProProjectInfo extends BaseEntity @Excel(name = "区县") private String district; + public String getVendorsCode() { + return vendorsCode; + } + + public void setVendorsCode(String vendorsCode) { + this.vendorsCode = vendorsCode; + } + + private String vendorsCode; + private String disDeptName; public String getDisDeptName() { diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceData.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceData.java new file mode 100644 index 00000000..c918d31b --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceData.java @@ -0,0 +1,514 @@ +package com.yanzhu.manage.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 SurProjectAttendanceData extends JhBaseEntity +{ + public SurProjectAttendanceData(){ + this.year= DateTime.now().year(); + } + private static final long serialVersionUID = 1L; + + private int year; + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getWorkerName() { + return workerName; + } + + public void setWorkerName(String workerName) { + this.workerName = workerName; + } + + public String getWorkerPhoto() { + return workerPhoto; + } + + public void setWorkerPhoto(String workerPhoto) { + this.workerPhoto = workerPhoto; + } + + public Long getWorkerGender() { + return workerGender; + } + + public void setWorkerGender(Long workerGender) { + this.workerGender = workerGender; + } + + public Long getBirthDate() { + return birthDate; + } + + public void setBirthDate(Long birthDate) { + this.birthDate = birthDate; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getWorkTypeName() { + return workTypeName; + } + + public void setWorkTypeName(String workTypeName) { + this.workTypeName = workTypeName; + } + + public String getEthnic() { + return ethnic; + } + + public void setEthnic(String ethnic) { + this.ethnic = ethnic; + } + + public String getNativePlace() { + return nativePlace; + } + + public void setNativePlace(String nativePlace) { + this.nativePlace = nativePlace; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Integer getSpecWorkType() { + return specWorkType; + } + + public void setSpecWorkType(Integer specWorkType) { + this.specWorkType = specWorkType; + } + + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public String getAttendanceOutTime() { + return attendanceOutTime; + } + + public void setAttendanceOutTime(String attendanceOutTime) { + this.attendanceOutTime = attendanceOutTime; + } + + + private Long projectId; + @Excel(name = "项目名称") + private String projectName; + + private Long deptId; + @Excel(name = "部门名称") + private String deptName; + @Excel(name = "姓名") + private String workerName; + + private String workerPhoto; + @Excel(name = "性别0:男 1:女") + private Long workerGender; + + private Long birthDate; + @Excel(name = "所属班组") + private String groupName; + @Excel(name = "工种") + private String workTypeName; + @Excel(name = "民族") + private String ethnic; + @Excel(name = "籍贯") + private String nativePlace; + + @Excel(name = "联系电话") + private String phone; + @Excel(name = "是否特殊工种") + private Integer specWorkType; + + private String companyTypeId; + @Excel(name = "分包商名称") + private String companyName; + + private String workerId; + + /** 考勤时间yyyy-MM-dd HH:mm:ss */ + @Excel(name = "考勤时间(进场)") + private String attendanceTime; + + @Excel(name = "考勤时间(离开)") + private String attendanceOutTime; + /** 身份证号 */ + @Excel(name = "身份证号") + private String identification; + + /** */ + private Long id; + + /** 配置项ID,可以获取项目ID和总包ID */ + 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 SurProjectAttendanceData createFromHuazhu(JSONObject j) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.vendorsCode="huazhu"; + d.serverid=j.getString("id"); + d.workerId=j.getString("labourWorkerId"); + long recordTime=j.getLongValue("recordTime",0); + if(recordTime>0){ + if(j.getIntValue("inOrOut",1)==1){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.attendanceTime= DateUtil.format(DateUtil.date(recordTime),"yyyy-MM-dd HH:mm:ss"); + } + d.identification=j.getString("idCardNo"); + d.teamId=j.getLongValue("teamId",0); + d.workTypeCode=j.getString("workerTypeId"); + d.companyId=j.getString("unitId"); + d.deviceCode=j.getString("deviceNo"); + return d; + } + + public static SurProjectAttendanceData createFromJgw(JSONObject j) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.vendorsCode="jgw"; + d.serverid=j.getString("id"); + d.workerId=j.getString("workerId"); + if("2".equals(j.getString("machineType"))){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.attendanceTime = j.getString("checkinTime"); + + d.teamId=0l; + d.workTypeCode=""; + d.companyId=j.getString("subcontractorId"); + d.deviceCode=j.getString("deviceSerialNo"); + d.isDel=0l; + return d; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getSubDeptId() { + return subDeptId; + } + + public void setSubDeptId(Long subDeptId) { + this.subDeptId = subDeptId; + } + + public String getCompanyTypeId() { + return companyTypeId; + } + + + public void setCompanyTypeId(String companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public static SurProjectAttendanceData create(JSONObject json) { + SurProjectAttendanceData d=new SurProjectAttendanceData(); + d.attendanceTime=json.getString("time"); + if("E".equals(json.getString("type"))){ + d.setRemark("E"); + }else{ + d.setRemark("L"); + } + d.serverid=json.getString("id"); + d.workerId=json.getString("workerId"); + d.identification=json.getString("identification"); + d.teamId=json.getLong("teamId"); + d.workTypeCode=json.getString("workerTypeId"); + d.companyId=json.getString("companyId"); + d.vendorId=json.getLong("vendorId"); + d.deviceCode=json.getString("deviceCode"); + d.scanPhoto=json.getString("scanPhoto"); + d.isDel=0l; + return d; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + 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-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceGroup.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceGroup.java new file mode 100644 index 00000000..eb66f81e --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceGroup.java @@ -0,0 +1,429 @@ +package com.yanzhu.manage.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 SurProjectAttendanceGroup extends JhBaseEntity +{ + 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 SurProjectAttendanceGroup createHuazhu(JSONObject j) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.companyId=""+j.getLongValue("unitId",0); + g.companyName=j.getString("unitName"); + g.companyTypeId=j.getString("unitType"); + g.serverid=j.getString("id"); + g.enterDate=j.getLong("enterTime"); + g.exitDate=j.getLong("leaveTime"); + g.isDel=0l; + return g; + } + + public static SurProjectAttendanceGroup createJgw(JSONObject j, boolean isDirectlyUnder) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.serverid=j.getString("id"); + if(isDirectlyUnder) { + g.companyId = j.getString("leaderTeamId"); + g.leaderName=j.getString("subcontractorId"); + g.leaderPhone="directly"; + }else{ + g.companyId=j.getString("subcontractorId"); + } + g.companyName=j.getString("corpName"); + g.teamName=j.getString("teamName"); + + g.bizLicense=j.getString("corpCode"); + g.companyCode=j.getString("teamJobtype"); + + g.companyTypeId="0"; + g.enterDate=0l; + g.exitDate=0l; + g.isDel=0l; + return g; + } + + public Long getCreateTimestamp() { + return createTimestamp; + } + + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + + public static SurProjectAttendanceGroup create(JSONObject json) { + SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); + g.serverid=json.getString("id"); + g.bizLicense=json.getString("bizLicense"); + g.companyCode=json.getString("companyCode"); + g.companyId=""+json.getLongValue("companyId",0); + g.companyName=json.getString("companyName"); + String typeId=json.getString("companyTypeId"); + if("1".equals(typeId)||"8".equals(typeId)||"9".equals(typeId)){ + typeId=typeId; + }else{ + typeId="2"; + } + g.companyTypeId=typeId; + g.vendorId=json.getLongValue("vendorId",0); + g.name=json.getString("name"); + g.leaderName=json.getString("leaderName"); + g.leaderPhone=json.getString("leaderPhone"); + g.teamId=json.getLongValue("teamId",0); + g.teamName=json.getString("teamName"); + g.type=json.getLongValue("type",0); + g.leaderId=json.getLongValue("leaderId",0); + g.deleted=json.get("deleted")==null?0:(json.getBoolean("deleted")?1:0); + g.platformGroupId=json.getLongValue("platformGroupId",0); + g.platformTeamId=json.getLongValue("platformTeamId",0); + g.enterDate=json.getLongValue("enterDate",0); + g.exitDate=json.getLongValue("exitDate",0); + g.isDel=0l; + return g; + + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + 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-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceUser.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceUser.java new file mode 100644 index 00000000..e4f9335e --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/SurProjectAttendanceUser.java @@ -0,0 +1,733 @@ +package com.yanzhu.manage.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 SurProjectAttendanceUser extends JhBaseEntity +{ + 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; + + /** 近照 */ + + 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 SurProjectAttendanceUser createFromHuazhu(JSONObject j) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=j.getString("id"); + u.name=j.getString("name"); + u.ethnic=j.getString("nationalName"); + u.nativePlace=j.getString("provinceName")+j.getString("cityName"); + u.gender=j.getLongValue("sex",0)==0l?1l:0l; + u.birthDate=j.getLongValue("birthday",0); + u.phone=j.getString("phone"); + u.degreeName=j.getString("levelOfEducation"); + u.recentPhoto=j.getString("profile"); + u.groupId=j.getString("teamId"); + u.groupName=j.getString("teamName"); + u.workTypeCode=j.getString("workerTypeId"); + u.workTypeName=j.getString("workerTypeName"); + u.state=j.getLongValue("status",1)==2l?0l:1l; + long enterTime=j.getLong("enterTime"); + if(enterTime>0){ + u.enterDate= DateUtil.format(DateUtil.date(enterTime),"yyyy-MM-dd HH:mm:ss"); + } + long leaveTime=j.getLong("leaveTime"); + if(leaveTime>0) { + u.exitDate = DateUtil.format(DateUtil.date(leaveTime), "yyyy-MM-dd HH:mm:ss"); + } + u.vendorId=j.getLongValue("unitProjectId",0); + u.companyId=""+j.getLongValue("unitId",0); + u.companyName=j.getString("unitName"); + u.teamName=j.getString("teamName"); + return u; + } + + public static SurProjectAttendanceUser createFromJgw(JSONObject j) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=j.getString("workerId"); + u.name=j.getString("name"); + u.ethnic=j.getString("minor"); + u.phone=j.getString("workPhone"); + u.nativePlace=j.getString("address"); + u.gender=j.getLongValue("sex",0)==0l?1l:0l; + String tmp=j.getString("birthday"); + if(StrUtil.isNotEmpty(tmp)) { + try { + u.birthDate = DateUtil.parse(tmp).getTime(); + }catch (Exception ex){ + + } + } + u.photo=j.getString("headImage"); + u.degreeName=j.getString("education"); + u.recentPhoto=j.getString("vaildPhoto"); + u.groupId=""; + u.groupName=""; + u.workTypeCode=""; + u.workTypeName=j.getString("jobtype"); + u.state="01".equals( j.getString("workerStatus"))?0l:1l; + String workDate=j.getString("workDate"); + if(!StrUtil.isEmpty(workDate)){ + u.enterDate=workDate; + } + u.vendorId=0l; + u.companyId=j.getString("subcontractorId"); + u.companyName=""; + u.teamName=""; + u.isDel=0l; + JSONArray ja=j.getJSONArray("corpName"); + if(ja!=null && ja.size()>0){ + Object obj=ja.get(0); + if(obj!=null){ + u.companyName=obj.toString(); + } + } + + u.leader=j.getInteger("isAdmin")==1?1:0; + return u; + } + + public Date getInTime() { + return inTime; + } + + public void setInTime(Date inTime) { + this.inTime = inTime; + } + + public Date getOutTime() { + return outTime; + } + + public void setOutTime(Date outTime) { + this.outTime = outTime; + } + + private Long projectId; + private Long subDeptId; + private Long deptId; + + private List workerIds; + + public List getWorkerIds() { + return workerIds; + } + + public void setWorkerIds(List workerIds) { + this.workerIds = workerIds; + } + + private int size; + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + private int index; + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getSubDeptId() { + return subDeptId; + } + + public void setSubDeptId(Long subDeptId) { + this.subDeptId = subDeptId; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public static SurProjectAttendanceUser create(JSONObject json) { + SurProjectAttendanceUser u=new SurProjectAttendanceUser(); + u.workerId=json.getString("workerId"); + u.laborWorkerId=json.getLongValue("laborWorkerId",0); + u.workerCategory=json.getLongValue("workerCategory",0); + u.qrCode=json.getLongValue("qrCode",0); + u.name=json.getString("name"); + u.ethnic=json.getString("ethnic"); + u.nativePlace=json.getString("nativePlace"); + u.gender=json.getLongValue("gender",0); + u.birthDate=json.getLongValue("birthDate",0); + u.phone=json.getString("phone"); + u.recentPhoto=json.getString("recentPhoto"); + u.groupId=json.getString("groupId"); + u.groupName=json.getString("groupName"); + u.leader=json.getBooleanValue("leader",false)?1:0; + u.workTypeCode=json.getString("workTypeCode"); + u.workTypeName=json.getString("workTypeName"); + u.specWorkType=json.getBooleanValue("specWorkType",false)?1:0; + u.hatCode=json.getString("hatCode"); + u.state=json.getLongValue("status",0); + u.enterDate=json.getString("enterDate"); + u.exitDate=json.getString("exitDate"); + u.companyId=""+json.getLongValue("companyId",0); + u.companyName=json.getString("companyName"); + u.vendorId=json.getLongValue("vendorId",0); + u.teamId=json.getInteger("teamId"); + u.teamName=json.getString("teamName"); + u.enterType=json.getString("enterType"); + u.isDel=0l; + return u; + } + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + 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-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceDataMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceDataMapper.java new file mode 100644 index 00000000..a264f492 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceDataMapper.java @@ -0,0 +1,139 @@ +package com.yanzhu.manage.mapper; + +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 劳务实名制管理Mapper接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface SurProjectAttendanceDataMapper +{ + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id); + + /** + * 查询劳务实名制管理列表 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData); + /** + * 新增劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 修改劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 删除劳务实名制管理 + * + * @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 SurProjectAttendanceDataList 劳务实名制考勤管理列表 + * @return 结果 + */ + public int batchSurProjectAttendanceData(@Param("list") List SurProjectAttendanceDataList, @Param("year") String year); + + public Long getLastServerId(SurProjectAttendanceData where); + + List groupAllByComany(SurProjectAttendanceData where); + List groupByComany(SurProjectAttendanceData where); + + public Long getHuazhuPage(SurProjectAttendanceData where); + + + public List> initOtherData(Map data); + + public List> initHuaZhuData(Map data); + + public String findHuaZhuCompanyType(String deptName); + + public List todayAttendance(SurProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(SurProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> findGroupAllByParams(SurProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(SurProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(SurProjectAttendanceData where); + + public List groupTodayCompanyTypeId(SurProjectAttendanceData where); + + List selectSurProjectAttendanceDataListByMonth(SurProjectAttendanceData attWhere); + + List selectSurProjectAttendanceDataListByDate(SurProjectAttendanceData attWhere); +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceGroupMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceGroupMapper.java new file mode 100644 index 00000000..d091fa29 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceGroupMapper.java @@ -0,0 +1,86 @@ +package com.yanzhu.manage.mapper; + +import com.yanzhu.manage.domain.SurProjectAttendanceGroup; + +import java.util.List; + +/** + * 广联达班组信息Mapper接口 + * + * @author ruoyi + * @date 2023-09-26 + */ +public interface SurProjectAttendanceGroupMapper +{ + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 修改广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 删除广联达班组信息 + * + * @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 surProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + public int batchSurProjectAttendanceGroup(List surProjectAttendanceGroupList); +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceUserMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceUserMapper.java new file mode 100644 index 00000000..978eb307 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/SurProjectAttendanceUserMapper.java @@ -0,0 +1,170 @@ +package com.yanzhu.manage.mapper; + + +import com.yanzhu.manage.domain.AttendanceCfg; +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import com.yanzhu.manage.domain.SurProjectAttendanceUser; + +import java.util.List; +import java.util.Map; + +/** + * 考勤人员基本属性Mapper接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface SurProjectAttendanceUserMapper +{ + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 查询[研筑]考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + + + public List querySurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser surProjectAttendanceUser); + /** + * 新增考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 修改考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 删除考勤人员基本属性 + * + * @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 surProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + public int batchSurProjectAttendanceUser(List surProjectAttendanceUserList); + + /** + * 下面三个方法完成考勤记录分页查询 + * countAttendance 获取总记录条数 + * queryAttendanceUsers 获取当前页workerIds + * queryAttendanceByUserIds 根据workerIds查询一页数据然后组装 + * @param where + * @return + */ + public List queryAttendanceByUserIds(SurProjectAttendanceUser where); + public long countAttendance(AttendanceCfg where); + public List queryAttendanceUsers(SurProjectAttendanceUser where); + + public long countTodayAttendance(SurProjectAttendanceUser where); + + + public List todayAttendance(SurProjectAttendanceUser where); + public List todayAttendanceData(List list); + + public List todayAttendanceOtherData(Map data); + + /** + * 在岗工人查询 + * @param where + * @return + */ + List queryWorkerOnDuty(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(SurProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(SurProjectAttendanceUser where); + +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml index e2c3fb57..e6a95439 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml @@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -123,13 +124,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status, pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark, pd.id pd_id,pd.dept_type pd_type,pd.dept_name pd_name,pd.dept_code pd_code,pd.leader pd_leader,pd.phone pd_phone, - ps.id ps_id,ps.org_name ps_org_name,ps.org_logo ps_org_logo,ps.org_image ps_org_image,ps.org_video ps_org_video,ps.org_plane ps_org_plane + ps.id ps_id,ps.org_name ps_org_name,ps.org_logo ps_org_logo,ps.org_image ps_org_image,ps.org_video ps_org_video,ps.org_plane ps_org_plane,ac.vendors_code from pro_project_info pi left join sys_dept sd on sd.dept_id = pi.com_id left join sys_dept sd2 on sd2.dept_id = pi.dis_dept_id left join pro_project_info_depts pd on pi.id=pd.project_id left join pro_project_info_setting ps on pi.id=ps.project_id left join sys_dict_data sdd1 on sdd1.dict_value = pi.project_type and sdd1.dict_type='pro_project_type' + left join attendance_cfg ac on ac.project_id=pi.id and ac.enabled=1 and ac.is_del=0 where pi.id = #{id} 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 new file mode 100644 index 00000000..10aac22c --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceDataMapper.xml @@ -0,0 +1,651 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select + id, + cfgid, + app_id, + projectId, + projectName, + deptId, + deptName, + vendors_code, + serverid, + workerId, + workerName, + identification, + workerPhoto, + workerGender, + birthDate, + ethnic, + nativePlace, + phone, + workTypeName, + specWorkType, + groupName, + companyTypeId, + companyName, + attendance_time, + attendance_out_time, + scanPhoto, + teamId, + workTypeCode, + companyId, + vendorId, + device_code, + is_del, + create_by, + create_time, + update_by, + update_time, + remark + from sur_project_attendance_data_${year} + + + + select * from sur_project_attendance_data_${year} + + and cfgid = #{cfgid} + and app_id = #{appId} + and workerId = #{workerId} + and date(attendance_time) = date(#{attendanceTime}) + + order by id desc LIMIT 1 + + + + select * from sur_project_attendance_data_${year} + + and cfgid = #{cfgid} + and app_id = #{appId} + and projectId = #{projectId} + and deptId = #{deptId} + and vendors_code = #{vendorsCode} + and serverid = #{serverid} + and workerId = #{workerId} + + and identification = #{identification} + and teamId = #{teamId} + and workTypeCode = #{workTypeCode} + and companyId = #{companyId} + and vendorId = #{vendorId} + and device_code = #{deviceCode} + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + + and scanPhoto = #{scanPhoto} + and is_del = #{isDel} + and date(attendance_time) = date(#{attendanceTime}) + + order by id desc + + + + + + and cfgid = #{cfgid} + and app_id = #{appId} + and cfgid in (select id from attendance_cfg where projectId = #{projectId}) + and deptId = #{deptId} + and vendors_code = #{vendorsCode} + and serverid = #{serverid} + and workerId = #{workerId} + + and (date(attendance_out_time) <=date(#{attendanceOutTime}) or date(attendance_time) <=date(#{attendanceOutTime})) + + + and teamId = #{teamId} + and workTypeCode = #{workTypeCode} + and companyId = #{companyId} + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + + and vendorId = #{vendorId} + and device_code = #{deviceCode} + and scanPhoto like concat('%', #{scanPhoto}, '%') + and workerName like concat('%', #{workerName}, '%') + and is_del = #{isDel} + and + (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime}) ) + and identification = #{identification} + + order by id desc + + + + + where id = #{id} + + + + 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}) + + + + + SELECT IF(MAX(serverid+0),MAX(serverid+0),0) serverid FROM sur_project_attendance_data_${year} WHERE cfgid=#{cfgid} + + + select companyTypeId,count(1) id from ( ) x2 where id in ( + select min(id) from ( ) x1 + where date(attendance_time)=#{attendanceTime} + and project_id in ( + SELECT id FROM pro_project_info WHERE is_del=0 AND deptid = #{subDeptId} + ) + + + and project_id in + + #{item} + + + and project_id=#{projectId} + group by workerId ) + and companyTypeId in (1,2,3,4,5,6,8) group by companyTypeId + + + select g.companyTypeId,count(1) id from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=CURDATE() + and cfgid in (select id from attendance_cfg + + + and project_id=#{projectId} + + + and project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{subDeptId}) + + + and project_id in + + #{item} + + + + ) + ) + and g.companyTypeId in (1,2,3,4,5,6,8) + + + and c.project_id=#{projectId} + + + and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{subDeptId}) + + + and c.project_id in + + #{item} + + + group by g.companyTypeId + + + + select g.companyTypeId,count(1) id + from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g, + pro_project_info sp + where u.cfgid=c.id and u.companyId=g.companyId and u.state=#{id} and c.project_id = sp.id + and sp.is_Del=0 + and g.companyTypeId in (0,1,2,3,4,5,6,8) + + and c.project_id=#{projectId} + + + and sp.dis_dept_id=#{subDeptId} + + and sp.project_Type = #{proType} + + and c.project_id in + + #{item} + + + group by g.companyTypeId + + + + select max(vendorId) vendorId from sur_project_attendance_data_${year} WHERE cfgid=#{id} + + + + select d.workerId,d.app_id,d.serverid,u.companyId,u.companyName,u.`name`,d.identification,u.recentPhoto,u.gender,u.birthDate,u.ethnic,u.nativePlace,u.phone, + u.workTypeName,u.specWorkType,u.groupName,g.companyTypeId,d.teamId,u.workTypeCode,d.vendorId,d.device_code,d.scanPhoto,d.is_del + from sur_project_attendance_data d + left JOIN sur_project_attendance_user u on d.workerId = u.workerId and d.cfgid = u.cfgid + left join sur_project_attendance_group g on u.companyId = g.companyId and g.cfgid = u.cfgid + where d.cfgid=#{cfgid} and date(d.attendance_time) = #{date} + GROUP BY d.workerId + + + + select d.workerId,d.app_id,d.serverid,u.companyId,u.companyName,u.`name`,d.identification,u.recentPhoto,u.gender,u.birthDate,u.ethnic,u.nativePlace,u.phone, + u.workTypeName,u.specWorkType,u.groupName,d.teamId,u.workTypeCode,d.vendorId,d.device_code,d.scanPhoto,d.is_del, + CASE WHEN sd.type_flag = 2 THEN '1' WHEN sd.type_flag = 3 THEN '2' WHEN sd.type_flag = 4 THEN '8' else '0' end as companyTypeId + from sur_project_attendance_data d + left JOIN sur_project_attendance_user u on d.workerId = u.workerId and d.cfgid = u.cfgid + left join sys_dept sd on u.companyName = sd.dept_name + where d.cfgid=#{cfgid} and date(d.attendance_time) = #{date} + GROUP BY d.workerId + + + + select CASE WHEN sd.type_flag = 2 THEN '1' WHEN sd.type_flag = 3 THEN '2' WHEN sd.type_flag = 4 THEN '8' else '0' end as companyTypeId + from sys_dept sd + where sd.dept_name = #{deptName} + + + + + and cfgid = #{cfgid} + and app_id = #{appId} + and cfgid in (select id from attendance_cfg where projectId = #{projectId} + and sub_dept_id = #{deptId} + ) + + and vendors_code = #{vendorsCode} + and serverid = #{serverid} + and workerId = #{workerId} + + and (date(attendance_out_time) =date(#{attendanceOutTime}) or date(attendance_time) =date(#{attendanceOutTime})) + + and teamId = #{teamId} + and workTypeCode = #{workTypeCode} + and companyId = #{companyId} + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + + and vendorId = #{vendorId} + and device_code = #{deviceCode} + and scanPhoto like concat('%', #{scanPhoto}, '%') + and workerName like concat('%', #{workerName}, '%') + and is_del = #{isDel} + and + (date(attendance_time) = date(#{attendanceTime}) or date(attendance_out_time) = date(#{attendanceTime}) ) + and identification = #{identification} + + order by id desc + + + WITH RankedAttendance AS ( + SELECT + id, + workerId, + COUNT(1) OVER (PARTITION BY workerId) AS days, + ROW_NUMBER() OVER (PARTITION BY workerId ORDER BY id) AS rn + FROM sur_project_attendance_data_${year} + + and cfgid = #{cfgid} + and cfgid in (select id from attendance_cfg where projectId = #{projectId} + and sub_dept_id = #{deptId} + ) + + + AND (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime})) + AND (date(attendance_time) <= date(#{attendanceOutTime}) or date(attendance_out_time) <= date(#{attendanceOutTime})) + + + + AND (date(attendance_time) <= date(#{attendanceOutTime}) or date(attendance_out_time) <= date(#{attendanceOutTime})) + + + + AND (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime})) + + + + ) + SELECT a.*, b.days + FROM sur_project_attendance_data_${year} a + JOIN RankedAttendance b ON a.id = b.id + WHERE b.rn = 1 + order by a.workerId + + + + select ady.* from sur_project_attendance_data_${year} ady + left join pro_project_info sp on sp.id = ady.projectId + where sp.is_Del=0 + + and ady.projectId=#{projectId} + + + and ady.companyTypeId in (1,6) + + + and ady.companyTypeId in (0,2,3,4,5) + + + and ady.companyTypeId =8 + + + and sp.dis_dept_id=#{deptId} + + and sp.project_Type = #{proType} + + and ady.projectId in + + #{item} + + + and date(ady.attendance_time) =date(#{attendanceTime}) + + + + select ady.* from sur_project_attendance_data_${year} ady + where ady.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + + and ady.companyTypeId in (1,6) + + + and ady.companyTypeId in (0,2,3,4,5) + + + and ady.companyTypeId =8 + + and ady.workerId = #{workerId} + and ady.workerName like concat('%', #{workerName}, '%') + and date(ady.attendance_time) = date(#{attendanceTime}) + and ady.is_del=0 + order by ady.id desc + + + + select ady.companyTypeId,count(1) id from sur_project_attendance_data_${year} ady + where ady.cfgid in (select id from attendance_cfg where + is_del=0 + + and projectId=#{projectId} + + and projectId in (select id from pro_project_info sp where sp.is_Del=0 + + and sp.dis_dept_id=#{deptId} + + and date(ady.attendance_time) =date(#{attendanceTime}) + and sp.projectType = #{proType} + + and ady.projectId in + + #{item} + + + ) + ) + group by ady.companyTypeId + + + + select '1' as type,g.companyTypeId,count(1) as total + from sur_project_attendance_user u + left join view_sur_project_attendance_group g on g.cfgid = u.cfgid and u.companyId=g.companyId + where u.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and g.companyTypeId in (0,1,2,3,4,5,6,8) + and u.state=0 + group by g.companyTypeId + UNION ALL + select '2' as type,g.companyTypeId,count(1) as total + from sur_project_attendance_user u + left join view_sur_project_attendance_group g on g.cfgid = u.cfgid and u.companyId=g.companyId + where u.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and g.companyTypeId in (0,1,2,3,4,5,6,8) + and u.state=1 + group by g.companyTypeId + UNION ALL + select '3' as type, d.companyTypeId,count(1) as total from sur_project_attendance_data_${year} d + where d.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and d.is_del=0 + and date(d.attendance_time) = date(now()) + group by d.companyTypeId + + + + select d.companyTypeId,count(1) as total from sur_project_attendance_data_${year} d + where d.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and d.is_del=0 + and date(d.attendance_time) = date(#{attendanceTime}) + and d.workerName like concat('%', #{workerName}, '%') + group by d.companyTypeId + + + + select '3' as type, DATE_FORMAT(days.attendanceTime, '%m-%d') as attendanceTime,days.total from( + select date(d.attendance_time) as attendanceTime, DATE_FORMAT(d.attendance_time, '%m-%d'),count(1) as total from sur_project_attendance_data_${year} d + where d.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and d.is_del=0 + and date(d.attendance_time) between #{attendanceTime} and #{attendanceOutTime} + group by date(d.attendance_time) + order by date(d.attendance_time) + )days + + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceGroupMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceGroupMapper.xml new file mode 100644 index 00000000..07b1263f --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceGroupMapper.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 + + + + + + and cfgid = #{cfgid} + and app_id = #{appId} + and serverid = #{serverid} + and bizLicense = #{bizLicense} + and companyCode = #{companyCode} + and companyId = #{companyId} + and companyName like concat('%', #{companyName}, '%') + and companyTypeId = #{companyTypeId} + and vendorId = #{vendorId} + and name like concat('%', #{name}, '%') + and leaderName like concat('%', #{leaderName}, '%') + and leaderPhone = #{leaderPhone} + and teamId = #{teamId} + and teamName like concat('%', #{teamName}, '%') + and type = #{type} + and leaderId = #{leaderId} + and deleted = #{deleted} + and createTime = #{createTime} + and platformGroupId = #{platformGroupId} + and platformTeamId = #{platformTeamId} + and enterDate = #{enterDate} + and exitDate = #{exitDate} + and is_del = #{isDel} + + + + + select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTimestamp, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time + from sur_project_attendance_group + + and cfgid = #{cfgid} + and app_id = #{appId} + and serverid = #{serverid} + and bizLicense = #{bizLicense} + and companyCode = #{companyCode} + and companyId = #{companyId} + and companyName like concat('%', #{companyName}, '%') + and companyTypeId = #{companyTypeId} + and vendorId = #{vendorId} + and name like concat('%', #{name}, '%') + and leaderName like concat('%', #{leaderName}, '%') + and leaderPhone = #{leaderPhone} + and teamId = #{teamId} + and teamName like concat('%', #{teamName}, '%') + and type = #{type} + and leaderId = #{leaderId} + and deleted = #{deleted} + and createTime = #{createTime} + and platformGroupId = #{platformGroupId} + and platformTeamId = #{platformTeamId} + and enterDate = #{enterDate} + and exitDate = #{exitDate} + and is_del = #{isDel} + + + + + + where id = #{id} + + + + 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-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml new file mode 100644 index 00000000..fd5989bf --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/SurProjectAttendanceUserMapper.xml @@ -0,0 +1,812 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT * FROM ( + SELECT a.*,b.project_id,b.sub_dept_id + FROM sur_project_attendance_user a,attendance_cfg b + WHERE a.cfgid=b.id ) + sur_project_attendance_user + + + SELECT u.id,u.cfgid,u.app_id,u.vendors_code,u.workerId,u.laborWorkerId,u.workerCategory,u.qrCode,u.name, + u.ethnic,u.nativePlace,u.gender,u.birthDate,u.phone,u.degreeName,u.photo,u.recentPhoto, + u.groupId,u.leader,u.workTypeCode,u.specWorkType, + u.hatCode,u.state,u.enterDate,u.exitDate,u.companyId,u.vendorId, + u.teamId,u.teamName,u.enterType,u.is_del,u.create_by,u.create_time,u.update_by,u.update_time, + c.project_id,c.sub_dept_id,u.companyName,u.workTypeName,g.teamname groupName,g.companyName remark + FROM sur_project_attendance_user u,attendance_cfg c,sur_project_attendance_group g + WHERE u.cfgid=c.id AND g.companyid=u.companyid AND u.vendors_code='jgw' + + + + and g.companyTypeId in (1,6) + + + and g.companyTypeId =8 + + + and g.companyTypeId in (0,2,3,4,5) + + + + and g.companyTypeId=#{companyTypeId} + + + and u.cfgid = #{cfgid} + and u.app_id = #{appId} + and u.vendors_code = #{vendorsCode} + and u.workerId = #{workerId} + and u.laborWorkerId = #{laborWorkerId} + and u.workerCategory = #{workerCategory} + and u.qrCode = #{qrCode} + and u.name like concat('%', #{name}, '%') + and u.ethnic = #{ethnic} + and u.nativePlace = #{nativePlace} + and u.gender = #{gender} + and u.birthDate = #{birthDate} + and u.phone = #{phone} + and u.degreeName like concat('%', #{degreeName}, '%') + and u.photo = #{photo} + and u.recentPhoto = #{recentPhoto} + and u.groupId = #{groupId} + and u.groupName like concat('%', #{groupName}, '%') + and u.leader = #{leader} + and u.workTypeCode = #{workTypeCode} + and u.workTypeName like concat('%', #{workTypeName}, '%') + and u.specWorkType = #{specWorkType} + and u.hatCode = #{hatCode} + and u.state = #{state} + and u.enterDate = #{enterDate} + and u.exitDate = #{exitDate} + and u.companyId = #{companyId} + and u.companyName like concat('%', #{companyName}, '%') + and u.vendorId = #{vendorId} + and u.teamId = #{teamId} + and u.teamName like concat('%', #{teamName}, '%') + and u.enterType = #{enterType} + and u.other = #{other} + and c.project_id = #{projectId} + and c.sub_dept_id = #{subDeptId} + and u.is_del = #{isDel} + + + + SELECT * FROM ( + SELECT a.id, + a.cfgid, + a.app_id, + a.vendors_code, + a.workerId, + a.laborWorkerId, + a.workerCategory, + a.qrCode, + a.name, + a.ethnic, + a.nativePlace, + a.gender, + a.birthDate, + a.phone, + a.degreeName, + a.photo, + a.recentPhoto, + a.groupId, + a.groupName, + a.leader, + a.workTypeCode, + a.workTypeName, + a.specWorkType, + a.hatCode, + a.state, + a.enterDate, + a.exitDate, + a.companyId, + a.companyName, + a.vendorId, + a.teamId, + a.teamName, + a.enterType, + a.other, + a.is_del, + a.create_by, + a.create_time, + a.update_by, + a.update_time,b.project_id,b.sub_dept_id,g.companyTypeId,g.companyName as remark + FROM sur_project_attendance_user a,attendance_cfg b,view_sur_project_attendance_group g + WHERE a.cfgid=b.id and a.companyId=g.companyId and g.id in(select min(id) from view_sur_project_attendance_group group by companyid) + ) + sur_project_attendance_user + + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + + and cfgid = #{cfgid} + and app_id = #{appId} + and vendors_code = #{vendorsCode} + and workerId = #{workerId} + and laborWorkerId = #{laborWorkerId} + and workerCategory = #{workerCategory} + and qrCode = #{qrCode} + and name like concat('%', #{name}, '%') + and ethnic = #{ethnic} + and nativePlace = #{nativePlace} + and gender = #{gender} + and birthDate = #{birthDate} + and phone = #{phone} + and degreeName like concat('%', #{degreeName}, '%') + and photo = #{photo} + and recentPhoto = #{recentPhoto} + and groupId = #{groupId} + and groupName like concat('%', #{groupName}, '%') + and leader = #{leader} + and workTypeCode = #{workTypeCode} + and workTypeName like concat('%', #{workTypeName}, '%') + and specWorkType = #{specWorkType} + and hatCode = #{hatCode} + and state = #{state} + and enterDate = #{enterDate} + and exitDate = #{exitDate} + and companyId = #{companyId} + and companyName like concat('%', #{companyName}, '%') + and vendorId = #{vendorId} + and teamId = #{teamId} + and teamName like concat('%', #{teamName}, '%') + and enterType = #{enterType} + and other = #{other} + and project_id = #{projectId} + and sub_dept_id = #{subDeptId} + and is_del = #{isDel} + + + + + + + + + and companyTypeId in (1,6) + + + and companyTypeId =8 + + + and companyTypeId in (0,2,3,4,5) + + + + and companyTypeId=#{companyTypeId} + + + and cfgid = #{cfgid} + and app_id = #{appId} + and vendors_code = #{vendorsCode} + and workerId = #{workerId} + and laborWorkerId = #{laborWorkerId} + and workerCategory = #{workerCategory} + and qrCode = #{qrCode} + and name like concat('%', #{name}, '%') + and ethnic = #{ethnic} + and nativePlace = #{nativePlace} + and gender = #{gender} + and birthDate = #{birthDate} + and phone = #{phone} + and degreeName like concat('%', #{degreeName}, '%') + and photo = #{photo} + and recentPhoto = #{recentPhoto} + and groupId = #{groupId} + and groupName like concat('%', #{groupName}, '%') + and leader = #{leader} + and workTypeCode = #{workTypeCode} + and workTypeName like concat('%', #{workTypeName}, '%') + and specWorkType = #{specWorkType} + and hatCode = #{hatCode} + and state = #{state} + and enterDate = #{enterDate} + and exitDate = #{exitDate} + and companyId = #{companyId} + and companyName like concat('%', #{companyName}, '%') + and vendorId = #{vendorId} + and teamId = #{teamId} + and teamName like concat('%', #{teamName}, '%') + and enterType = #{enterType} + and other = #{other} + and project_id = #{projectId} + and sub_dept_id = #{subDeptId} + and is_del = #{isDel} + + + + + where id = #{id} + + + + select u.companyId,u.companyName,u.`name`,u.recentPhoto,u.gender,u.birthDate,u.ethnic,u.nativePlace,u.phone, + u.workTypeName,u.specWorkType,u.groupName,g.companyTypeId,u.workTypeCode + from sur_project_attendance_user u + left join sur_project_attendance_group g on u.companyId = g.companyId and g.cfgid = u.cfgid + where u.cfgid=#{cfgid} and u.workerId=#{workerId} + + + + select u.companyId,g.companyName,u.`name`,u.recentPhoto,u.gender,u.birthDate,u.ethnic,u.nativePlace,u.phone, + u.workTypeName,u.specWorkType,u.groupName,g.companyTypeId,u.workTypeCode + from sur_project_attendance_user u + left join sur_project_attendance_group g on u.groupId = g.serverid and g.cfgid = u.cfgid + where u.cfgid=#{cfgid} and u.workerId=#{workerId} ORDER BY u.id desc LIMIT 1 + + + + insert into sur_project_attendance_user + + cfgid, + app_id, + vendors_code, + workerId, + laborWorkerId, + workerCategory, + qrCode, + name, + ethnic, + nativePlace, + gender, + birthDate, + phone, + degreeName, + photo, + recentPhoto, + groupId, + groupName, + leader, + workTypeCode, + workTypeName, + specWorkType, + hatCode, + state, + enterDate, + exitDate, + companyId, + companyName, + vendorId, + teamId, + teamName, + enterType, + other, + remark, + is_del, + create_by, + create_time, + update_by, + update_time, + + + #{cfgid}, + #{appId}, + #{vendorsCode}, + #{workerId}, + #{laborWorkerId}, + #{workerCategory}, + #{qrCode}, + #{name}, + #{ethnic}, + #{nativePlace}, + #{gender}, + #{birthDate}, + #{phone}, + #{degreeName}, + #{photo}, + #{recentPhoto}, + #{groupId}, + #{groupName}, + #{leader}, + #{workTypeCode}, + #{workTypeName}, + #{specWorkType}, + #{hatCode}, + #{state}, + #{enterDate}, + #{exitDate}, + #{companyId}, + #{companyName}, + #{vendorId}, + #{teamId}, + #{teamName}, + #{enterType}, + #{other}, + #{remark}, + #{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}, + 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, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time) values + + ( #{item.id}, #{item.cfgid}, #{item.vendorsCode}, #{item.workerId}, #{item.laborWorkerId}, #{item.workerCategory}, #{item.qrCode}, #{item.name}, #{item.ethnic}, #{item.nativePlace}, #{item.gender}, #{item.birthDate}, #{item.phone}, #{item.degreeName}, #{item.photo}, #{item.recentPhoto}, #{item.groupId}, #{item.groupName}, #{item.leader}, #{item.workTypeCode}, #{item.workTypeName}, #{item.specWorkType}, #{item.hatCode}, #{item.state}, #{item.enterDate}, #{item.exitDate}, #{item.companyId}, #{item.companyName}, #{item.vendorId}, #{item.teamId}, #{item.teamName}, #{item.enterType}, #{item.other}, #{item.remark}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}) + + + + + ( + SELECT * FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN ( + SELECT id FROM attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId} + ) ) xx + + + select * from ( + select n.*,m.inTime,m.outTime from ( + + SELECT * FROM ( + SELECT workerId,attendance_time inTime,null outtime FROM sur_project_attendance_data WHERE id IN ( + SELECT min(id) id FROM WHERE attendance_type='e' GROUP BY workerId )) X WHERE workerId NOT IN ( + SELECT workerId FROM WHERE attendance_type='l' GROUP BY workerId + ) + + union + + select * from ( + select workerId,null inTime,attendance_time outTime from sur_project_attendance_data where id in ( + select max(id) id from where attendance_type='l' group by workerId )) x where workerId not in ( + SELECT workerId FROM WHERE attendance_type='e' GROUP BY workerId + ) + + union + + select x.workerId,y.attendance_time inTime,x.attendance_time outTime from ( + SELECT id,workerId,attendance_time FROM sur_project_attendance_data WHERE id IN ( + SELECT MAX(id) id FROM WHERE attendance_type='l' GROUP BY workerId ) + ) x cross join ( + + SELECT id,workerId,attendance_time FROM sur_project_attendance_data WHERE id IN ( + SELECT MIN(id) id FROM WHERE attendance_type='e' GROUP BY workerId ) + ) y on x.workerId=y.workerId + + ) m left join sur_project_attendance_user n on m.workerId=n.workerId + ) oo + + + + select count(1) cnt from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN ( + SELECT id FROM attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId} + ) group by workerid + ) + + + select workerid,attendance_type name,min(attendance_time) inTime,max(attendance_time) outTime from sur_project_attendance_data + where DATE(attendance_time)=date(#{createBy}) + + and workerid in + + #{item} + + + group by workerid,attendance_type + + + + select u.* from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN ( + SELECT id FROM attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId} + ) group by workerid + ) + order by u.id limit #{index},#{size} + + + + + select count(1) cnt from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=CURDATE() group by workerid + ) + + and g.companyTypeId in (1,6) + + + and g.companyTypeId in (0,2,3,4,5) + + + and g.companyTypeId =8 + + + and c.project_id=#{projectId} + + + and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{deptId}) + + + and c.project_id in + + #{item} + + + + + select a.* , + (select min(attendance_time) from sur_project_attendance_data b where b.workerId=a.workerId and date(b.attendance_time)=CURDATE() and b.attendance_type='e') inTime, + (SELECT Max(attendance_time) FROM sur_project_attendance_data b WHERE b.workerId=a.workerId AND DATE(b.attendance_time)=CURDATE() AND b.attendance_type='l') outTime + from ( + select u.* from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=CURDATE() + ) + + + and g.companyTypeId in (1,6) + + + and g.companyTypeId in (0,2,3,4,5) + + + and g.companyTypeId =8 + + + and c.project_id=#{projectId} + + + and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{deptId}) + + + and c.project_id in + + #{item} + + + order by u.id limit #{index},#{size} ) a + + + + select u.* from sur_project_attendance_user u, attendance_cfg c,view_sur_project_attendance_group g + where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId + and u.workerid in( + SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=CURDATE() group by workerid + ) + + + and g.companyTypeId in (1,6) + + + and g.companyTypeId in (0,2,3,4,5) + + + and g.companyTypeId =8 + + + and c.project_id=#{projectId} + + + and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{deptId}) + + + and c.project_id in + + #{item} + + + order by u.id limit #{index},#{size} + + + select workerid,attendance_type name,min(attendance_time) inTime,max(attendance_time) outTime from sur_project_attendance_data where DATE(attendance_time)=CURDATE() + + and workerid in + + #{item} + + + group by workerid,attendance_type + + + + select workerid,min(attendance_time) inTime,max(attendance_time) outTime from sur_project_attendance_data where cfgid=#{cfgid} and DATE(attendance_time)=#{date} + + and workerid in + + #{item} + + + group by workerid + + + + SELECT u.id,u.cfgid,u.app_id,u.vendors_code,u.workerId,u.laborWorkerId,u.workerCategory,u.qrCode,u.name, + u.ethnic,u.nativePlace,u.gender,u.birthDate,u.phone,u.photo,u.recentPhoto, + u.groupId,u.leader,u.workTypeCode,u.specWorkType, + u.hatCode,u.state,u.enterDate,u.exitDate,u.companyId,u.vendorId, + u.teamId,u.teamName,u.enterType,u.is_del,u.create_by,u.create_time,u.update_by,u.update_time, + b.project_id,b.sub_dept_id,u.companyName,u.workTypeName,u.groupName, + b.project_id,b.sub_dept_id, g.teamname remark,g.companyName degreeName + FROM sur_project_attendance_user u,attendance_cfg b,view_sur_project_attendance_group g,pro_project_info sp + WHERE u.cfgid=b.id and u.state=0 and u.companyId=g.companyId and sp.is_Del=0 and b.project_id = sp.id + + and g.companyTypeId in (1,6) + + + and g.companyTypeId =8 + + + and g.companyTypeId in (0,2,3,4,5) + + + and b.project_id=#{projectId} + + + and sp.dis_dept_id=#{deptId} + + and sp.project_Type = #{proType} + + and b.project_id in + + #{item} + + + + + + SELECT u.id,u.cfgid,u.app_id,u.vendors_code,u.workerId,u.laborWorkerId,u.workerCategory,u.qrCode,u.name, + u.ethnic,u.nativePlace,u.gender,u.birthDate,u.phone,u.photo,u.recentPhoto, + u.groupId,u.leader,u.workTypeCode,u.specWorkType, + u.hatCode,u.state,u.enterDate,u.exitDate,u.companyId,u.vendorId, + u.teamId,u.teamName,u.enterType,u.is_del,u.create_by,u.create_time,u.update_by,u.update_time, + b.project_id,b.sub_dept_id,u.companyName,u.workTypeName,u.groupName, + b.project_id,b.sub_dept_id, g.teamname remark,g.companyName degreeName,g.companyTypeId + FROM sur_project_attendance_user u,attendance_cfg b,view_sur_project_attendance_group g,pro_project_info sp + WHERE u.cfgid=b.id and u.companyId=g.companyId and sp.is_Del=0 and b.project_id = sp.id + + and g.companyTypeId in (1,6) + + + and g.companyTypeId =8 + + + and g.companyTypeId in (0,2,3,4,5) + + + and b.project_id=#{projectId} + + and u.id = #{id} + and u.state = #{state} + and u.name like concat('%', #{name}, '%') + order by id + + + + SELECT p.id, p.project_Name NAME,c.dept_name groupName,g.companyTypeId companyId,COUNT(1) cfgid + FROM sur_project_attendance_user u,attendance_cfg b,view_sur_project_attendance_group g,pro_project_info p,sys_dept c + where u.cfgid=b.id and u.state=0 and u.companyId=g.companyId and b.project_id=p.id and c.dept_id=b.dept_id + and p.is_Del=0 + and g.companyTypeId in (1,6,0,2,3,4,5,8) + + and p.dis_dept_id=#{deptId} + + and p.projectType = #{proType} + + and b.project_id in + + #{item} + + + group by p.projectName,c.dept_name,g.companyTypeId,p.id + order by p.id + + + + select '1' as type,g.companyTypeId,count(1) as total + from sur_project_attendance_user u + left join view_sur_project_attendance_group g on g.cfgid = u.cfgid and u.companyId=g.companyId + where u.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and g.companyTypeId in (0,1,2,3,4,5,6,8) + and u.state=0 + and u.name like concat('%', #{name}, '%') + group by g.companyTypeId + UNION ALL + select '2' as type,g.companyTypeId,count(1) as total + from sur_project_attendance_user u + left join view_sur_project_attendance_group g on g.cfgid = u.cfgid and u.companyId=g.companyId + where u.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and g.companyTypeId in (0,1,2,3,4,5,6,8) + and u.state=1 + and u.name like concat('%', #{name}, '%') + group by g.companyTypeId + + + + select '1' as type,g.companyTypeId,count(1) as total + from sur_project_attendance_user u + left join view_sur_project_attendance_group g on g.cfgid = u.cfgid and u.companyId=g.companyId + where u.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0) + and g.companyTypeId in (0,1,2,3,4,5,6,8) + and u.state=0 + group by g.companyTypeId + + + + SELECT p.id, p.project_Name NAME,c.dept_name groupName,g.companyTypeId companyId,COUNT(1) cfgid + FROM sur_project_attendance_user u,attendance_cfg b,view_sur_project_attendance_group g,pro_project_info p,sys_dept c + where u.cfgid=b.id and u.state= #{state} and u.companyId=g.companyId and b.project_id=p.id and c.dept_id=b.dept_id + and p.is_Del=0 + and g.companyTypeId in (1,6,0,2,3,4,5,8) + + and p.dis_dept_id=#{deptId} + + and p.project_Type = #{proType} + + and b.project_id in + + #{item} + + + group by p.projectName,c.dept_name,g.companyTypeId,p.id + order by p.id + + + + SELECT u.id,u.cfgid,u.app_id,u.vendors_code,u.workerId,u.laborWorkerId,u.workerCategory,u.qrCode,u.name, + u.ethnic,u.nativePlace,u.gender,u.birthDate,u.phone,u.photo,u.recentPhoto, + u.groupId,u.leader,u.workTypeCode,u.specWorkType, + u.hatCode,u.state,u.enterDate,u.exitDate,u.companyId,u.vendorId, + u.teamId,u.teamName,u.enterType,u.is_del,u.create_by,u.create_time,u.update_by,u.update_time, + b.project_id,b.dept_id,u.companyName,u.workTypeName,u.groupName, + g.teamname remark,g.companyName degreeName + FROM sur_project_attendance_user u,attendance_cfg b,view_sur_project_attendance_group g,pro_project_info sp + WHERE u.cfgid=b.id and u.state=#{state} and u.companyId=g.companyId and sp.is_Del=0 and b.project_id = sp.id + + and g.companyTypeId in (1,6) + + + and g.companyTypeId =8 + + + and g.companyTypeId in (0,2,3,4,5) + + + and b.project_id=#{projectId} + + + and sp.dis_dept_id=#{deptId} + + and sp.project_Type = #{proType} + + and b.project_id in + + #{item} + + + + + + \ No newline at end of file diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/ProjectAttendanceController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/ProjectAttendanceController.java new file mode 100644 index 00000000..e66ec1f1 --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/bigscreen/ProjectAttendanceController.java @@ -0,0 +1,122 @@ +package com.yanzhu.manage.controller.bigscreen; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.yanzhu.common.core.web.controller.BaseController; +import com.yanzhu.common.core.web.domain.AjaxResult; +import com.yanzhu.common.core.web.page.TableDataInfo; +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import com.yanzhu.manage.domain.SurProjectAttendanceUser; +import com.yanzhu.manage.service.ISurProjectAttendanceDataService; +import com.yanzhu.manage.service.ISurProjectAttendanceUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * 在岗出勤Conller + */ +@RestController +@RequestMapping("/bgscreen/attendance") +public class ProjectAttendanceController extends BaseController { + + @Autowired + ISurProjectAttendanceDataService attendanceDataService; + + @Autowired + ISurProjectAttendanceUserService attendanceUserService; + /** + * 今日出勤统计 + * @param where + * @return + */ + @PostMapping("/groupByComany") + public AjaxResult groupByComany(@RequestBody SurProjectAttendanceData where){ + where.setAttendanceTime(DateUtil.formatDate(DateTime.now())); + List list=attendanceDataService.groupTodayCompanyTypeId(where); + return AjaxResult.success(list); + } + + @PostMapping("/groupAllByComany") + public AjaxResult groupAllByComany(@RequestBody SurProjectAttendanceData where){ + List list=attendanceDataService.groupAllByComany(where); + return AjaxResult.success(list); + } + + + + /** + * 在岗工人查询 + * @param where + * @return + */ + @GetMapping("/workerOnDuty") + public TableDataInfo queryWorkerOnDuty(SurProjectAttendanceUser where){ + startPage(); + List list=attendanceUserService.queryWorkerOnDuty(where); + return getDataTable(list); + } + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + @GetMapping("/groupByWorkerOnDuty") + public AjaxResult groupByWorkerOnDuty(SurProjectAttendanceUser where){ + List list=attendanceUserService.groupByWorkerOnDutyByDept(where); + return AjaxResult.success(list); + } + + + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + @GetMapping("/queryWorkerByState") + public TableDataInfo queryWorkerByState(SurProjectAttendanceUser where){ + startPage(); + List list=attendanceUserService.queryWorkerByState(where); + return getDataTable(list); + } + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + @GetMapping("/groupByWorkerState") + public AjaxResult groupByWorkerState(SurProjectAttendanceUser where){ + List list=attendanceUserService.groupByWorkerByDept(where); + return AjaxResult.success(list); + } + /** + * 今日出勤详情 + */ + @PostMapping("/todayAttendance") + public TableDataInfo todayAttendance(@RequestBody SurProjectAttendanceData where){ + where.setAttendanceTime(DateUtil.formatDate(DateTime.now())); + startPage(); + List list = attendanceDataService.todayAttendance(where); + return getDataTable(list); + } + + @GetMapping("/list") + public TableDataInfo list(SurProjectAttendanceData surProjectAttendanceData) + { + startPage(); + String tmp=surProjectAttendanceData.getAttendanceTime(); + if(StrUtil.isNotEmpty(tmp)){ + int year= DateUtil.parse(tmp).year(); + surProjectAttendanceData.setYear(year); + } + List list = attendanceDataService.selectSurProjectAttendanceDataList(surProjectAttendanceData); + return getDataTable(list); + } + + + +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceDataService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceDataService.java new file mode 100644 index 00000000..992fc268 --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceDataService.java @@ -0,0 +1,140 @@ +package com.yanzhu.manage.service; + + +import com.yanzhu.manage.domain.SurProjectAttendanceData; + +import java.util.List; +import java.util.Map; + +/** + * 劳务实名制管理Service接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface ISurProjectAttendanceDataService +{ + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id); + + /** + * 查询劳务实名制管理列表 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 新增劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 修改劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData); + + /** + * 批量删除劳务实名制管理 + * + * @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 SurProjectAttendanceDataList 劳务实名制管理考勤列表 + * @return 结果 + */ + public int batchSurProjectAttendanceData(List SurProjectAttendanceDataList); + + + public String getLastServerId(SurProjectAttendanceData where); + + public List groupByComany(SurProjectAttendanceData where); + + public Long getHuazhuPage( SurProjectAttendanceData where); + + public List groupAllByComany(SurProjectAttendanceData where); + + public List> initOtherData(Map data); + + public List> initHuaZhuData(Map data); + + List todayAttendance(SurProjectAttendanceData where); + + /** + * 统计所有数据 + * @param where + * @return + */ + public List> groupAllByParams(SurProjectAttendanceData where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> findGroupAllByDays(SurProjectAttendanceData where); + + /** + * 考勤数据列表 + * @param where + * @return + */ + public List attendanceDataList(SurProjectAttendanceData where); + + /** + * 统计考勤数据 + * @param where + * @return + */ + public List> groupDataByParams(SurProjectAttendanceData where); + + List groupTodayCompanyTypeId(SurProjectAttendanceData where); + + + List selectSurProjectAttendanceDataListByMonth(SurProjectAttendanceData attWhere); + + List selectSurProjectAttendanceDataListByDate(SurProjectAttendanceData attWhere); +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceGroupService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceGroupService.java new file mode 100644 index 00000000..bed8965c --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceGroupService.java @@ -0,0 +1,95 @@ +package com.yanzhu.manage.service; + + +import com.yanzhu.manage.domain.SurProjectAttendanceGroup; + +import java.util.List; + +/** + * 广联达班组信息Service接口 + * + * @author ruoyi + * @date 2023-09-26 + */ +public interface ISurProjectAttendanceGroupService +{ + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 新增广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 修改广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup); + + /** + * 批量删除广联达班组信息 + * + * @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 surProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + public int batchSurProjectAttendanceGroup(List surProjectAttendanceGroupList); + + public void add(SurProjectAttendanceGroup group); + + /** + * 更新济工网的分组类型 + * @param group + */ + public void updateJgw(SurProjectAttendanceGroup group); +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceUserService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceUserService.java new file mode 100644 index 00000000..c29d7ddd --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/ISurProjectAttendanceUserService.java @@ -0,0 +1,162 @@ +package com.yanzhu.manage.service; + +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import com.yanzhu.manage.domain.SurProjectAttendanceUser; + +import java.util.List; +import java.util.Map; + +/** + * 考勤人员基本属性Service接口 + * + * @author ruoyi + * @date 2023-09-24 + */ +public interface ISurProjectAttendanceUserService +{ + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id); + + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 查询[研筑]考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 查询考勤人员基本属性列表 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性集合 + */ + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 新增考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 修改考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 批量删除考勤人员基本属性 + * + * @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 surProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + public int batchSurProjectAttendanceUser(List surProjectAttendanceUserList); + + public void add(SurProjectAttendanceUser user); + + public List queryAttendanceData(SurProjectAttendanceUser where); + + public long countTodayAttendance(SurProjectAttendanceUser where); + + public List todayAttendance(SurProjectAttendanceUser where); + + public long countAttendance(SurProjectAttendanceUser where); + + /** + * 济工网人员查询 + * @param surProjectAttendanceUser + * @return + */ + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser surProjectAttendanceUser); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List queryWorkerOnDuty(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where); + + /** + * 在岗工人查询 + * @param where + * @return + */ + public List attendanceUserList(SurProjectAttendanceUser where); + + /** + * 统计人员数据 + * @param projectId + * @return + */ + public List> findUserAllByDays(Long projectId); + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where); + + List querySurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser); + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + List groupByWorkerByDept(SurProjectAttendanceUser where); + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + List queryWorkerByState(SurProjectAttendanceUser where); +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceDataServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceDataServiceImpl.java new file mode 100644 index 00000000..75d22efb --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceDataServiceImpl.java @@ -0,0 +1,292 @@ +package com.yanzhu.manage.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.manage.domain.AttendanceCfg; +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import com.yanzhu.manage.domain.SurProjectAttendanceGroup; +import com.yanzhu.manage.domain.SurProjectAttendanceUser; +import com.yanzhu.manage.mapper.AttendanceCfgMapper; +import com.yanzhu.manage.mapper.SurProjectAttendanceDataMapper; +import com.yanzhu.manage.mapper.SurProjectAttendanceGroupMapper; +import com.yanzhu.manage.mapper.SurProjectAttendanceUserMapper; +import com.yanzhu.manage.service.ISurProjectAttendanceDataService; +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 SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanceDataService +{ + @Autowired + private SurProjectAttendanceDataMapper surProjectAttendanceDataMapper; + + @Autowired + private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper; + + @Autowired + private SurProjectAttendanceGroupMapper surProjectAttendanceGroupMapper; + + @Autowired + private AttendanceCfgMapper surProjectAttendanceCfgMapper; + + + /** + * 查询劳务实名制管理 + * + * @param id 劳务实名制管理主键 + * @return 劳务实名制管理 + */ + @Override + public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id) + { + return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataById(id); + } + + /** + * 查询劳务实名制管理列表 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理 + */ + @Override + public List selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData) + { + return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(surProjectAttendanceData); + } + + /** + * 查询考勤信息 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 劳务实名制管理集合 + */ + @Override + public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData){ + return surProjectAttendanceDataMapper.findCurrentAttendanceData(surProjectAttendanceData); + } + + @Override + public List selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData) + { + return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListEx(surProjectAttendanceData); + } + + /** + * 新增劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) + { + if(StringUtils.isEmpty(surProjectAttendanceData.getCreateBy())){ + surProjectAttendanceData.setCreateBy("task"); + surProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); + } + return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData); + } + + /** + * 修改劳务实名制管理 + * + * @param surProjectAttendanceData 劳务实名制管理 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) + { + if(StringUtils.isEmpty(surProjectAttendanceData.getCreateBy())){ + surProjectAttendanceData.setUpdateBy("task"); + } + surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); + return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData); + } + + /** + * 批量删除劳务实名制管理 + * + * @param ids 需要删除的劳务实名制管理主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataByIds(Long[] ids) + { + return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByIds(ids); + } + + /** + * 删除劳务实名制管理信息 + * + * @param id 劳务实名制管理主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataById(Long id) + { + return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id); + } + + /** + * 批量删除劳务实名制管理 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceDataByParams(List list) { + return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByParams(list); + } + + /** + * 批量新增劳务实名制考勤管理 + * + * @param SurProjectAttendanceDataList 劳务实名制考勤管理列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceData(List SurProjectAttendanceDataList) { + return surProjectAttendanceDataMapper.batchSurProjectAttendanceData(SurProjectAttendanceDataList,DateUtils.dateTimeNow(DateUtils.YYYY)); + } + + private String getHuazhuCompanyTypeId(String groupName) { + return surProjectAttendanceDataMapper.findHuaZhuCompanyType(groupName); + } + + @Override + public String getLastServerId(SurProjectAttendanceData where) { + return ""+surProjectAttendanceDataMapper.getLastServerId(where); + } + + @Override + public List groupByComany(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.groupByComany(where); + } + + @Override + public Long getHuazhuPage( SurProjectAttendanceData attWhere) { + return surProjectAttendanceDataMapper.getHuazhuPage(attWhere); + } + + @Override + public List groupAllByComany(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.groupAllByComany(where); + } + + @Override + public List> initOtherData(Map data) { + List> dataList = new ArrayList<>(); + List> list = surProjectAttendanceDataMapper.initOtherData(data); + if(StringUtils.isNotEmpty(list)){ + List workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList()); + data.put("list",workerIds); + List datas=surProjectAttendanceUserMapper.todayAttendanceOtherData(data); + for (Map map:list) { + for(SurProjectAttendanceUser sau:datas){ + if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ + map.put("inTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getInTime())); + map.put("outTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getOutTime())); + dataList.add(map); + } + } + } + } + return dataList; + } + + @Override + public List> initHuaZhuData(Map data) { + List> dataList = new ArrayList<>(); + List> list = surProjectAttendanceDataMapper.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=surProjectAttendanceUserMapper.todayAttendanceOtherData(data); + for (Map map:list) { + for(SurProjectAttendanceUser sau:datas){ + if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){ + map.put("inTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getInTime())); + map.put("outTime",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sau.getOutTime())); + dataList.add(map); + } + } + } + } + return dataList; + } + + @Override + public List todayAttendance(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.todayAttendance(where); + } + + /** + * 统计所有数据 + * @param where + * @return + */ + @Override + public List> groupAllByParams(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.findGroupAllByParams(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + @Override + public List> findGroupAllByDays(SurProjectAttendanceData where){ + return surProjectAttendanceDataMapper.findGroupAllByDays(where); + } + + /** + * 统计考勤数据 + * @param where + * @return + */ + @Override + public List> groupDataByParams(SurProjectAttendanceData where){ + return surProjectAttendanceDataMapper.groupDataByParams(where); + } + + /** + * 考勤数据列表 + * @param where + * @return + */ + @Override + public List attendanceDataList(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.attendanceDataList(where); + } + + @Override + public List groupTodayCompanyTypeId(SurProjectAttendanceData where) { + return surProjectAttendanceDataMapper.groupTodayCompanyTypeId(where); + } + + + @Override + public List selectSurProjectAttendanceDataListByMonth(SurProjectAttendanceData attWhere) { + return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListByMonth(attWhere); + } + + @Override + public List selectSurProjectAttendanceDataListByDate(SurProjectAttendanceData attWhere) { + return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListByDate(attWhere); + } + +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceGroupServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceGroupServiceImpl.java new file mode 100644 index 00000000..414a9583 --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceGroupServiceImpl.java @@ -0,0 +1,162 @@ +package com.yanzhu.manage.service.impl; + +import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.utils.StringUtils; +import com.yanzhu.manage.domain.SurProjectAttendanceGroup; +import com.yanzhu.manage.mapper.SurProjectAttendanceGroupMapper; +import com.yanzhu.manage.service.ISurProjectAttendanceGroupService; +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 SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendanceGroupService +{ + @Autowired + private SurProjectAttendanceGroupMapper surProjectAttendanceGroupMapper; + + /** + * 查询广联达班组信息 + * + * @param id 广联达班组信息主键 + * @return 广联达班组信息 + */ + @Override + public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id) + { + return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupById(id); + } + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息 + */ + @Override + public List selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup) + { + return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupViewList(surProjectAttendanceGroup); + } + + /** + * 查询广联达班组信息列表 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 广联达班组信息集合 + */ + public List selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup) { + return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup); + } + /** + * 新增广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) + { + if(StringUtils.isEmpty(surProjectAttendanceGroup.getCreateBy())){ + surProjectAttendanceGroup.setCreateBy("task"); + } + return surProjectAttendanceGroupMapper.insertSurProjectAttendanceGroup(surProjectAttendanceGroup); + } + + /** + * 修改广联达班组信息 + * + * @param surProjectAttendanceGroup 广联达班组信息 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) + { + if(StringUtils.isEmpty(surProjectAttendanceGroup.getCreateBy())){ + surProjectAttendanceGroup.setUpdateBy("task"); + } + surProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate()); + return surProjectAttendanceGroupMapper.updateSurProjectAttendanceGroup(surProjectAttendanceGroup); + } + + /** + * 批量删除广联达班组信息 + * + * @param ids 需要删除的广联达班组信息主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupByIds(Long[] ids) + { + return surProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupByIds(ids); + } + + /** + * 删除广联达班组信息信息 + * + * @param id 广联达班组信息主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupById(Long id) + { + return surProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupById(id); + } + + /** + * 批量删除广联达班组信息 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceGroupByParams(List list) { + return surProjectAttendanceGroupMapper.deleteSurProjectAttendanceGroupByParams(list); + } + + /** + * 批量新增广联达班组信息 + * + * @param surProjectAttendanceGroupList 广联达班组信息列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceGroup(List surProjectAttendanceGroupList) { + return surProjectAttendanceGroupMapper.batchSurProjectAttendanceGroup(surProjectAttendanceGroupList); + } + + @Override + public void add(SurProjectAttendanceGroup group) { + SurProjectAttendanceGroup where=new SurProjectAttendanceGroup(); + where.setServerid(group.getServerid()); + where.setCfgid(group.getCfgid()); + List list=selectSurProjectAttendanceGroupList(where); + if(list.size()==0){ + insertSurProjectAttendanceGroup(group); + }else{ + group.setId(list.get(0).getId()); + updateSurProjectAttendanceGroup(group); + } + } + + /** + * 更新济工网的分组类型 + * @param group + */ + @Override + public void updateJgw(SurProjectAttendanceGroup group) { + SurProjectAttendanceGroup where=new SurProjectAttendanceGroup(); + where.setBizLicense(group.getBizLicense()); + List list=selectSurProjectAttendanceGroupList(where); + for(SurProjectAttendanceGroup g:list){ + g.setCompanyTypeId(group.getCompanyTypeId()); + updateSurProjectAttendanceGroup(g); + } + } +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceUserServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceUserServiceImpl.java new file mode 100644 index 00000000..3758419d --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/SurProjectAttendanceUserServiceImpl.java @@ -0,0 +1,314 @@ +package com.yanzhu.manage.service.impl; + +import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.utils.StringUtils; +import com.yanzhu.manage.domain.AttendanceCfg; +import com.yanzhu.manage.domain.SurProjectAttendanceData; +import com.yanzhu.manage.domain.SurProjectAttendanceUser; +import com.yanzhu.manage.mapper.SurProjectAttendanceUserMapper; +import com.yanzhu.manage.service.ISurProjectAttendanceUserService; +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 SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanceUserService +{ + @Autowired + private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper; + + /** + * 查询考勤人员基本属性 + * + * @param id 考勤人员基本属性主键 + * @return 考勤人员基本属性 + */ + @Override + public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id) + { + return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id); + } + + /** + * 查询考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + @Override + public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) { + return surProjectAttendanceUserMapper.findCurrentAttendanceUser(surProjectAttendanceUser); + } + + /** + * 查询[研筑]考勤人员信息 + * + * @param surProjectAttendanceUser + * @return 考勤人员基本属性 + */ + public SurProjectAttendanceUser findYzCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser){ + return surProjectAttendanceUserMapper.findYzCurrentAttendanceUser(surProjectAttendanceUser); + } + + /** + * 查询考勤人员基本属性列表 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 考勤人员基本属性 + */ + @Override + public List selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser) + { + return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(surProjectAttendanceUser); + } + + /** + * 新增考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + @Override + public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) + { + if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){ + surProjectAttendanceUser.setCreateBy("task"); + surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); + } + return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser); + } + + /** + * 修改考勤人员基本属性 + * + * @param surProjectAttendanceUser 考勤人员基本属性 + * @return 结果 + */ + @Override + public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) + { + if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){ + surProjectAttendanceUser.setUpdateBy("task"); + } + surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); + return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser); + } + + /** + * 批量删除考勤人员基本属性 + * + * @param ids 需要删除的考勤人员基本属性主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserByIds(Long[] ids) + { + return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByIds(ids); + } + + /** + * 删除考勤人员基本属性信息 + * + * @param id 考勤人员基本属性主键 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserById(Long id) + { + return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id); + } + + /** + * 批量删除考勤人员基本属性 + * + * @param list 需要删除的数据参数集合 + * @return 结果 + */ + @Override + public int deleteSurProjectAttendanceUserByParams(List list) { + return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByParams(list); + } + + /** + * 批量新增考勤人员基本属性 + * + * @param surProjectAttendanceUserList 考勤人员基本属性列表 + * @return 结果 + */ + @Override + public int batchSurProjectAttendanceUser(List surProjectAttendanceUserList) { + return surProjectAttendanceUserMapper.batchSurProjectAttendanceUser(surProjectAttendanceUserList); + } + + @Override + public void add(SurProjectAttendanceUser user) { + SurProjectAttendanceUser where=new SurProjectAttendanceUser(); + where.setWorkerId(user.getWorkerId()); + where.setCfgid(user.getCfgid()); + List list=selectSurProjectAttendanceUserList(where); + if(list.size()==0){ + insertSurProjectAttendanceUser(user); + }else{ + SurProjectAttendanceUser old=list.get(0); + if(user.getVendorsCode().equals("jgw")){ + user.setCompanyId(old.getCompanyId()); + String oldNav=old.getNativePlace(); + String newNav=user.getNativePlace(); + if(oldNav==null || !oldNav.equals(newNav)){ + old.setNativePlace(newNav); + } + } + user.setId(old.getId()); + updateSurProjectAttendanceUser(user); + } + } + + @Override + public List queryAttendanceData(SurProjectAttendanceUser where) { + List list= surProjectAttendanceUserMapper.queryAttendanceUsers(where); + List workerIds=new ArrayList<>(); + for(SurProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + where.setWorkerIds(workerIds); + List datas=surProjectAttendanceUserMapper.todayAttendanceData(workerIds); + for (SurProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countTodayAttendance(SurProjectAttendanceUser where) { + return surProjectAttendanceUserMapper.countTodayAttendance(where); + } + + @Override + public List todayAttendance(SurProjectAttendanceUser where) { + if(where.getIndex()<1){ + where.setIndex(1); + } + where.setIndex((where.getIndex()-1)* where.getSize()); + List list= surProjectAttendanceUserMapper.todayAttendance(where); + List workerIds=new ArrayList<>(); + for(SurProjectAttendanceUser u: list){ + workerIds.add(u.getWorkerId()); + } + List datas=surProjectAttendanceUserMapper.todayAttendanceData(workerIds); + for (SurProjectAttendanceUser u:list) { + u.setInTime(findDate(datas,u,"E")); + u.setOutTime(findDate(datas,u,"L")); + } + return list; + } + + @Override + public long countAttendance(SurProjectAttendanceUser user) { + AttendanceCfg where=new AttendanceCfg(); + where.setCreateBy(user.getCreateBy()); + where.setDeptId(user.getSubDeptId()); + where.setProjectId(user.getProjectId()); + return surProjectAttendanceUserMapper.countAttendance(where); + } + + @Override + public List selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser surProjectAttendanceUser) { + return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserListJgw(surProjectAttendanceUser); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerOnDuty(SurProjectAttendanceUser where) { + return surProjectAttendanceUserMapper.queryWorkerOnDuty(where); + } + + /** + * 统计人员数据 + * @param where + * @return + */ + public List> groupUserByParams(SurProjectAttendanceUser where){ + return surProjectAttendanceUserMapper.groupUserByParams(where); + } + + /** + * 在岗工人查询 + * @param where + * @return + */ + @Override + public List attendanceUserList(SurProjectAttendanceUser where){ + return surProjectAttendanceUserMapper.attendanceUserList(where); + } + + /** + * 统计人员数据 + * @param projectId + * @return + */ + @Override + public List> findUserAllByDays(Long projectId){ + return surProjectAttendanceUserMapper.findUserAllByDays(projectId); + } + + /** + * 按部门汇总在岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerOnDutyByDept(SurProjectAttendanceUser where) { + return surProjectAttendanceUserMapper.groupByWorkerOnDutyByDept(where); + } + + @Override + public List querySurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser) { + return surProjectAttendanceUserMapper.querySurProjectAttendanceUserList(surProjectAttendanceUser); + } + /** + * 按部门汇总在岗|离岗人数 + * @param where + * @return + */ + @Override + public List groupByWorkerByDept(SurProjectAttendanceUser where) { + return surProjectAttendanceUserMapper.groupByWorkerByDept(where); + } + /** + * 在岗|离岗工人查询 + * @param where + * @return + */ + @Override + public List queryWorkerByState(SurProjectAttendanceUser where) { + return surProjectAttendanceUserMapper.queryWorkerByState(where); + } + + private Date findDate(List datas, SurProjectAttendanceUser u, String type) { + for (SurProjectAttendanceUser user:datas) { + if(user.getWorkerId().equals(u.getWorkerId()) && user.getName().equals(type)){ + if(type.equals("L")){ + return user.getOutTime(); + }else{ + return user.getInTime(); + } + } + } + return null; + } + +}