Commit b5b610a3 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	db/menu.sql
parents 8ed1e363 fb096215
...@@ -91,6 +91,9 @@ sub { ...@@ -91,6 +91,9 @@ sub {
.mt10{ .mt10{
margin-top: 10px; margin-top: 10px;
} }
.ml10{
margin-left: 10px;
}
.ml20{ .ml20{
margin-left: 20px; margin-left: 20px;
} }
......
...@@ -210,3 +210,11 @@ export const findParentIds = (dataSource, nodeId) => { ...@@ -210,3 +210,11 @@ export const findParentIds = (dataSource, nodeId) => {
return parentIds; // 返回所有父节点ID的数组 return parentIds; // 返回所有父节点ID的数组
} }
// 格式化
export const booleanToNum = (val) => {
if(val){
return 1
}else{
return 0
}
}
\ No newline at end of file
...@@ -16,4 +16,27 @@ export const timestampToTime = (timestamp) => { ...@@ -16,4 +16,27 @@ export const timestampToTime = (timestamp) => {
var m = date.getMinutes() + ":"; var m = date.getMinutes() + ":";
var s = date.getSeconds(); var s = date.getSeconds();
return Y + M + D; return Y + M + D;
} }
\ No newline at end of file // 小时:分钟 ==》 转分钟
export const transFormMinut = (String) => {
if(typeof(String) === 'number'){
return
}
if(!String){
return 0
}
let arr = String.split(':')
let hour = arr[0].indexOf('0') === 0? arr[0].substring(1,arr[0].length):arr[0]
let minu = arr[1].indexOf('0') === 0? arr[1].substring(1,arr[1].length):arr[1]
return hour*60 + minu*1
}
// // 分钟 ==》 小时
export const transFormTime = (num) => {
if (typeof(num) != 'string' && num !== 0) {
return (Math.floor(num / 60)).toString() + ":" + (num % 60).toString()
}
else {
return "0:00";
}
}
\ No newline at end of file
...@@ -53,15 +53,15 @@ ...@@ -53,15 +53,15 @@
return { return {
/** 子表列元素 */ /** 子表列元素 */
columnSet:[ columnSet:[
{prop:"goWorkDate",label:"上班打卡时间",width:100}, {prop:"goWorkDate",label:"上班打卡时间",width:150},
{prop:"goWorkDateBefore",label:"上班打卡前时间段,单位分钟",width:100}, {prop:"goWorkDateBefore",label:"上班前打卡(分钟)",width:150},
{prop:"goWorkDateAfter",label:"上班打卡前时间段,单位分钟",width:100}, {prop:"goWorkDateAfter",label:"上班后打卡(分钟)",width:150},
{prop:"offWorkDate",label:"下班打卡时间",width:100}, {prop:"offWorkDate",label:"下班打卡时间",width:150},
{prop:"offWorkDateBefore",label:"下班打卡前时间段,单位分钟",width:100}, {prop:"offWorkDateBefore",label:"下班前打卡(分钟)",width:150},
{prop:"offWorkDateAfter",label:"下班打卡前时间段,单位分钟",width:100}, {prop:"offWorkDateAfter",label:"下班后打卡(分钟)",width:150},
{prop:"remark",label:"备注",width:100}, // {prop:"remark",label:"备注",width:150},
{prop:"classId",label:"班次ID",width:100}, // {prop:"classId",label:"班次ID",width:150},
{prop:"className",label:"班次名称",width:100} ], ],
config: { config: {
search: [ search: [
{ {
...@@ -75,11 +75,10 @@ ...@@ -75,11 +75,10 @@
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "班次名称", prop: "className"}, {label: "班次名称", prop: "className"},
// {label: "考勤时间", prop: "className"}, // {label: "考勤时间", prop: "className"},
{label: "考勤班次详细信息", {label: "考勤班次详细信息",
width: 120, width: 200,
prop: "subColumns", prop: "subColumns",
formatter: (row) => { formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => { let widthsize = this.columnSet.reduce((pre, cur) => {
......
<template>
<div class="mt20" v-if="isshow">
<el-table :data="classArr" border highlight-current-row ref="table"
@row-click="(row, column, event) => $rowClick(row,column, event, 'table')"
>
<el-table-column label="班次名称" prop="className" width="300px"></el-table-column>
<el-table-column label="考勤时间" prop="" fixed="right">
<template slot-scope="scope">
<div>
<el-tag class="ml10" v-for="(item,index) in scope.row.attendanceClassDetailList" :key="index">
{{item.goWorkDate}} ~ {{item.offWorkDate}}
</el-tag>
</div>
</template>
</el-table-column>
</el-table>
<div class="mt20">
<el-button type="primary" size="mini" @click="saveRowBanci">确定</el-button>
<el-button type="" size="mini" @click="cancelBanci">取消</el-button>
</div>
</div>
</template>
<script>
export default {
props:{
classArr:{
type:Array,
default:[]
},
currentArr:{
type:Object,
default:{}
},
isshow:{
type:Boolean,
default:false
}
},
watch:{
isshow:{
handler(newval){
if(newval){
this.selected = this.currentArr
this.$nextTick(() => {
let index = this.classArr.findIndex(item => item.id == this.selected.id)
this.$refs['table'].setCurrentRow(this.classArr[index],true)
})
}
}
}
},
data(){
return{
selected:{}
}
},
methods:{
saveRowBanci(){
this.$emit('saveRowBanci',this.selected)
},
cancelBanci(){
this.$emit('cancelBanci',null)
},
// 表格切换高亮点击
$rowClick (row, column, ev, ref) {
this.selected = row
const $table = this.$refs[ref]
// 因为不知道表格中包裹了多少层元素,所以需要通过查询点击元素的所有父级元素找到符合条件的类名进行判断
const haveHeightLight = [...ev.path].some(el => {
if (el.classList) return [...el.classList].indexOf('el-table__row') !== -1 && [...el.classList].indexOf('current-row') !== -1
})
try {
$table[0].setCurrentRow(haveHeightLight ? '' : row)
} catch (e) {
$table.setCurrentRow(haveHeightLight ? '' : row)
}
},
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<table class="table mt10">
<th class="heads flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox v-model="selectAll" @change="allhandler"></el-checkbox>
</td>
<td class="t1">工作日</td>
<td class="t2">班次时间段</td>
<td class="t1">操作</td>
</th>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.monday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周一</td>
<td class="t2">
<span>{{setParams.mondayClassId?setParams.mondayClassName:'未设置'}}</span>
<el-tag v-for="(item,index) in setParams.mondayClassTime.attendanceClassDetailList" :key="index" class="ml10">
{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('monday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.tuesday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周二</td>
<td class="t2">
{{setParams.tuesdayClassId?setParams.tuesdayClassName:'未设置'}}
<el-tag class="ml10" v-for="(item,index) in setParams.tuesdayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('tuesday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.wednesday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周三</td>
<td class="t2">
{{setParams.wednesdayClassId?setParams.wednesdayClassName:'未设置'}}
<el-tag class="ml10" v-for="(item,index) in setParams.wednesdayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('wednesday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.thursday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周四</td>
<td class="t2">
{{setParams.thursdayClassId?setParams.thursdayClassName:'未设置'}}
<el-tag class="ml10" v-for="(item,index) in setParams.thursdayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('thursday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.friday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周五</td>
<td class="t2">
{{setParams.fridayClassId?setParams.fridayClassName:'未设置'}}
<el-tag class="ml10" v-for="(item,index) in setParams.fridayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('friday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.saturday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周六</td>
<td class="t2">
{{setParams.saturdayClassId?setParams.saturdayClassName:'休息'}}
<el-tag class="ml10" v-for="(item,index) in setParams.saturdayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('saturday')">更改班次</el-button>
</td>
</tr>
<tr class="flex flex-align-center flex-pack-justify">
<td class="selectTions">
<el-checkbox :true-label="1" :false-label="0" v-model="setParams.sunday" @change="judgeAll"></el-checkbox>
</td>
<td class="t1">周日</td>
<td class="t2">
{{setParams.sundayClassId?setParams.sundayClassName:'休息'}}
<el-tag class="ml10" v-for="(item,index) in setParams.sundayClassTime.attendanceClassDetailList" :key="index">{{item.goWorkDate}}~{{item.offWorkDate}}</el-tag>
</td>
<td class="t1">
<el-button type="text" @click="changebanci('sunday')">更改班次</el-button>
</td>
</tr>
</table>
</template>
<script>
export default {
props:{
setParams:{
type:Object,
default:{}
}
},
data(){
return{
selectAll:false
}
},
mounted(){
// 判断全选
this.judgeAll()
},
methods:{
changebanci(from){
this.$emit('changebanci',from)
},
allhandler(){
if(this.selectAll){
this.setParams.monday = true
this.setParams.tuesday = true
this.setParams.wednesday = true
this.setParams.thursday = true
this.setParams.friday = true
this.setParams.saturday = true
this.setParams.sunday = true
}else{
this.setParams.monday = false
this.setParams.tuesday = false
this.setParams.wednesday = false
this.setParams.thursday = false
this.setParams.friday = false
this.setParams.saturday = false
this.setParams.sunday = false
}
},
judgeAll(){
if(!this.setParams.monday){
this.selectAll = false
return
}
if(!this.setParams.tuesday){
this.selectAll = false
return
}
if(!this.setParams.wednesday){
this.selectAll = false
return
}
if(!this.setParams.thursday){
this.selectAll = false
return
}
if(!this.setParams.friday){
this.selectAll = false
return
}
if(!this.setParams.saturday){
this.selectAll = false
return
}
if(!this.setParams.sunday){
this.selectAll = false
return
}
this.selectAll = true
}
}
}
</script>
<style lang="scss" scoped>
.table{
width: 90%;
.selectTions{
margin-right: 10px;
}
.heads{
background-color: #cae4fd;
height: 50px;
line-height: 50px;
padding: 0 20px;
}
tr{
height: 50px;
line-height: 50px;
padding: 0 20px;
}
.t1{
flex: 1
}
.t2{
flex: 2;
color:gray;
}
}
</style>
\ No newline at end of file
...@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.ImportResource;
@EnableFeignClients @EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.mortals"}) @SpringBootApplication(scanBasePackages = {"com.mortals"})
@ServletComponentScan("com.mortals") @ServletComponentScan("com.mortals")
...@@ -17,10 +18,12 @@ public class ManagerApplication extends BaseWebApplication { ...@@ -17,10 +18,12 @@ public class ManagerApplication extends BaseWebApplication {
// return new LocalCacheServiceImpl(); // return new LocalCacheServiceImpl();
// } // }
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ManagerApplication.class, args); SpringApplication.run(ManagerApplication.class, args);
System.out.println(123465); System.out.println("考勤管理项目启动!!!!!!!!!!!!!");
}
}
} }
...@@ -63,4 +63,4 @@ public enum ErrorStatusEnum { ...@@ -63,4 +63,4 @@ public enum ErrorStatusEnum {
} }
return resultMap; return resultMap;
} }
} }
\ No newline at end of file
...@@ -2,7 +2,7 @@ package com.mortals.xhx.module.attendance.dao; ...@@ -2,7 +2,7 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao; import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; import com.mortals.xhx.module.attendance.model.AttendanceStatEntity;
import java.util.List;
/** /**
* 考勤汇总信息Dao * 考勤汇总信息Dao
* 考勤汇总信息 DAO接口 * 考勤汇总信息 DAO接口
...@@ -12,6 +12,9 @@ import java.util.List; ...@@ -12,6 +12,9 @@ import java.util.List;
*/ */
public interface AttendanceStatDao extends ICRUDDao<AttendanceStatEntity,Long>{ public interface AttendanceStatDao extends ICRUDDao<AttendanceStatEntity,Long>{
/**
* 通过员工id查询
* */
AttendanceStatEntity queryEntity(Long staffId);
} }
...@@ -2,7 +2,6 @@ package com.mortals.xhx.module.attendance.dao; ...@@ -2,7 +2,6 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao; import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity; import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import java.util.List;
/** /**
* 员工假期余额信息Dao * 员工假期余额信息Dao
* 员工假期余额信息 DAO接口 * 员工假期余额信息 DAO接口
...@@ -13,5 +12,8 @@ import java.util.List; ...@@ -13,5 +12,8 @@ import java.util.List;
public interface AttendanceVacationBalanceDao extends ICRUDDao<AttendanceVacationBalanceEntity,Long>{ public interface AttendanceVacationBalanceDao extends ICRUDDao<AttendanceVacationBalanceEntity,Long>{
/**
* 通过员工id查询
* */
AttendanceVacationBalanceEntity queryEntity(Long staffId);
} }
package com.mortals.xhx.module.attendance.dao.ibatis; package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository; import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.attendance.dao.AttendanceStatDao; import com.mortals.xhx.module.attendance.dao.AttendanceStatDao;
import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; import com.mortals.xhx.module.attendance.model.AttendanceStatEntity;
import java.util.Date; import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/** /**
* 考勤汇总信息DaoImpl DAO接口 * 考勤汇总信息DaoImpl DAO接口
* *
...@@ -17,5 +15,8 @@ import java.util.List; ...@@ -17,5 +15,8 @@ import java.util.List;
public class AttendanceStatDaoImpl extends BaseCRUDDaoMybatis<AttendanceStatEntity,Long> implements AttendanceStatDao { public class AttendanceStatDaoImpl extends BaseCRUDDaoMybatis<AttendanceStatEntity,Long> implements AttendanceStatDao {
@Override
public AttendanceStatEntity queryEntity(Long staffId) {
return getSqlSession().selectOne(getSqlId("queryEntity"),staffId);
}
} }
package com.mortals.xhx.module.attendance.dao.ibatis; package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository; import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.attendance.dao.AttendanceVacationBalanceDao; import com.mortals.xhx.module.attendance.dao.AttendanceVacationBalanceDao;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity; import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import java.util.Date; import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/** /**
* 员工假期余额信息DaoImpl DAO接口 * 员工假期余额信息DaoImpl DAO接口
* *
...@@ -17,5 +15,8 @@ import java.util.List; ...@@ -17,5 +15,8 @@ import java.util.List;
public class AttendanceVacationBalanceDaoImpl extends BaseCRUDDaoMybatis<AttendanceVacationBalanceEntity,Long> implements AttendanceVacationBalanceDao { public class AttendanceVacationBalanceDaoImpl extends BaseCRUDDaoMybatis<AttendanceVacationBalanceEntity,Long> implements AttendanceVacationBalanceDao {
@Override
public AttendanceVacationBalanceEntity queryEntity(Long staffId) {
return getSqlSession().selectOne(getSqlId("queryEntity"),staffId);
}
} }
...@@ -3,6 +3,8 @@ package com.mortals.xhx.module.attendance.model; ...@@ -3,6 +3,8 @@ package com.mortals.xhx.module.attendance.model;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
...@@ -28,6 +30,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo { ...@@ -28,6 +30,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/** /**
* 上班打卡时间 * 上班打卡时间
*/ */
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date goWorkDate; private Date goWorkDate;
/** /**
* 上班打卡前时间段,单位分钟 * 上班打卡前时间段,单位分钟
...@@ -40,6 +44,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo { ...@@ -40,6 +44,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/** /**
* 下班打卡时间 * 下班打卡时间
*/ */
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date offWorkDate; private Date offWorkDate;
/** /**
* 下班打卡前时间段,单位分钟 * 下班打卡前时间段,单位分钟
...@@ -237,4 +243,4 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo { ...@@ -237,4 +243,4 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
this.remark = ""; this.remark = "";
} }
} }
\ No newline at end of file
...@@ -8,170 +8,188 @@ import com.mortals.framework.annotation.Excel; ...@@ -8,170 +8,188 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo; import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo;
/** /**
* 考勤打卡记录详细信息实体对象 * 考勤打卡记录详细信息实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-09
*/ */
public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 考勤记录ID * 考勤记录ID
*/ */
private Long recordId; private Long recordId;
/** /**
* 班次ID * 班次ID
*/ */
private Long shiftsId; private Long shiftsId;
/** /**
* 班次名称 * 班次名称
*/ */
private String shiftsName; private String shiftsName;
/** /**
* 上班打卡时间 * 上班打卡时间
*/ */
private Date goWorkDate; private Date goWorkDate;
/** /**
* 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/ */
private Integer goWorkResult; private Integer goWorkResult;
/** /**
* 下班打卡时间 * 下班打卡时间
*/ */
private Date offWorkDate; private Date offWorkDate;
/** /**
* 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/ */
private Integer offWorkResult; private Integer offWorkResult;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 排序字段
*/
private Integer orderNum;
public AttendanceRecordDetailEntity(){} public AttendanceRecordDetailEntity(){}
/** /**
* 获取 考勤记录ID * 获取 考勤记录ID
* @return Long * @return Long
*/ */
public Long getRecordId(){ public Long getRecordId(){
return recordId; return recordId;
} }
/** /**
* 设置 考勤记录ID * 设置 考勤记录ID
* @param recordId * @param recordId
*/ */
public void setRecordId(Long recordId){ public void setRecordId(Long recordId){
this.recordId = recordId; this.recordId = recordId;
} }
/** /**
* 获取 班次ID * 获取 班次ID
* @return Long * @return Long
*/ */
public Long getShiftsId(){ public Long getShiftsId(){
return shiftsId; return shiftsId;
} }
/** /**
* 设置 班次ID * 设置 班次ID
* @param shiftsId * @param shiftsId
*/ */
public void setShiftsId(Long shiftsId){ public void setShiftsId(Long shiftsId){
this.shiftsId = shiftsId; this.shiftsId = shiftsId;
} }
/** /**
* 获取 班次名称 * 获取 班次名称
* @return String * @return String
*/ */
public String getShiftsName(){ public String getShiftsName(){
return shiftsName; return shiftsName;
} }
/** /**
* 设置 班次名称 * 设置 班次名称
* @param shiftsName * @param shiftsName
*/ */
public void setShiftsName(String shiftsName){ public void setShiftsName(String shiftsName){
this.shiftsName = shiftsName; this.shiftsName = shiftsName;
} }
/** /**
* 获取 上班打卡时间 * 获取 上班打卡时间
* @return Date * @return Date
*/ */
public Date getGoWorkDate(){ public Date getGoWorkDate(){
return goWorkDate; return goWorkDate;
} }
/** /**
* 设置 上班打卡时间 * 设置 上班打卡时间
* @param goWorkDate * @param goWorkDate
*/ */
public void setGoWorkDate(Date goWorkDate){ public void setGoWorkDate(Date goWorkDate){
this.goWorkDate = goWorkDate; this.goWorkDate = goWorkDate;
} }
/** /**
* 获取 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 获取 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer * @return Integer
*/ */
public Integer getGoWorkResult(){ public Integer getGoWorkResult(){
return goWorkResult; return goWorkResult;
} }
/** /**
* 设置 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 设置 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param goWorkResult * @param goWorkResult
*/ */
public void setGoWorkResult(Integer goWorkResult){ public void setGoWorkResult(Integer goWorkResult){
this.goWorkResult = goWorkResult; this.goWorkResult = goWorkResult;
} }
/** /**
* 获取 下班打卡时间 * 获取 下班打卡时间
* @return Date * @return Date
*/ */
public Date getOffWorkDate(){ public Date getOffWorkDate(){
return offWorkDate; return offWorkDate;
} }
/** /**
* 设置 下班打卡时间 * 设置 下班打卡时间
* @param offWorkDate * @param offWorkDate
*/ */
public void setOffWorkDate(Date offWorkDate){ public void setOffWorkDate(Date offWorkDate){
this.offWorkDate = offWorkDate; this.offWorkDate = offWorkDate;
} }
/** /**
* 获取 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 获取 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer * @return Integer
*/ */
public Integer getOffWorkResult(){ public Integer getOffWorkResult(){
return offWorkResult; return offWorkResult;
} }
/** /**
* 设置 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退) * 设置 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param offWorkResult * @param offWorkResult
*/ */
public void setOffWorkResult(Integer offWorkResult){ public void setOffWorkResult(Integer offWorkResult){
this.offWorkResult = offWorkResult; this.offWorkResult = offWorkResult;
} }
/** /**
* 获取 备注 * 获取 备注
* @return String * @return String
*/ */
public String getRemark(){ public String getRemark(){
return remark; return remark;
} }
/** /**
* 设置 备注 * 设置 备注
* @param remark * @param remark
*/ */
public void setRemark(String remark){ public void setRemark(String remark){
this.remark = remark; this.remark = remark;
} }
/**
* 获取 排序字段
* @return Integer
*/
public Integer getOrderNum(){
return orderNum;
}
/**
* 设置 排序字段
* @param orderNum
*/
public void setOrderNum(Integer orderNum){
this.orderNum = orderNum;
}
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
...@@ -179,7 +197,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -179,7 +197,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
if (obj instanceof AttendanceRecordDetailEntity) { if (obj instanceof AttendanceRecordDetailEntity) {
AttendanceRecordDetailEntity tmp = (AttendanceRecordDetailEntity) obj; AttendanceRecordDetailEntity tmp = (AttendanceRecordDetailEntity) obj;
if (this.getId() == tmp.getId()) { if (this.getId() == tmp.getId()) {
return true; return true;
} }
} }
return false; return false;
...@@ -195,25 +213,28 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -195,25 +213,28 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
sb.append(",offWorkDate:").append(getOffWorkDate()); sb.append(",offWorkDate:").append(getOffWorkDate());
sb.append(",offWorkResult:").append(getOffWorkResult()); sb.append(",offWorkResult:").append(getOffWorkResult());
sb.append(",remark:").append(getRemark()); sb.append(",remark:").append(getRemark());
sb.append(",orderNum:").append(getOrderNum());
return sb.toString(); return sb.toString();
} }
public void initAttrValue(){ public void initAttrValue(){
this.recordId = null; this.recordId = null;
this.shiftsId = null;
this.shiftsId = null; this.shiftsName = "";
this.shiftsName = ""; this.goWorkDate = null;
this.goWorkDate = null; this.goWorkResult = null;
this.goWorkResult = null; this.offWorkDate = null;
this.offWorkDate = null; this.offWorkResult = null;
this.offWorkResult = null; this.remark = "";
this.remark = ""; this.orderNum = 1;
} }
} }
\ No newline at end of file
...@@ -24,7 +24,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo { ...@@ -24,7 +24,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
/** /**
* 员工姓名 * 员工姓名
*/ */
@Excel(name = "员工姓名") @Excel(name = "姓名")
private String staffName; private String staffName;
/** /**
* 工号 * 工号
...@@ -70,7 +70,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo { ...@@ -70,7 +70,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
/** /**
* 考勤日期 * 考勤日期
*/ */
@Excel(name = "考勤日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "考勤时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date attendanceDate; private Date attendanceDate;
/** /**
* 考勤点名称 * 考勤点名称
...@@ -372,4 +372,4 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo { ...@@ -372,4 +372,4 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
this.remark = ""; this.remark = "";
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity; import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +11,16 @@ import java.util.List; ...@@ -9,6 +11,16 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceClassDetailVo extends BaseEntityLong { public class AttendanceClassDetailVo extends BaseEntityLong {
} //2023-04-01
\ No newline at end of file /** 开始 上班打卡时间 */
private String goWorkDateStart;
//2023-04-02
/** 结束 上班打卡时间 */
private String goWorkDateEnd;
}
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity; import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkSpecialEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +14,19 @@ import java.util.List; ...@@ -9,6 +14,19 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceGroupVo extends BaseEntityLong { public class AttendanceGroupVo extends BaseEntityLong {
} /**
\ No newline at end of file * 考勤组班次实体类
*/
private AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity;
/**
* 考勤组固定班次特殊日期配置
*/
private List<AttendanceGroupFixedworkSpecialEntity> fixedworkSpecial;
private AttendanceGroupResponsibleEntity groupResponsibleEntity;
}
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +12,10 @@ import java.util.List; ...@@ -9,6 +12,10 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceRecordHikVo extends BaseEntityLong { public class AttendanceRecordHikVo extends BaseEntityLong {
} @Excel(name = "所属组织")
\ No newline at end of file private String orgName;
}
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +12,11 @@ import java.util.List; ...@@ -9,6 +12,11 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-07
*/ */
@Data
public class AttendanceRecordVo extends BaseEntityLong { public class AttendanceRecordVo extends BaseEntityLong {
} private List<AttendanceGroupFixedworkSpecialVo> list;
\ No newline at end of file
private AttendanceRecordDetailEntity attendanceRecordDetailEntity;
}
package com.mortals.xhx.module.attendance.service.impl; package com.mortals.xhx.module.attendance.service.impl;
import com.mortals.framework.model.PageInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -14,6 +15,7 @@ import org.springframework.util.ObjectUtils; ...@@ -14,6 +15,7 @@ import org.springframework.util.ObjectUtils;
import java.util.Date; import java.util.Date;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* AttendanceRecordService * AttendanceRecordService
...@@ -26,7 +28,23 @@ import java.util.List; ...@@ -26,7 +28,23 @@ import java.util.List;
public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceRecordDao, AttendanceRecordEntity, Long> implements AttendanceRecordService { public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceRecordDao, AttendanceRecordEntity, Long> implements AttendanceRecordService {
@Autowired @Autowired
private AttendanceRecordDetailService attendanceRecordDetailService; private AttendanceRecordDetailService attendanceRecordDetailService;
@Override
protected void findAfter(AttendanceRecordEntity params, PageInfo pageInfo, Context context, List<AttendanceRecordEntity> list) throws AppException {
list.stream().map(item->{
//chax
List<AttendanceRecordDetailEntity> attendanceRecordDetailEntities = attendanceRecordDetailService.find(new AttendanceRecordDetailQuery().recordId(item.getId()));
item.setAttendanceRecordDetailList(attendanceRecordDetailEntities);
return item;
}).collect(Collectors.toList());
super.findAfter(params, pageInfo, context, list);
}
@Override @Override
protected void saveAfter(AttendanceRecordEntity entity, Context context) throws AppException { protected void saveAfter(AttendanceRecordEntity entity, Context context) throws AppException {
if(!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())){ if(!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())){
...@@ -66,4 +84,4 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda ...@@ -66,4 +84,4 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
attendanceRecordDetailService.removeList(attendanceRecordDetaillist,context); attendanceRecordDetailService.removeList(attendanceRecordDetaillist,context);
super.removeAfter(ids, context, result); super.removeAfter(ids, context, result);
} }
} }
\ No newline at end of file
...@@ -46,4 +46,4 @@ public class AttendanceClassDetailController extends BaseCRUDJsonBodyMappingCont ...@@ -46,4 +46,4 @@ public class AttendanceClassDetailController extends BaseCRUDJsonBodyMappingCont
} }
} }
\ No newline at end of file
...@@ -46,4 +46,5 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -46,4 +46,5 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
} }
}
\ No newline at end of file }
...@@ -36,8 +36,5 @@ public interface DeptDao extends ICRUDDao<DeptEntity,Long>{ ...@@ -36,8 +36,5 @@ public interface DeptDao extends ICRUDDao<DeptEntity,Long>{
* */ * */
DeptEntity queryDeptParient(String parentCode); DeptEntity queryDeptParient(String parentCode);
/**
*
* */
int queryDeptParentId(Long deptId);
} }
...@@ -42,4 +42,4 @@ public class JobController extends BaseCRUDJsonBodyMappingController<JobService, ...@@ -42,4 +42,4 @@ public class JobController extends BaseCRUDJsonBodyMappingController<JobService,
super.doImportDataBefore(list, updateSupport, context); super.doImportDataBefore(list, updateSupport, context);
} }
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment