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

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	db/menu.sql
parents 8ed1e363 fb096215
......@@ -91,6 +91,9 @@ sub {
.mt10{
margin-top: 10px;
}
.ml10{
margin-left: 10px;
}
.ml20{
margin-left: 20px;
}
......
......@@ -210,3 +210,11 @@ export const findParentIds = (dataSource, nodeId) => {
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) => {
var m = date.getMinutes() + ":";
var s = date.getSeconds();
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 @@
return {
/** 子表列元素 */
columnSet:[
{prop:"goWorkDate",label:"上班打卡时间",width:100},
{prop:"goWorkDateBefore",label:"上班打卡前时间段,单位分钟",width:100},
{prop:"goWorkDateAfter",label:"上班打卡前时间段,单位分钟",width:100},
{prop:"offWorkDate",label:"下班打卡时间",width:100},
{prop:"offWorkDateBefore",label:"下班打卡前时间段,单位分钟",width:100},
{prop:"offWorkDateAfter",label:"下班打卡前时间段,单位分钟",width:100},
{prop:"remark",label:"备注",width:100},
{prop:"classId",label:"班次ID",width:100},
{prop:"className",label:"班次名称",width:100} ],
{prop:"goWorkDate",label:"上班打卡时间",width:150},
{prop:"goWorkDateBefore",label:"上班前打卡(分钟)",width:150},
{prop:"goWorkDateAfter",label:"上班后打卡(分钟)",width:150},
{prop:"offWorkDate",label:"下班打卡时间",width:150},
{prop:"offWorkDateBefore",label:"下班前打卡(分钟)",width:150},
{prop:"offWorkDateAfter",label:"下班后打卡(分钟)",width:150},
// {prop:"remark",label:"备注",width:150},
// {prop:"classId",label:"班次ID",width:150},
],
config: {
search: [
{
......@@ -75,11 +75,10 @@
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "班次名称", prop: "className"},
// {label: "考勤时间", prop: "className"},
{label: "考勤班次详细信息",
width: 120,
width: 200,
prop: "subColumns",
formatter: (row) => {
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;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ImportResource;
@EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.mortals"})
@ServletComponentScan("com.mortals")
......@@ -17,10 +18,12 @@ public class ManagerApplication extends BaseWebApplication {
// return new LocalCacheServiceImpl();
// }
public static void main(String[] args) {
SpringApplication.run(ManagerApplication.class, args);
System.out.println(123465);
}
System.out.println("考勤管理项目启动!!!!!!!!!!!!!");
}
}
......@@ -63,4 +63,4 @@ public enum ErrorStatusEnum {
}
return resultMap;
}
}
\ No newline at end of file
}
......@@ -2,7 +2,7 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceStatEntity;
import java.util.List;
/**
* 考勤汇总信息Dao
* 考勤汇总信息 DAO接口
......@@ -12,6 +12,9 @@ import java.util.List;
*/
public interface AttendanceStatDao extends ICRUDDao<AttendanceStatEntity,Long>{
/**
* 通过员工id查询
* */
AttendanceStatEntity queryEntity(Long staffId);
}
......@@ -2,7 +2,6 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import java.util.List;
/**
* 员工假期余额信息Dao
* 员工假期余额信息 DAO接口
......@@ -13,5 +12,8 @@ import java.util.List;
public interface AttendanceVacationBalanceDao extends ICRUDDao<AttendanceVacationBalanceEntity,Long>{
/**
* 通过员工id查询
* */
AttendanceVacationBalanceEntity queryEntity(Long staffId);
}
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.model.AttendanceStatEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
import org.springframework.stereotype.Repository;
/**
* 考勤汇总信息DaoImpl DAO接口
*
......@@ -17,5 +15,8 @@ import java.util.List;
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;
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.model.AttendanceVacationBalanceEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
import org.springframework.stereotype.Repository;
/**
* 员工假期余额信息DaoImpl DAO接口
*
......@@ -17,5 +15,8 @@ import java.util.List;
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;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
......@@ -28,6 +30,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/**
* 上班打卡时间
*/
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date goWorkDate;
/**
* 上班打卡前时间段,单位分钟
......@@ -40,6 +44,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/**
* 下班打卡时间
*/
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date offWorkDate;
/**
* 下班打卡前时间段,单位分钟
......@@ -237,4 +243,4 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
this.remark = "";
}
}
\ No newline at end of file
}
......@@ -8,170 +8,188 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo;
/**
* 考勤打卡记录详细信息实体对象
*
* @author zxfei
* @date 2023-04-07
*/
* 考勤打卡记录详细信息实体对象
*
* @author zxfei
* @date 2023-04-09
*/
public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
private static final long serialVersionUID = 1L;
/**
* 考勤记录ID
*/
* 考勤记录ID
*/
private Long recordId;
/**
* 班次ID
*/
* 班次ID
*/
private Long shiftsId;
/**
* 班次名称
*/
* 班次名称
*/
private String shiftsName;
/**
* 上班打卡时间
*/
* 上班打卡时间
*/
private Date goWorkDate;
/**
* 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
* 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
private Integer goWorkResult;
/**
* 下班打卡时间
*/
* 下班打卡时间
*/
private Date offWorkDate;
/**
* 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
* 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
private Integer offWorkResult;
/**
* 备注
*/
* 备注
*/
private String remark;
/**
* 排序字段
*/
private Integer orderNum;
public AttendanceRecordDetailEntity(){}
/**
* 获取 考勤记录ID
* @return Long
*/
* 获取 考勤记录ID
* @return Long
*/
public Long getRecordId(){
return recordId;
}
/**
* 设置 考勤记录ID
* @param recordId
*/
* 设置 考勤记录ID
* @param recordId
*/
public void setRecordId(Long recordId){
this.recordId = recordId;
}
/**
* 获取 班次ID
* @return Long
*/
* 获取 班次ID
* @return Long
*/
public Long getShiftsId(){
return shiftsId;
}
/**
* 设置 班次ID
* @param shiftsId
*/
* 设置 班次ID
* @param shiftsId
*/
public void setShiftsId(Long shiftsId){
this.shiftsId = shiftsId;
}
/**
* 获取 班次名称
* @return String
*/
* 获取 班次名称
* @return String
*/
public String getShiftsName(){
return shiftsName;
}
/**
* 设置 班次名称
* @param shiftsName
*/
* 设置 班次名称
* @param shiftsName
*/
public void setShiftsName(String shiftsName){
this.shiftsName = shiftsName;
}
/**
* 获取 上班打卡时间
* @return Date
*/
* 获取 上班打卡时间
* @return Date
*/
public Date getGoWorkDate(){
return goWorkDate;
}
/**
* 设置 上班打卡时间
* @param goWorkDate
*/
* 设置 上班打卡时间
* @param goWorkDate
*/
public void setGoWorkDate(Date goWorkDate){
this.goWorkDate = goWorkDate;
}
/**
* 获取 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer
*/
* 获取 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer
*/
public Integer getGoWorkResult(){
return goWorkResult;
}
/**
* 设置 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param goWorkResult
*/
* 设置 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param goWorkResult
*/
public void setGoWorkResult(Integer goWorkResult){
this.goWorkResult = goWorkResult;
}
/**
* 获取 下班打卡时间
* @return Date
*/
* 获取 下班打卡时间
* @return Date
*/
public Date getOffWorkDate(){
return offWorkDate;
}
/**
* 设置 下班打卡时间
* @param offWorkDate
*/
* 设置 下班打卡时间
* @param offWorkDate
*/
public void setOffWorkDate(Date offWorkDate){
this.offWorkDate = offWorkDate;
}
/**
* 获取 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer
*/
* 获取 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @return Integer
*/
public Integer getOffWorkResult(){
return offWorkResult;
}
/**
* 设置 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param offWorkResult
*/
* 设置 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
* @param offWorkResult
*/
public void setOffWorkResult(Integer offWorkResult){
this.offWorkResult = offWorkResult;
}
/**
* 获取 备注
* @return String
*/
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 排序字段
* @return Integer
*/
public Integer getOrderNum(){
return orderNum;
}
/**
* 设置 排序字段
* @param orderNum
*/
public void setOrderNum(Integer orderNum){
this.orderNum = orderNum;
}
@Override
public int hashCode() {
return this.getId().hashCode();
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
......@@ -179,7 +197,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
if (obj instanceof AttendanceRecordDetailEntity) {
AttendanceRecordDetailEntity tmp = (AttendanceRecordDetailEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
return true;
}
}
return false;
......@@ -195,25 +213,28 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
sb.append(",offWorkDate:").append(getOffWorkDate());
sb.append(",offWorkResult:").append(getOffWorkResult());
sb.append(",remark:").append(getRemark());
sb.append(",orderNum:").append(getOrderNum());
return sb.toString();
}
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 {
/**
* 员工姓名
*/
@Excel(name = "员工姓名")
@Excel(name = "姓名")
private String staffName;
/**
* 工号
......@@ -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;
/**
* 考勤点名称
......@@ -372,4 +372,4 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
this.remark = "";
}
}
\ No newline at end of file
}
package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -9,6 +11,16 @@ import java.util.List;
* @author zxfei
* @date 2023-04-08
*/
@Data
public class AttendanceClassDetailVo extends BaseEntityLong {
}
\ No newline at end of file
//2023-04-01
/** 开始 上班打卡时间 */
private String goWorkDateStart;
//2023-04-02
/** 结束 上班打卡时间 */
private String goWorkDateEnd;
}
package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong;
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.List;
/**
......@@ -9,6 +14,19 @@ import java.util.List;
* @author zxfei
* @date 2023-04-08
*/
@Data
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;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -9,6 +12,10 @@ import java.util.List;
* @author zxfei
* @date 2023-04-08
*/
@Data
public class AttendanceRecordHikVo extends BaseEntityLong {
}
\ No newline at end of file
@Excel(name = "所属组织")
private String orgName;
}
package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -9,6 +12,11 @@ import java.util.List;
* @author zxfei
* @date 2023-04-07
*/
@Data
public class AttendanceRecordVo extends BaseEntityLong {
}
\ No newline at end of file
private List<AttendanceGroupFixedworkSpecialVo> list;
private AttendanceRecordDetailEntity attendanceRecordDetailEntity;
}
package com.mortals.xhx.module.attendance.service.impl;
import com.mortals.framework.model.PageInfo;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -14,6 +15,7 @@ import org.springframework.util.ObjectUtils;
import java.util.Date;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* AttendanceRecordService
......@@ -26,7 +28,23 @@ import java.util.List;
public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceRecordDao, AttendanceRecordEntity, Long> implements AttendanceRecordService {
@Autowired
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
protected void saveAfter(AttendanceRecordEntity entity, Context context) throws AppException {
if(!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())){
......@@ -66,4 +84,4 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
attendanceRecordDetailService.removeList(attendanceRecordDetaillist,context);
super.removeAfter(ids, context, result);
}
}
\ No newline at end of file
}
......@@ -46,4 +46,4 @@ public class AttendanceClassDetailController extends BaseCRUDJsonBodyMappingCont
}
}
\ No newline at end of file
}
......@@ -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>{
* */
DeptEntity queryDeptParient(String parentCode);
/**
*
* */
int queryDeptParentId(Long deptId);
}
......@@ -42,4 +42,4 @@ public class JobController extends BaseCRUDJsonBodyMappingController<JobService,
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