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

考勤组相关后端与前端代码添加

parent 7078835d
......@@ -3,8 +3,8 @@
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="班次ID" prop="classId" v-model="form.classId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="上班打卡时间" prop="goWorkDate" v-model="form.goWorkDate" type="date" />
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore" v-model="form.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟"/>
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter" v-model="form.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟"/>
......@@ -94,8 +94,8 @@
// 表单重置
reset() {
this.form = {
shiftsId : null,
shiftsName : "",
classId : null,
className : "",
goWorkDate : null,
goWorkDateBefore : null,
goWorkDateAfter : null,
......
......@@ -4,18 +4,18 @@
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassDetailList",
components: {
drawerShow
dialogShow
},
mixins: [table],
created() {
......@@ -23,15 +23,15 @@
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
this.$refs.dialogform.view(row);
},
},
......
......@@ -9,10 +9,10 @@
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsId}}
{{form.classId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsName}}
{{form.className}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.goWorkDate)}}
......
......@@ -23,11 +23,6 @@
<el-table :data="attendanceClassDetailList" :row-class-name="rowAttendanceClassDetailIndex" @selection-change="handleAttendanceClassDetailSelectionChange" ref="attendanceClassDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="班次名称" prop="shiftsName">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsName" placeholder="请输入班次名称" />
</template>
</el-table-column>
<el-table-column label="上班打卡时间" prop="goWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" />
......@@ -83,6 +78,11 @@
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
<el-table-column label="班次名称" prop="className">
<template slot-scope="scope">
<el-input v-model="scope.row.className" placeholder="请输入班次名称" />
</template>
</el-table-column>
</el-table>
</el-form>
......@@ -132,7 +132,6 @@
/** 考勤班次详细信息添加按钮操作 */
handleAddAttendanceClassDetail() {
let obj = {};
obj.shiftsName = "";
obj.goWorkDate = "";
obj.goWorkDateBefore = "";
obj.goWorkDateAfter = "";
......@@ -144,6 +143,7 @@
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
obj.className = "";
this.attendanceClassDetailList.push(obj);
},
/** 考勤班次详细信息删除按钮操作 */
......
......@@ -4,18 +4,18 @@
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassList",
components: {
drawerShow
dialogShow
},
mixins: [table],
created() {
......@@ -40,15 +40,15 @@
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
this.$refs.dialogform.view(row);
},
},
......@@ -56,8 +56,6 @@
return {
/** 子表列元素 */
columnSet:[
{prop:"shiftsId",label:"班次ID",width:100},
{prop:"shiftsName",label:"班次名称",width:100},
{prop:"goWorkDate",label:"上班打卡时间",width:100},
{prop:"goWorkDateBefore",label:"上班打卡前时间段,单位分钟",width:100},
{prop:"goWorkDateAfter",label:"上班打卡前时间段,单位分钟",width:100},
......@@ -65,7 +63,8 @@
{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} ],
config: {
search: [
],
......
......@@ -8,13 +8,73 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="人数" prop="personNum" v-model="form.personNum" placeholder="请输入人数"/>
<Field label="负责人" prop="responsiblePerson" v-model="form.responsiblePerson" placeholder="请输入负责人"/>
<Field label="参与考勤人数" prop="personNum" v-model="form.personNum" placeholder="请输入参与考勤人数"/>
<Field label="类型" prop="type" v-model="form.type" type="select" :enumData="dict.type" placeholder="请选择类型"/>
<Field label="考勤时间" prop="attendanceTime" v-model="form.attendanceTime" type="select" :enumData="dict.attendanceTime" placeholder="请选择考勤时间"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field label="未参与考勤人数" prop="personNumNo" v-model="form.personNumNo" placeholder="请输入未参与考勤人数"/>
<Field label="考勤方式" prop="attendanceType" v-model="form.attendanceType" type="select" :enumData="dict.attendanceType" placeholder="请选择考勤方式"/>
</el-row>
<el-divider content-position="center">考勤组人员信息信息</el-divider>
<br/>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceGroupStaff">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceGroupStaff">删除</el-button>
</el-col>
</el-row>
<el-table :data="attendanceGroupStaffList" :row-class-name="rowAttendanceGroupStaffIndex" @selection-change="handleAttendanceGroupStaffSelectionChange" ref="attendanceGroupStaff">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="考勤组名称" prop="groupName">
<template slot-scope="scope">
<el-input v-model="scope.row.groupName" placeholder="请输入考勤组名称" />
</template>
</el-table-column>
<el-table-column label="员工ID" prop="staffId">
<template slot-scope="scope">
<el-input v-model="scope.row.staffId" placeholder="请输入员工ID" />
</template>
</el-table-column>
<el-table-column label="员工姓名" prop="staffName">
<template slot-scope="scope">
<el-input v-model="scope.row.staffName" placeholder="请输入员工姓名" />
</template>
</el-table-column>
<el-table-column label="是否参与考勤," prop="partAttendance">
<template slot-scope="scope">
<el-input v-model="scope.row.partAttendance" placeholder="请输入是否参与考勤," />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" />
</template>
</el-table-column>
<el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" />
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" />
</template>
</el-table-column>
<el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" />
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
</el-table>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
......@@ -35,6 +95,10 @@
},
data() {
return {
// 子表选中数据
checkedAttendanceGroupStaff: [],
// 考勤组人员信息表格数据
attendanceGroupStaffList: [],
// 遮罩层
loading: true,
// 弹出层标题
......@@ -44,7 +108,6 @@
direction:"rtl",
toString:[
"type",
"attendanceTime",
],
toDate:[
],
......@@ -58,6 +121,48 @@
},
methods: {
/** 考勤组人员信息序号 */
rowAttendanceGroupStaffIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 考勤组人员信息添加按钮操作 */
handleAddAttendanceGroupStaff() {
let obj = {};
obj.groupName = "";
obj.staffId = "";
obj.staffName = "";
obj.partAttendance = "";
obj.remark = "";
obj.createUserId = "";
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
this.attendanceGroupStaffList.push(obj);
},
/** 考勤组人员信息删除按钮操作 */
handleDeleteAttendanceGroupStaff() {
if (this.checkedAttendanceGroupStaff.length == 0) {
this.$alert("请先选择要删除的考勤组人员信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.attendanceGroupStaffList.splice(this.checkedAttendanceGroupStaff[0].index - 1, 1);
}
},
/** 单选框选中数据 */
handleAttendanceGroupStaffSelectionChange(selection) {
if (selection.length > 1) {
this.$refs.attendanceGroupStaff.clearSelection();
this.$refs.attendanceGroupStaff.toggleRowSelection(selection.pop());
} else {
this.checkedAttendanceGroupStaff = selection;
}
},
// 渲染前置处理
beforeRender(data) {
if(data.entity.attendanceGroupStaffList) {
this.attendanceGroupStaffList = data.entity.attendanceGroupStaffList;
}
return data
},
/** 编辑 */
edit(row) {
this.reset()
......@@ -103,10 +208,10 @@
this.form = {
groupName : "",
personNum : null,
responsiblePerson : "",
type : null,
attendanceTime : null,
remark : "",
personNumNo : null,
attendanceType : "",
};
this.resetForm("form");
},
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupFixedworkList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"fixedWorkId",label:"固定班制考勤配置id",width:100},
{prop:"must",label:"是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息",width:100},
{prop:"classId",label:"班次ID",width:100},
{prop:"className",label:"班次名称",width:100},
{prop:"addWay",label:"无需打卡的日期类型",width:100},
{prop:"specialTime",label:"特殊时间",width:100},
{prop:"specialTimeStart",label:"时间段时候开始时间",width:100},
{prop:"specialTimeEnd",label:"时间段结束时间",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "周一是否考勤", prop: "monday",formatter: this.formatter},
{label: "周二是否考勤", prop: "tuesday",formatter: this.formatter},
{label: "周三是否考勤", prop: "wednesday",formatter: this.formatter},
{label: "周四是否考勤", prop: "thursday",formatter: this.formatter},
{label: "周五是否考勤", prop: "friday",formatter: this.formatter},
{label: "周六是否考勤", prop: "saturday",formatter: this.formatter},
{label: "周日是否考勤", prop: "sunday",formatter: this.formatter},
{label: "法定节假日自动排休", prop: "holidays",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "考勤组考勤固定班制特殊日期配置",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceGroupFixedworkSpecialList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="固定班制考勤配置id" prop="fixedWorkId" v-model="form.fixedWorkId" placeholder="请输入固定班制考勤配置id"/>
<Field label="是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息" prop="must" v-model="form.must" type="select" :enumData="dict.must" placeholder="请选择是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息"/>
<Field label="班次ID" prop="classId" v-model="form.classId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="无需打卡的日期类型" prop="addWay" v-model="form.addWay" type="select" :enumData="dict.addWay" placeholder="请选择无需打卡的日期类型"/>
<Field label="特殊时间" prop="specialTime" v-model="form.specialTime" type="date" />
<Field label="时间段时候开始时间" prop="specialTimeStart" v-model="form.specialTimeStart" type="date" />
<Field label="时间段结束时间" prop="specialTimeEnd" v-model="form.specialTimeEnd" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组考勤固定班制特殊日期配置",
// 是否显示弹出层
open: false,
toString:[
"must",
"addWay",
],
// 表单校验
rules: {
specialTime: [
{required: true,message: "请选择特殊时间" },
],
specialTimeStart: [
{required: true,message: "请选择时间段时候开始时间" },
],
specialTimeEnd: [
{required: true,message: "请选择时间段结束时间" },
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/fixedwork/special/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组考勤固定班制特殊日期配置";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/fixedwork/special/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组考勤固定班制特殊日期配置";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/fixedwork/special/view";
this.getData();
this.pageInfo.type="view"
this.title = "考勤组考勤固定班制特殊日期配置详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
fixedWorkId : null,
must : 0,
classId : null,
className : "",
addWay : 0,
specialTime : null,
specialTimeStart : null,
specialTimeEnd : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupFixedworkSpecialList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息", prop: "must",formatter: this.formatter},
{label: "无需打卡的日期类型", prop: "addWay",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="固定班制考勤配置id" label-class-name="labelClass" content-class-name="contentClass">
{{form.fixedWorkId}}
</el-descriptions-item>
<el-descriptions-item label="是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("must", form.must) }}
</el-descriptions-item>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.classId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.className}}
</el-descriptions-item>
<el-descriptions-item label="无需打卡的日期类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("addWay", form.addWay) }}
</el-descriptions-item>
<el-descriptions-item label="特殊时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTime)}}
</el-descriptions-item>
<el-descriptions-item label="时间段时候开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTimeStart)}}
</el-descriptions-item>
<el-descriptions-item label="时间段结束时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTimeEnd)}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"must",
"addWay",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupId}}
</el-descriptions-item>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="周一是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("monday", form.monday) }}
</el-descriptions-item>
<el-descriptions-item label="周一班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.mondayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周一班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.mondayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周二是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("tuesday", form.tuesday) }}
</el-descriptions-item>
<el-descriptions-item label="周二班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.tuesdayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周二班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.tuesdayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周三是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("wednesday", form.wednesday) }}
</el-descriptions-item>
<el-descriptions-item label="周三班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.wednesdayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周三班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.wednesdayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周四是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("thursday", form.thursday) }}
</el-descriptions-item>
<el-descriptions-item label="周四班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.thursdayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周四班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.thursdayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周五是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("friday", form.friday) }}
</el-descriptions-item>
<el-descriptions-item label="周五班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.fridayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周五班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.fridayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周六是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("saturday", form.saturday) }}
</el-descriptions-item>
<el-descriptions-item label="周六班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.saturdayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周六班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.saturdayClassName}}
</el-descriptions-item>
<el-descriptions-item label="周日是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("sunday", form.sunday) }}
</el-descriptions-item>
<el-descriptions-item label="周日班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.sundayClassId}}
</el-descriptions-item>
<el-descriptions-item label="周日班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.sundayClassName}}
</el-descriptions-item>
<el-descriptions-item label="法定节假日自动排休" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("holidays", form.holidays) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday",
"holidays",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupFreeworkList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"freeWorkId",label:"自由工时考勤配置id",width:100},
{prop:"must",label:"是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息",width:100},
{prop:"classId",label:"班次ID",width:100},
{prop:"className",label:"班次名称",width:100},
{prop:"addWay",label:"无需打卡的日期类型",width:100},
{prop:"specialTime",label:"特殊时间",width:100},
{prop:"specialTimeStart",label:"时间段时候开始时间",width:100},
{prop:"specialTimeEnd",label:"时间段结束时间",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "周一是否考勤", prop: "monday",formatter: this.formatter},
{label: "周二是否考勤", prop: "tuesday",formatter: this.formatter},
{label: "周三是否考勤", prop: "wednesday",formatter: this.formatter},
{label: "周四是否考勤", prop: "thursday",formatter: this.formatter},
{label: "周五是否考勤", prop: "friday",formatter: this.formatter},
{label: "周六是否考勤", prop: "saturday",formatter: this.formatter},
{label: "周日是否考勤", prop: "sunday",formatter: this.formatter},
{label: "法定节假日自动排休", prop: "holidays",formatter: this.formatter},
{label: "工作时长,单位小时", prop: "workTime",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "考勤组考勤自由工时特殊日期配置",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceGroupFreeworkSpecialList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="自由工时考勤配置id" prop="freeWorkId" v-model="form.freeWorkId" placeholder="请输入自由工时考勤配置id"/>
<Field label="是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息" prop="must" v-model="form.must" type="select" :enumData="dict.must" placeholder="请选择是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息"/>
<Field label="班次ID" prop="classId" v-model="form.classId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="无需打卡的日期类型" prop="addWay" v-model="form.addWay" type="select" :enumData="dict.addWay" placeholder="请选择无需打卡的日期类型"/>
<Field label="特殊时间" prop="specialTime" v-model="form.specialTime" type="date" />
<Field label="时间段时候开始时间" prop="specialTimeStart" v-model="form.specialTimeStart" type="date" />
<Field label="时间段结束时间" prop="specialTimeEnd" v-model="form.specialTimeEnd" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组考勤自由工时特殊日期配置",
// 是否显示弹出层
open: false,
toString:[
"must",
"addWay",
],
// 表单校验
rules: {
specialTime: [
{required: true,message: "请选择特殊时间" },
],
specialTimeStart: [
{required: true,message: "请选择时间段时候开始时间" },
],
specialTimeEnd: [
{required: true,message: "请选择时间段结束时间" },
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/freework/special/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组考勤自由工时特殊日期配置";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/freework/special/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组考勤自由工时特殊日期配置";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/freework/special/view";
this.getData();
this.pageInfo.type="view"
this.title = "考勤组考勤自由工时特殊日期配置详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
freeWorkId : null,
must : 0,
classId : null,
className : "",
addWay : 0,
specialTime : null,
specialTimeStart : null,
specialTimeEnd : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupFreeworkSpecialList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息", prop: "must",formatter: this.formatter},
{label: "无需打卡的日期类型", prop: "addWay",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="自由工时考勤配置id" label-class-name="labelClass" content-class-name="contentClass">
{{form.freeWorkId}}
</el-descriptions-item>
<el-descriptions-item label="是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("must", form.must) }}
</el-descriptions-item>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.classId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.className}}
</el-descriptions-item>
<el-descriptions-item label="无需打卡的日期类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("addWay", form.addWay) }}
</el-descriptions-item>
<el-descriptions-item label="特殊时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTime)}}
</el-descriptions-item>
<el-descriptions-item label="时间段时候开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTimeStart)}}
</el-descriptions-item>
<el-descriptions-item label="时间段结束时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.specialTimeEnd)}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"must",
"addWay",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupId}}
</el-descriptions-item>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="周一是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("monday", form.monday) }}
</el-descriptions-item>
<el-descriptions-item label="周二是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("tuesday", form.tuesday) }}
</el-descriptions-item>
<el-descriptions-item label="周三是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("wednesday", form.wednesday) }}
</el-descriptions-item>
<el-descriptions-item label="周四是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("thursday", form.thursday) }}
</el-descriptions-item>
<el-descriptions-item label="周五是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("friday", form.friday) }}
</el-descriptions-item>
<el-descriptions-item label="周六是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("saturday", form.saturday) }}
</el-descriptions-item>
<el-descriptions-item label="周日是否考勤" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("sunday", form.sunday) }}
</el-descriptions-item>
<el-descriptions-item label="法定节假日自动排休" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("holidays", form.holidays) }}
</el-descriptions-item>
<el-descriptions-item label="工作时长,单位小时" label-class-name="labelClass" content-class-name="contentClass">
{{form.workTime}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday",
"holidays",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
......@@ -21,6 +21,23 @@
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
......@@ -37,6 +54,15 @@
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"groupId",label:"考勤组",width:100},
{prop:"groupName",label:"考勤组名称",width:100},
{prop:"staffId",label:"员工ID",width:100},
{prop:"staffName",label:"员工姓名",width:100},
{prop:"partAttendance",label:"是否参与考勤,",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
],
......@@ -44,11 +70,30 @@
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "人数", prop: "personNum",formatter: this.formatter},
{label: "参与考勤人数", prop: "personNum",formatter: this.formatter},
{label: "类型", prop: "type",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter},
{label: "考勤方式", prop: "attendanceType"},
{label: "考勤组人员信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceGroupStaffList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
label: "操作",
width: 240,
......
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="考勤组" prop="groupId" v-model="form.groupId" placeholder="请输入考勤组"/>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="负责人ID" prop="responsibleId" v-model="form.responsibleId" placeholder="请输入负责人ID"/>
<Field label="负责人名称" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入负责人名称"/>
<Field label="负责人类型" prop="responsibleType" v-model="form.responsibleType" type="select" :enumData="dict.responsibleType" placeholder="请选择负责人类型"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组负责人员信息",
// 是否显示弹出层
open: false,
toString:[
"responsibleType",
],
// 表单校验
rules: {
responsibleName: [
{required: true,message: "请输入负责人名称", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/responsible/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组负责人员信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/responsible/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组负责人员信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/responsible/view";
this.getData();
this.pageInfo.type="view"
this.title = "考勤组负责人员信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
groupId : null,
groupName : "",
responsibleId : null,
responsibleName : "",
responsibleType : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupResponsibleList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "responsibleName",
type: "text",
label: "负责人名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "负责人名称", prop: "responsibleName"},
{label: "负责人类型", prop: "responsibleType",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupId}}
</el-descriptions-item>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="负责人ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.responsibleId}}
</el-descriptions-item>
<el-descriptions-item label="负责人名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.responsibleName}}
</el-descriptions-item>
<el-descriptions-item label="负责人类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("responsibleType", form.responsibleType) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"responsibleType",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="考勤组" prop="groupId" v-model="form.groupId" placeholder="请输入考勤组"/>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="是否参与考勤," prop="partAttendance" v-model="form.partAttendance" type="select" :enumData="dict.partAttendance" placeholder="请选择是否参与考勤,"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组人员信息",
// 是否显示弹出层
open: false,
toString:[
"partAttendance",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/staff/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组人员信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/staff/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组人员信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/staff/view";
this.getData();
this.pageInfo.type="view"
this.title = "考勤组人员信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
groupId : null,
groupName : "",
staffId : null,
staffName : "",
partAttendance : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupStaffList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "是否参与考勤,", prop: "partAttendance",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupId}}
</el-descriptions-item>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="是否参与考勤," label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("partAttendance", form.partAttendance) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"partAttendance",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
......@@ -11,21 +11,21 @@
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="人数" label-class-name="labelClass" content-class-name="contentClass">
<el-descriptions-item label="参与考勤人数" label-class-name="labelClass" content-class-name="contentClass">
{{form.personNum}}
</el-descriptions-item>
<el-descriptions-item label="负责人" label-class-name="labelClass" content-class-name="contentClass">
{{form.responsiblePerson}}
</el-descriptions-item>
<el-descriptions-item label="类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
<el-descriptions-item label="考勤时间" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceTime}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="未参与考勤人数" label-class-name="labelClass" content-class-name="contentClass">
{{form.personNumNo}}
</el-descriptions-item>
<el-descriptions-item label="考勤方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("attendanceType", form.attendanceType) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
......@@ -46,7 +46,6 @@
column:2,
toString:[
"type",
"attendanceTime",
],
toArrays: [
......
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="部门id号" prop="deptId" v-model="form.deptId" placeholder="请输入部门id号"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入部门名称"/>
<Field label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/>
<Field label="工号" prop="number" v-model="form.number" placeholder="请输入工号"/>
<Field label="电话号码" prop="phone" v-model="form.phone" placeholder="请输入电话号码"/>
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "工作人员",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="workman/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改工作人员";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "workman/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增工作人员";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="workman/view";
this.getData();
this.pageInfo.type="view"
this.title = "工作人员详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
deptId : 0,
deptName : "",
name : "",
number : "",
phone : "",
photoPath : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "WorkmanList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "name",
type: "text",
label: "姓名",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "部门名称", prop: "deptName"},
{label: "姓名", prop: "name"},
{label: "工号", prop: "number"},
{label: "电话号码", prop: "phone"},
{label: "照片", prop: "photoPath"},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="部门id号" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.number}}
</el-descriptions-item>
<el-descriptions-item label="电话号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.phone}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 无需打卡的日期类型(0.单个日期,1.时间段)枚举类
*
* @author zxfei
*/
public enum AddWayEnum {
单个日期(0, "单个日期"),
时间段(1, "时间段");
private Integer value;
private String desc;
AddWayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static AddWayEnum getByValue(Integer value) {
for (AddWayEnum addWayEnum : AddWayEnum.values()) {
if (addWayEnum.getValue() == value) {
return addWayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (AddWayEnum item : AddWayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)枚举类
*
* @author zxfei
*/
public enum AttendanceTypeEnum {
地点打卡. 地点打卡("地点打卡. 地点打卡", "地点打卡. 地点打卡"),
Wi-Fi打卡. Wi-Fi打卡("Wi-Fi打卡. Wi-Fi打卡", "Wi-Fi打卡. Wi-Fi打卡"),
蓝牙打卡. 蓝牙打卡("蓝牙打卡. 蓝牙打卡", "蓝牙打卡. 蓝牙打卡"),
考勤机打卡. 考勤机打卡("考勤机打卡. 考勤机打卡", "考勤机打卡. 考勤机打卡");
private String value;
private String desc;
AttendanceTypeEnum(String value, String desc) {
this.value = value;
this.desc = desc;
}
public String getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static AttendanceTypeEnum getByValue(String value) {
for (AttendanceTypeEnum attendanceTypeEnum : AttendanceTypeEnum.values()) {
if (attendanceTypeEnum.getValue() == value) {
return attendanceTypeEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(String... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (AttendanceTypeEnum item : AttendanceTypeEnum.values()) {
try {
boolean hasE = false;
for (String e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周五是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum FridayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
FridayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static FridayEnum getByValue(Integer value) {
for (FridayEnum fridayEnum : FridayEnum.values()) {
if (fridayEnum.getValue() == value) {
return fridayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (FridayEnum item : FridayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 法定节假日自动排休(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum HolidaysEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
HolidaysEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static HolidaysEnum getByValue(Integer value) {
for (HolidaysEnum holidaysEnum : HolidaysEnum.values()) {
if (holidaysEnum.getValue() == value) {
return holidaysEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (HolidaysEnum item : HolidaysEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周一是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum MondayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
MondayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static MondayEnum getByValue(Integer value) {
for (MondayEnum mondayEnum : MondayEnum.values()) {
if (mondayEnum.getValue() == value) {
return mondayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (MondayEnum item : MondayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum MustEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
MustEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static MustEnum getByValue(Integer value) {
for (MustEnum mustEnum : MustEnum.values()) {
if (mustEnum.getValue() == value) {
return mustEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (MustEnum item : MustEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 是否参与考勤,(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum PartAttendanceEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
PartAttendanceEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static PartAttendanceEnum getByValue(Integer value) {
for (PartAttendanceEnum partAttendanceEnum : PartAttendanceEnum.values()) {
if (partAttendanceEnum.getValue() == value) {
return partAttendanceEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (PartAttendanceEnum item : PartAttendanceEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 负责人类型(0. 主负责人,1. 子负责人)枚举类
*
* @author zxfei
*/
public enum ResponsibleTypeEnum {
主负责人(0, "主负责人"),
子负责人(1, "子负责人");
private Integer value;
private String desc;
ResponsibleTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static ResponsibleTypeEnum getByValue(Integer value) {
for (ResponsibleTypeEnum responsibleTypeEnum : ResponsibleTypeEnum.values()) {
if (responsibleTypeEnum.getValue() == value) {
return responsibleTypeEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (ResponsibleTypeEnum item : ResponsibleTypeEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周六是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum SaturdayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
SaturdayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static SaturdayEnum getByValue(Integer value) {
for (SaturdayEnum saturdayEnum : SaturdayEnum.values()) {
if (saturdayEnum.getValue() == value) {
return saturdayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (SaturdayEnum item : SaturdayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周日是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum SundayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
SundayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static SundayEnum getByValue(Integer value) {
for (SundayEnum sundayEnum : SundayEnum.values()) {
if (sundayEnum.getValue() == value) {
return sundayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (SundayEnum item : SundayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周四是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum ThursdayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
ThursdayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static ThursdayEnum getByValue(Integer value) {
for (ThursdayEnum thursdayEnum : ThursdayEnum.values()) {
if (thursdayEnum.getValue() == value) {
return thursdayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (ThursdayEnum item : ThursdayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周二是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum TuesdayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
TuesdayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static TuesdayEnum getByValue(Integer value) {
for (TuesdayEnum tuesdayEnum : TuesdayEnum.values()) {
if (tuesdayEnum.getValue() == value) {
return tuesdayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (TuesdayEnum item : TuesdayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
......@@ -4,12 +4,14 @@ import java.util.LinkedHashMap;
import java.util.Map;
/**
* 类型(1.固定班)枚举类
* 类型(1.固定班制,2.排班制,3.自由工时)枚举类
*
* @author zxfei
*/
public enum TypeEnum {
固定班指(1, "固定班指");
固定班制(1, "固定班制"),
排班制(2, "排班制"),
自由工时(3, "自由工时");
private Integer value;
private String desc;
......
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 周三是否考勤(0.否,1.是)枚举类
*
* @author zxfei
*/
public enum WednesdayEnum {
(0, "否"),
(1, "是");
private Integer value;
private String desc;
WednesdayEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static WednesdayEnum getByValue(Integer value) {
for (WednesdayEnum wednesdayEnum : WednesdayEnum.values()) {
if (wednesdayEnum.getValue() == value) {
return wednesdayEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (WednesdayEnum item : WednesdayEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ import java.util.List;
* 考勤班次信息 DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public interface AttendanceClassDao extends ICRUDDao<AttendanceClassEntity,Long>{
......
......@@ -8,7 +8,7 @@ import java.util.List;
* 考勤班次详细信息 DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public interface AttendanceClassDetailDao extends ICRUDDao<AttendanceClassDetailEntity,Long>{
......
......@@ -8,7 +8,7 @@ import java.util.List;
* 考勤组信息 DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public interface AttendanceGroupDao extends ICRUDDao<AttendanceGroupEntity,Long>{
......
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity;
import java.util.List;
/**
* 考勤组考勤固定工时Dao
* 考勤组考勤固定工时 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupFixedworkDao extends ICRUDDao<AttendanceGroupFixedworkEntity,Long>{
}
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkSpecialEntity;
import java.util.List;
/**
* 考勤组考勤固定班制特殊日期配置Dao
* 考勤组考勤固定班制特殊日期配置 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupFixedworkSpecialDao extends ICRUDDao<AttendanceGroupFixedworkSpecialEntity,Long>{
}
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkEntity;
import java.util.List;
/**
* 考勤组考勤自由工时配置Dao
* 考勤组考勤自由工时配置 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupFreeworkDao extends ICRUDDao<AttendanceGroupFreeworkEntity,Long>{
}
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkSpecialEntity;
import java.util.List;
/**
* 考勤组考勤自由工时特殊日期配置Dao
* 考勤组考勤自由工时特殊日期配置 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupFreeworkSpecialDao extends ICRUDDao<AttendanceGroupFreeworkSpecialEntity,Long>{
}
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity;
import java.util.List;
/**
* 考勤组负责人员信息Dao
* 考勤组负责人员信息 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupResponsibleDao extends ICRUDDao<AttendanceGroupResponsibleEntity,Long>{
}
package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupStaffEntity;
import java.util.List;
/**
* 考勤组人员信息Dao
* 考勤组人员信息 DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceGroupStaffDao extends ICRUDDao<AttendanceGroupStaffEntity,Long>{
}
......@@ -11,7 +11,7 @@ import java.util.List;
* 考勤班次信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
@Repository("attendanceClassDao")
public class AttendanceClassDaoImpl extends BaseCRUDDaoMybatis<AttendanceClassEntity,Long> implements AttendanceClassDao {
......
......@@ -11,7 +11,7 @@ import java.util.List;
* 考勤班次详细信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
@Repository("attendanceClassDetailDao")
public class AttendanceClassDetailDaoImpl extends BaseCRUDDaoMybatis<AttendanceClassDetailEntity,Long> implements AttendanceClassDetailDao {
......
......@@ -11,7 +11,7 @@ import java.util.List;
* 考勤组信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
@Repository("attendanceGroupDao")
public class AttendanceGroupDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupEntity,Long> implements AttendanceGroupDao {
......
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupFixedworkDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组考勤固定工时DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupFixedworkDao")
public class AttendanceGroupFixedworkDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupFixedworkEntity,Long> implements AttendanceGroupFixedworkDao {
}
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupFixedworkSpecialDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkSpecialEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组考勤固定班制特殊日期配置DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupFixedworkSpecialDao")
public class AttendanceGroupFixedworkSpecialDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupFixedworkSpecialEntity,Long> implements AttendanceGroupFixedworkSpecialDao {
}
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupFreeworkDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组考勤自由工时配置DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupFreeworkDao")
public class AttendanceGroupFreeworkDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupFreeworkEntity,Long> implements AttendanceGroupFreeworkDao {
}
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupFreeworkSpecialDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkSpecialEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组考勤自由工时特殊日期配置DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupFreeworkSpecialDao")
public class AttendanceGroupFreeworkSpecialDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupFreeworkSpecialEntity,Long> implements AttendanceGroupFreeworkSpecialDao {
}
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupResponsibleDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组负责人员信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupResponsibleDao")
public class AttendanceGroupResponsibleDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupResponsibleEntity,Long> implements AttendanceGroupResponsibleDao {
}
package com.mortals.xhx.module.attendance.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceGroupStaffDao;
import com.mortals.xhx.module.attendance.model.AttendanceGroupStaffEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 考勤组人员信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-04-08
*/
@Repository("attendanceGroupStaffDao")
public class AttendanceGroupStaffDaoImpl extends BaseCRUDDaoMybatis<AttendanceGroupStaffEntity,Long> implements AttendanceGroupStaffDao {
}
......@@ -11,7 +11,7 @@ import com.mortals.xhx.module.attendance.model.vo.AttendanceClassDetailVo;
* 考勤班次详细信息实体对象
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
......@@ -20,11 +20,11 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/**
* 班次ID
*/
private Long shiftsId;
private Long classId;
/**
* 班次名称
*/
private String shiftsName;
private String className;
/**
* 上班打卡时间
*/
......@@ -61,29 +61,29 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
* 获取 班次ID
* @return Long
*/
public Long getShiftsId(){
return shiftsId;
public Long getClassId(){
return classId;
}
/**
* 设置 班次ID
* @param shiftsId
* @param classId
*/
public void setShiftsId(Long shiftsId){
this.shiftsId = shiftsId;
public void setClassId(Long classId){
this.classId = classId;
}
/**
* 获取 班次名称
* @return String
*/
public String getShiftsName(){
return shiftsName;
public String getClassName(){
return className;
}
/**
* 设置 班次名称
* @param shiftsName
* @param className
*/
public void setShiftsName(String shiftsName){
this.shiftsName = shiftsName;
public void setClassName(String className){
this.className = className;
}
/**
* 获取 上班打卡时间
......@@ -205,8 +205,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",shiftsId:").append(getShiftsId());
sb.append(",shiftsName:").append(getShiftsName());
sb.append(",classId:").append(getClassId());
sb.append(",className:").append(getClassName());
sb.append(",goWorkDate:").append(getGoWorkDate());
sb.append(",goWorkDateBefore:").append(getGoWorkDateBefore());
sb.append(",goWorkDateAfter:").append(getGoWorkDateAfter());
......@@ -219,9 +219,9 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
public void initAttrValue(){
this.shiftsId = null;
this.classId = null;
this.shiftsName = "";
this.className = "";
this.goWorkDate = null;
......
......@@ -7,7 +7,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
* 考勤班次详细信息查询对象
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public class AttendanceClassDetailQuery extends AttendanceClassDetailEntity {
/** 开始 序号,主键,自增长 */
......@@ -26,25 +26,25 @@ public class AttendanceClassDetailQuery extends AttendanceClassDetailEntity {
private List <Long> idNotList;
/** 开始 班次ID */
private Long shiftsIdStart;
private Long classIdStart;
/** 结束 班次ID */
private Long shiftsIdEnd;
private Long classIdEnd;
/** 增加 班次ID */
private Long shiftsIdIncrement;
private Long classIdIncrement;
/** 班次ID列表 */
private List <Long> shiftsIdList;
private List <Long> classIdList;
/** 班次ID排除列表 */
private List <Long> shiftsIdNotList;
private List <Long> classIdNotList;
/** 班次名称 */
private List<String> shiftsNameList;
private List<String> classNameList;
/** 班次名称排除列表 */
private List <String> shiftsNameNotList;
private List <String> classNameNotList;
/** 开始 上班打卡时间 */
private String goWorkDateStart;
......@@ -255,115 +255,115 @@ public class AttendanceClassDetailQuery extends AttendanceClassDetailEntity {
/**
* 获取 开始 班次ID
* @return shiftsIdStart
* @return classIdStart
*/
public Long getShiftsIdStart(){
return this.shiftsIdStart;
public Long getClassIdStart(){
return this.classIdStart;
}
/**
* 设置 开始 班次ID
* @param shiftsIdStart
* @param classIdStart
*/
public void setShiftsIdStart(Long shiftsIdStart){
this.shiftsIdStart = shiftsIdStart;
public void setClassIdStart(Long classIdStart){
this.classIdStart = classIdStart;
}
/**
* 获取 结束 班次ID
* @return $shiftsIdEnd
* @return $classIdEnd
*/
public Long getShiftsIdEnd(){
return this.shiftsIdEnd;
public Long getClassIdEnd(){
return this.classIdEnd;
}
/**
* 设置 结束 班次ID
* @param shiftsIdEnd
* @param classIdEnd
*/
public void setShiftsIdEnd(Long shiftsIdEnd){
this.shiftsIdEnd = shiftsIdEnd;
public void setClassIdEnd(Long classIdEnd){
this.classIdEnd = classIdEnd;
}
/**
* 获取 增加 班次ID
* @return shiftsIdIncrement
* @return classIdIncrement
*/
public Long getShiftsIdIncrement(){
return this.shiftsIdIncrement;
public Long getClassIdIncrement(){
return this.classIdIncrement;
}
/**
* 设置 增加 班次ID
* @param shiftsIdIncrement
* @param classIdIncrement
*/
public void setShiftsIdIncrement(Long shiftsIdIncrement){
this.shiftsIdIncrement = shiftsIdIncrement;
public void setClassIdIncrement(Long classIdIncrement){
this.classIdIncrement = classIdIncrement;
}
/**
* 获取 班次ID
* @return shiftsIdList
* @return classIdList
*/
public List<Long> getShiftsIdList(){
return this.shiftsIdList;
public List<Long> getClassIdList(){
return this.classIdList;
}
/**
* 设置 班次ID
* @param shiftsIdList
* @param classIdList
*/
public void setShiftsIdList(List<Long> shiftsIdList){
this.shiftsIdList = shiftsIdList;
public void setClassIdList(List<Long> classIdList){
this.classIdList = classIdList;
}
/**
* 获取 班次ID
* @return shiftsIdNotList
* @return classIdNotList
*/
public List<Long> getShiftsIdNotList(){
return this.shiftsIdNotList;
public List<Long> getClassIdNotList(){
return this.classIdNotList;
}
/**
* 设置 班次ID
* @param shiftsIdNotList
* @param classIdNotList
*/
public void setShiftsIdNotList(List<Long> shiftsIdNotList){
this.shiftsIdNotList = shiftsIdNotList;
public void setClassIdNotList(List<Long> classIdNotList){
this.classIdNotList = classIdNotList;
}
/**
* 获取 班次名称
* @return shiftsNameList
* @return classNameList
*/
public List<String> getShiftsNameList(){
return this.shiftsNameList;
public List<String> getClassNameList(){
return this.classNameList;
}
/**
* 设置 班次名称
* @param shiftsNameList
* @param classNameList
*/
public void setShiftsNameList(List<String> shiftsNameList){
this.shiftsNameList = shiftsNameList;
public void setClassNameList(List<String> classNameList){
this.classNameList = classNameList;
}
/**
* 获取 班次名称
* @return shiftsNameNotList
* @return classNameNotList
*/
public List<String> getShiftsNameNotList(){
return this.shiftsNameNotList;
public List<String> getClassNameNotList(){
return this.classNameNotList;
}
/**
* 设置 班次名称
* @param shiftsNameNotList
* @param classNameNotList
*/
public void setShiftsNameNotList(List<String> shiftsNameNotList){
this.shiftsNameNotList = shiftsNameNotList;
public void setClassNameNotList(List<String> classNameNotList){
this.classNameNotList = classNameNotList;
}
/**
......@@ -1068,74 +1068,74 @@ public class AttendanceClassDetailQuery extends AttendanceClassDetailEntity {
/**
* 设置 班次ID
* @param shiftsId
* @param classId
*/
public AttendanceClassDetailQuery shiftsId(Long shiftsId){
setShiftsId(shiftsId);
public AttendanceClassDetailQuery classId(Long classId){
setClassId(classId);
return this;
}
/**
* 设置 开始 班次ID
* @param shiftsIdStart
* @param classIdStart
*/
public AttendanceClassDetailQuery shiftsIdStart(Long shiftsIdStart){
this.shiftsIdStart = shiftsIdStart;
public AttendanceClassDetailQuery classIdStart(Long classIdStart){
this.classIdStart = classIdStart;
return this;
}
/**
* 设置 结束 班次ID
* @param shiftsIdEnd
* @param classIdEnd
*/
public AttendanceClassDetailQuery shiftsIdEnd(Long shiftsIdEnd){
this.shiftsIdEnd = shiftsIdEnd;
public AttendanceClassDetailQuery classIdEnd(Long classIdEnd){
this.classIdEnd = classIdEnd;
return this;
}
/**
* 设置 增加 班次ID
* @param shiftsIdIncrement
* @param classIdIncrement
*/
public AttendanceClassDetailQuery shiftsIdIncrement(Long shiftsIdIncrement){
this.shiftsIdIncrement = shiftsIdIncrement;
public AttendanceClassDetailQuery classIdIncrement(Long classIdIncrement){
this.classIdIncrement = classIdIncrement;
return this;
}
/**
* 设置 班次ID
* @param shiftsIdList
* @param classIdList
*/
public AttendanceClassDetailQuery shiftsIdList(List<Long> shiftsIdList){
this.shiftsIdList = shiftsIdList;
public AttendanceClassDetailQuery classIdList(List<Long> classIdList){
this.classIdList = classIdList;
return this;
}
/**
* 设置 班次ID
* @param shiftsIdNotList
* @param classIdNotList
*/
public AttendanceClassDetailQuery shiftsIdNotList(List<Long> shiftsIdNotList){
this.shiftsIdNotList = shiftsIdNotList;
public AttendanceClassDetailQuery classIdNotList(List<Long> classIdNotList){
this.classIdNotList = classIdNotList;
return this;
}
/**
* 设置 班次名称
* @param shiftsName
* @param className
*/
public AttendanceClassDetailQuery shiftsName(String shiftsName){
setShiftsName(shiftsName);
public AttendanceClassDetailQuery className(String className){
setClassName(className);
return this;
}
/**
* 设置 班次名称
* @param shiftsNameList
* @param classNameList
*/
public AttendanceClassDetailQuery shiftsNameList(List<String> shiftsNameList){
this.shiftsNameList = shiftsNameList;
public AttendanceClassDetailQuery classNameList(List<String> classNameList){
this.classNameList = classNameList;
return this;
}
......
......@@ -11,7 +11,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
* 考勤班次信息实体对象
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public class AttendanceClassEntity extends AttendanceClassVo {
......
......@@ -7,7 +7,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceClassEntity;
* 考勤班次信息查询对象
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public class AttendanceClassQuery extends AttendanceClassEntity {
/** 开始 序号,主键,自增长 */
......
package com.mortals.xhx.module.attendance.model;
import java.util.List;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceGroupVo;
import com.mortals.xhx.module.attendance.model.AttendanceGroupStaffEntity;
/**
* 考勤组信息实体对象
*
* @author zxfei
* @date 2023-04-07
* @date 2023-04-08
*/
public class AttendanceGroupEntity extends AttendanceGroupVo {
......@@ -21,26 +22,30 @@ public class AttendanceGroupEntity extends AttendanceGroupVo {
*/
private String groupName;
/**
* 人数
* 参与考勤人数
*/
private Integer personNum;
/**
* 负责人
* 类型(1.固定班制,2.排班制,3.自由工时)
*/
private String responsiblePerson;
private Integer type;
/**
* 类型(1.固定班指)
* 备注
*/
private Integer type;
private String remark;
/**
* 考勤时间
* 未参与考勤人数
*/
private Integer attendanceTime;
private Integer personNumNo;
/**
* 备注
* 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
*/
private String remark;
private String attendanceType;
/**
* 考勤组人员信息信息
*/
private List<AttendanceGroupStaffEntity> attendanceGroupStaffList=new ArrayList<>();;
public AttendanceGroupEntity(){}
......@@ -59,62 +64,34 @@ public class AttendanceGroupEntity extends AttendanceGroupVo {
this.groupName = groupName;
}
/**
* 获取 人数
* 获取 参与考勤人数
* @return Integer
*/
public Integer getPersonNum(){
return personNum;
}
/**
* 设置 人数
* 设置 参与考勤人数
* @param personNum
*/
public void setPersonNum(Integer personNum){
this.personNum = personNum;
}
/**
* 获取 负责人
* @return String
*/
public String getResponsiblePerson(){
return responsiblePerson;
}
/**
* 设置 负责人
* @param responsiblePerson
*/
public void setResponsiblePerson(String responsiblePerson){
this.responsiblePerson = responsiblePerson;
}
/**
* 获取 类型(1.固定班指)
* 获取 类型(1.固定班制,2.排班制,3.自由工时)
* @return Integer
*/
public Integer getType(){
return type;
}
/**
* 设置 类型(1.固定班)
* 设置 类型(1.固定班制,2.排班制,3.自由工时)
* @param type
*/
public void setType(Integer type){
this.type = type;
}
/**
* 获取 考勤时间
* @return Integer
*/
public Integer getAttendanceTime(){
return attendanceTime;
}
/**
* 设置 考勤时间
* @param attendanceTime
*/
public void setAttendanceTime(Integer attendanceTime){
this.attendanceTime = attendanceTime;
}
/**
* 获取 备注
* @return String
*/
......@@ -128,8 +105,43 @@ public class AttendanceGroupEntity extends AttendanceGroupVo {
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 未参与考勤人数
* @return Integer
*/
public Integer getPersonNumNo(){
return personNumNo;
}
/**
* 设置 未参与考勤人数
* @param personNumNo
*/
public void setPersonNumNo(Integer personNumNo){
this.personNumNo = personNumNo;
}
/**
* 获取 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
* @return String
*/
public String getAttendanceType(){
return attendanceType;
}
/**
* 设置 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
* @param attendanceType
*/
public void setAttendanceType(String attendanceType){
this.attendanceType = attendanceType;
}
public List<AttendanceGroupStaffEntity> getAttendanceGroupStaffList(){
return attendanceGroupStaffList;
}
public void setAttendanceGroupStaffList(List<AttendanceGroupStaffEntity> attendanceGroupStaffList){
this.attendanceGroupStaffList = attendanceGroupStaffList;
}
@Override
......@@ -152,10 +164,10 @@ public class AttendanceGroupEntity extends AttendanceGroupVo {
StringBuilder sb = new StringBuilder("");
sb.append(",groupName:").append(getGroupName());
sb.append(",personNum:").append(getPersonNum());
sb.append(",responsiblePerson:").append(getResponsiblePerson());
sb.append(",type:").append(getType());
sb.append(",attendanceTime:").append(getAttendanceTime());
sb.append(",remark:").append(getRemark());
sb.append(",personNumNo:").append(getPersonNumNo());
sb.append(",attendanceType:").append(getAttendanceType());
return sb.toString();
}
......@@ -165,12 +177,12 @@ public class AttendanceGroupEntity extends AttendanceGroupVo {
this.personNum = null;
this.responsiblePerson = "";
this.type = null;
this.attendanceTime = null;
this.remark = "";
this.personNumNo = null;
this.attendanceType = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.attendance.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceGroupFixedworkSpecialVo;
/**
* 考勤组考勤固定班制特殊日期配置实体对象
*
* @author zxfei
* @date 2023-04-08
*/
public class AttendanceGroupFixedworkSpecialEntity extends AttendanceGroupFixedworkSpecialVo {
private static final long serialVersionUID = 1L;
/**
* 固定班制考勤配置id
*/
private Long fixedWorkId;
/**
* 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
*/
private Integer must;
/**
* 班次ID
*/
private Long classId;
/**
* 班次名称
*/
private String className;
/**
* 无需打卡的日期类型(0.单个日期,1.时间段)
*/
private Integer addWay;
/**
* 特殊时间
*/
private Date specialTime;
/**
* 时间段时候开始时间
*/
private Date specialTimeStart;
/**
* 时间段结束时间
*/
private Date specialTimeEnd;
/**
* 备注
*/
private String remark;
public AttendanceGroupFixedworkSpecialEntity(){}
/**
* 获取 固定班制考勤配置id
* @return Long
*/
public Long getFixedWorkId(){
return fixedWorkId;
}
/**
* 设置 固定班制考勤配置id
* @param fixedWorkId
*/
public void setFixedWorkId(Long fixedWorkId){
this.fixedWorkId = fixedWorkId;
}
/**
* 获取 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
* @return Integer
*/
public Integer getMust(){
return must;
}
/**
* 设置 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
* @param must
*/
public void setMust(Integer must){
this.must = must;
}
/**
* 获取 班次ID
* @return Long
*/
public Long getClassId(){
return classId;
}
/**
* 设置 班次ID
* @param classId
*/
public void setClassId(Long classId){
this.classId = classId;
}
/**
* 获取 班次名称
* @return String
*/
public String getClassName(){
return className;
}
/**
* 设置 班次名称
* @param className
*/
public void setClassName(String className){
this.className = className;
}
/**
* 获取 无需打卡的日期类型(0.单个日期,1.时间段)
* @return Integer
*/
public Integer getAddWay(){
return addWay;
}
/**
* 设置 无需打卡的日期类型(0.单个日期,1.时间段)
* @param addWay
*/
public void setAddWay(Integer addWay){
this.addWay = addWay;
}
/**
* 获取 特殊时间
* @return Date
*/
public Date getSpecialTime(){
return specialTime;
}
/**
* 设置 特殊时间
* @param specialTime
*/
public void setSpecialTime(Date specialTime){
this.specialTime = specialTime;
}
/**
* 获取 时间段时候开始时间
* @return Date
*/
public Date getSpecialTimeStart(){
return specialTimeStart;
}
/**
* 设置 时间段时候开始时间
* @param specialTimeStart
*/
public void setSpecialTimeStart(Date specialTimeStart){
this.specialTimeStart = specialTimeStart;
}
/**
* 获取 时间段结束时间
* @return Date
*/
public Date getSpecialTimeEnd(){
return specialTimeEnd;
}
/**
* 设置 时间段结束时间
* @param specialTimeEnd
*/
public void setSpecialTimeEnd(Date specialTimeEnd){
this.specialTimeEnd = specialTimeEnd;
}
/**
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof AttendanceGroupFixedworkSpecialEntity) {
AttendanceGroupFixedworkSpecialEntity tmp = (AttendanceGroupFixedworkSpecialEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",fixedWorkId:").append(getFixedWorkId());
sb.append(",must:").append(getMust());
sb.append(",classId:").append(getClassId());
sb.append(",className:").append(getClassName());
sb.append(",addWay:").append(getAddWay());
sb.append(",specialTime:").append(getSpecialTime());
sb.append(",specialTimeStart:").append(getSpecialTimeStart());
sb.append(",specialTimeEnd:").append(getSpecialTimeEnd());
sb.append(",remark:").append(getRemark());
return sb.toString();
}
public void initAttrValue(){
this.fixedWorkId = null;
this.must = 0;
this.classId = null;
this.className = "";
this.addWay = 0;
this.specialTime = null;
this.specialTimeStart = null;
this.specialTimeEnd = null;
this.remark = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.attendance.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceGroupFreeworkSpecialVo;
/**
* 考勤组考勤自由工时特殊日期配置实体对象
*
* @author zxfei
* @date 2023-04-08
*/
public class AttendanceGroupFreeworkSpecialEntity extends AttendanceGroupFreeworkSpecialVo {
private static final long serialVersionUID = 1L;
/**
* 自由工时考勤配置id
*/
private Long freeWorkId;
/**
* 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
*/
private Integer must;
/**
* 班次ID
*/
private Long classId;
/**
* 班次名称
*/
private String className;
/**
* 无需打卡的日期类型(0.单个日期,1.时间段)
*/
private Integer addWay;
/**
* 特殊时间
*/
private Date specialTime;
/**
* 时间段时候开始时间
*/
private Date specialTimeStart;
/**
* 时间段结束时间
*/
private Date specialTimeEnd;
/**
* 备注
*/
private String remark;
public AttendanceGroupFreeworkSpecialEntity(){}
/**
* 获取 自由工时考勤配置id
* @return Long
*/
public Long getFreeWorkId(){
return freeWorkId;
}
/**
* 设置 自由工时考勤配置id
* @param freeWorkId
*/
public void setFreeWorkId(Long freeWorkId){
this.freeWorkId = freeWorkId;
}
/**
* 获取 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
* @return Integer
*/
public Integer getMust(){
return must;
}
/**
* 设置 是否必须打卡的日期,当为1时有班次相关信息,否则有无需打卡时间段信息(0.否,1.是)
* @param must
*/
public void setMust(Integer must){
this.must = must;
}
/**
* 获取 班次ID
* @return Long
*/
public Long getClassId(){
return classId;
}
/**
* 设置 班次ID
* @param classId
*/
public void setClassId(Long classId){
this.classId = classId;
}
/**
* 获取 班次名称
* @return String
*/
public String getClassName(){
return className;
}
/**
* 设置 班次名称
* @param className
*/
public void setClassName(String className){
this.className = className;
}
/**
* 获取 无需打卡的日期类型(0.单个日期,1.时间段)
* @return Integer
*/
public Integer getAddWay(){
return addWay;
}
/**
* 设置 无需打卡的日期类型(0.单个日期,1.时间段)
* @param addWay
*/
public void setAddWay(Integer addWay){
this.addWay = addWay;
}
/**
* 获取 特殊时间
* @return Date
*/
public Date getSpecialTime(){
return specialTime;
}
/**
* 设置 特殊时间
* @param specialTime
*/
public void setSpecialTime(Date specialTime){
this.specialTime = specialTime;
}
/**
* 获取 时间段时候开始时间
* @return Date
*/
public Date getSpecialTimeStart(){
return specialTimeStart;
}
/**
* 设置 时间段时候开始时间
* @param specialTimeStart
*/
public void setSpecialTimeStart(Date specialTimeStart){
this.specialTimeStart = specialTimeStart;
}
/**
* 获取 时间段结束时间
* @return Date
*/
public Date getSpecialTimeEnd(){
return specialTimeEnd;
}
/**
* 设置 时间段结束时间
* @param specialTimeEnd
*/
public void setSpecialTimeEnd(Date specialTimeEnd){
this.specialTimeEnd = specialTimeEnd;
}
/**
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof AttendanceGroupFreeworkSpecialEntity) {
AttendanceGroupFreeworkSpecialEntity tmp = (AttendanceGroupFreeworkSpecialEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",freeWorkId:").append(getFreeWorkId());
sb.append(",must:").append(getMust());
sb.append(",classId:").append(getClassId());
sb.append(",className:").append(getClassName());
sb.append(",addWay:").append(getAddWay());
sb.append(",specialTime:").append(getSpecialTime());
sb.append(",specialTimeStart:").append(getSpecialTimeStart());
sb.append(",specialTimeEnd:").append(getSpecialTimeEnd());
sb.append(",remark:").append(getRemark());
return sb.toString();
}
public void initAttrValue(){
this.freeWorkId = null;
this.must = 0;
this.classId = null;
this.className = "";
this.addWay = 0;
this.specialTime = null;
this.specialTimeStart = null;
this.specialTimeEnd = null;
this.remark = "";
}
}
\ 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